Notifications
Clear all

Determinar Intervalo da Macro

4 Posts
3 Usuários
0 Reactions
814 Visualizações
(@eduaraujo)
Posts: 5
Active Member
Topic starter
 

Pessoal, bom dia! Estou tentando aprender macro, tenho uma dúvida acredito ser simples, peço auxílio pois já pesquisei bastante e ainda não consegui a solução.

Tenho a seguinte macro abaixo, que retorna o último lançamento da coluna "A" na linha imediatamente abaixo (repetir lançamentos através do botão da macro). Porém quando a planilha ainda está vazia, a fórmula repete o cabeçalho, que fica na linha 10. Gostaria, portanto, que minha macro pudesse começar na linha 11, e quando ainda não tiver nenhum lançamento, que ficasse em branco ou aparecer uma mensagem "inserir o primeiro lançamento".

Segue a minha macro da forma como está atualmente:

Sub Tst()
Dim iLastRow As Long
Dim ws As Worksheet

Set ws = ActiveSheet 'Planilha que será validada pelo botão
iLastRow = ws.Cells(Cells.Rows.Count, 1).End(xlUp).Row 'Pega o nº da última célula preenchida na coluna 1 (A)
Range("A" & iLastRow + 1).Value = Range("A" & iLastRow).Value 'Repete a última célula preenchida na coluna 1(A) uma linha abaixo.

End Sub

 
Postado : 16/10/2015 7:10 am
(@mprudencio)
Posts: 2749
Famed Member
 

Declara uma variavel linha

dim linha as long

linha = 11

if linha = "" then

Msgbox "Insira o primeiro Registro"

else

seu codigo

end if

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 16/10/2015 7:17 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Veja se é isto :

Sub Tst_Mauro()
    Dim iLastRow As Long
    Dim ws As Worksheet

    Set ws = ActiveSheet 'Planilha que será validada pelo botão
    iLastRow = ws.Cells(Cells.Rows.Count, 1).End(xlUp).Row  'Pega o nº da última célula preenchida na coluna 1 (A)
    
    'Se a primeira linha for a 10
    If iLastRow = 10 Then
        MsgBox "inserir o primeiro lançamento"
    Else
        Range("A" & iLastRow + 1).Value = Range("A" & iLastRow).Value 'Repete a última célula preenchida na coluna 1(A) uma linha abaixo.
    End If
    
End Sub

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 16/10/2015 7:34 am
(@eduaraujo)
Posts: 5
Active Member
Topic starter
 

Era exatamente isso Mauro!! Mto obrigado pela sua contribuição e de todos.

 
Postado : 16/10/2015 7:53 am