Notifications
Clear all

última linha de um intervalo

4 Posts
1 Usuários
0 Reactions
1,782 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Tenho uma macro que verifica a última linha que contém informação da coluna:

Sub UltimaLinha()
Dim Linha As Long
Linha = Range("A500").End(xlUp).Row
End Sub

Mas eu queria que a macro verificasse a ultima linha que contém informação de um intervalo:
Exemplo: ultima linha do intervalo de A20: A500 ...

gostaria de agradecer a todos pela atenção, o fórum tem me ajudado muitoooo

 
Postado : 21/03/2011 12:39 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Paula, veja se atende :

Sub UltimoValorLinhaColuna()

    Set Cel_Inicio = Cells(20, 1)      'Cells(Linha, Coluna) = Range("A20")
    Set Cel_Final = Cells(500, 1)  'Cells(Linha, Coluna) = Range("A500")
    
    'IsEmpty = Ignora Celulas Vazias
    If IsEmpty(Cel_Inicio) Then Set Cel_Inicio = Cel_Inicio.End(xlDown)
    If IsEmpty(Cel_Final) Then Set Cel_Final = Cel_Final.End(xlUp)
    
    'As linhas abaixos são só ilustrativas para facilitar o entendimento
    MsgBox Cel_Final
    Cel_Final.Select

End Sub

[]s

 
Postado : 21/03/2011 7:36 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Mauro, no código abaixo a ultima linha é atribuida a uma variavel chamada "Linha"...o loop percorre toda a planilha até a ultima linha preenchida e cria o arquivo Txt, da forma que vc colocou eu não estou conseguindo atribuir na variavel linha, poderia me ajudar?

Dim AreaTrab As Range
Dim Linha As Long

' Registro 1

Sheets("Empresa").Select
Set AreaTrab = Range("B7:N158") -- aonde estão os dados
Linha = Range("b158").End(xlUp).Row --nesse caso ele pega a ultima linha preenchida até 158 e não de um range
For i = 1 To Linha
With Meu_Reg_01
Meu_Reg_01.Tipo_Registro_01 = "1"
.ID = "000000000"
.CNPJ = AreaTrab.Cells(i, 1).Value
.razao_social = AreaTrab.Cells(i, 2).Value
.fantasia = AreaTrab.Cells(i, 2).Value
.brancos = AreaTrab.Cells(i, 12).Value
.sequencial = "000001" 'Format(Int(AreaTrab.Cells(i, 13).Value), "000000")

agradeço desde já

 
Postado : 06/04/2011 5:51 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Paula, não sei se entendi corretamente, mas veja se seria isto, se não for anexe os arquivos para melhor analizar.

Sub regicdp()
Dim AreaTrab As Range
Dim Linha As Long

' Registro 1

Sheets("Empresa").Select
Set AreaTrab = Range("B7:N158") '-- aonde estão os dados
Linha = Range("b20").End(xlUp).Row '--nesse caso ele pega a ultima linha preenchida até 158 e não de um range
    
    For i = 1 To Linha
        With Meu_Reg_01
            Meu_Reg_01.Tipo_Registro_01 = "1"
            .ID = "000000000"
            .CNPJ = AreaTrab.Cells(i, 1).Value
            .razao_social = AreaTrab.Cells(i, 2).Value
            .fantasia = AreaTrab.Cells(i, 2).Value
            .brancos = AreaTrab.Cells(i, 12).Value
            .sequencial = "000001" 'Format(Int(AreaTrab.Cells(i, 13).Value), "000000")
        End With
    Next
End Sub

[]s

 
Postado : 06/04/2011 9:36 pm