Usuário com melhor resposta
Macro em VBA

Pergunta
-
Pessoal, boa tarde.
Preciso criar uma macro onde eu possa clicar no botão e rodar a macro para copiar as formulas e formatação da ultima linha preenchida e colar na proxima linha abaixo que estiver vazia, logo apos a que foi copiada formulas e formatação.
Segue abaixo a macro que criei, mas ela não adiciona o que foi copiado na ultima linha em branco, e sim no mesmo local sempre.
So que na primeira coluna tenho um contador de itens, que quando adiciono dados ela conta mais 1, mas com essa macro nao funciona, prq nao cola na ultima linha em branco.
Segue codigo:
Sub Inserir()
'
' Inserir Macro
Range("A4:U4").Select
Selection.Copy
Rows("5:5").Select
Selection.Insert Shift:=xlDown
Application.CutCopyMode = False
Range("B5").Select
End SubSegue abaixo modelo da planilha
Item Data Fonte Defeito Posto de trabalho Matrícula Montador Grupo de falha TWTTP Causa (TWTTP) Saída (TWTTP) Ações Responsável Data fechamento TWTTP Status Foto Ocorrências % Concluídas Quantidade concluída % Pendentes Quantidade pendente 1 24/mar #DIV/0! #DIV/0! 2 24/mar #DIV/0! #DIV/0! 3 24/mar #DIV/0! #DIV/0! 4 24/mar #DIV/0! #DIV/0! 5 24/mar #DIV/0! #DIV/0! Desde ja agradeço.
Respostas
-
Boa Tarde Philipe,
Para pegar a última linha preenchida, utilize:
Dim lngLastRow as long lngLastRow = Sheets("NOMEDASUAPLANILHA").RANGE("A1").end(xldown).row
A variável lngLastRow conterá o número da última linha preenchida na coluna A, depois você pode somar o valor 1 para indicar que é a próxima linha em branco.
Ex:
Cells(lngLastRow + 1, 1).select
André Santo | basevba.wordpress.com
- Sugerido como Resposta André Santo quinta-feira, 24 de março de 2016 15:58
- Marcado como Resposta Felipe Costa GualbertoMVP, Moderator segunda-feira, 4 de julho de 2016 14:18
-
Philipe,
Sugiro que você não utilize macros. Ao invés disso, utilize o recurso de tabelas:
VocÊ verá que ao escrever uma fórmula numa coluna de uma tabela, a fórmula irá ser copiada automaticamente para as linhas de baixo.
http://www.ambienteoffice.com.br - http://www.clarian.com.br
- Marcado como Resposta Felipe Costa GualbertoMVP, Moderator segunda-feira, 4 de julho de 2016 14:18
Todas as Respostas
-
Boa Tarde Philipe,
Para pegar a última linha preenchida, utilize:
Dim lngLastRow as long lngLastRow = Sheets("NOMEDASUAPLANILHA").RANGE("A1").end(xldown).row
A variável lngLastRow conterá o número da última linha preenchida na coluna A, depois você pode somar o valor 1 para indicar que é a próxima linha em branco.
Ex:
Cells(lngLastRow + 1, 1).select
André Santo | basevba.wordpress.com
- Sugerido como Resposta André Santo quinta-feira, 24 de março de 2016 15:58
- Marcado como Resposta Felipe Costa GualbertoMVP, Moderator segunda-feira, 4 de julho de 2016 14:18
-
Tentei fazer modificações parecidas no codigo que enviei, mas nunca fica correto. Não tenho conhecimento na linguagem VB, por isso muita dificuldade para resolver esse problema.
Esse código que eu enviei ele já faz a cópia do que preciso mas apenas não cola onde deveria. Onde deveria inserir o codigo que vc enviou ?
-
Philipe,
Sugiro que você não utilize macros. Ao invés disso, utilize o recurso de tabelas:
VocÊ verá que ao escrever uma fórmula numa coluna de uma tabela, a fórmula irá ser copiada automaticamente para as linhas de baixo.
http://www.ambienteoffice.com.br - http://www.clarian.com.br
- Marcado como Resposta Felipe Costa GualbertoMVP, Moderator segunda-feira, 4 de julho de 2016 14:18