Notifications
Clear all

INSERIR LINHA COPIANDO FORMULAS

9 Posts
2 Usuários
0 Reactions
5,476 Visualizações
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Bom dia

Tenho uma planilha que preciso inserir linha após a última linha preenchida, mas em uma das células tem formula, preciso a macro insira e cópie esta formula.

silva_jmp

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

 
Postado : 06/09/2011 9:19 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Altere sua macro conforme abaixo

Sub Retângulo2_Clique()

Dim lRow As Long

lRow = ActiveSheet.Cells(Cells.Rows.Count, "S").End(xlUp).Row
Rows(lRow).Select
Selection.Copy
Rows(lRow + 1).Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
Range("B" & lRow + 1).Select
End Sub

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

 
Postado : 06/09/2011 10:55 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Outra sugestão:

Sub Lin()
Dim i As Integer

i = Cells(Cells.Rows.Count, 19).End(xlUp).Row

    Range("B" & i & ":S" & i).AutoFill Range("B" & i & ":S" & i + 1)
    
End Sub

Qualquer coisa da o grito...

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

 
Postado : 06/09/2011 11:08 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Preciso que ao inserir a linha, ela fique sem nenhum preenchimento, mas que a formula da coluna "S" seje copiada.

silva_jmp

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

 
Postado : 06/09/2011 1:29 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Tenta assim:

Sub Lin()
Dim i As Integer

i = Cells(Cells.Rows.Count, 19).End(xlUp).Row

    Range("B" & i & ":S" & i).AutoFill Range("B" & i & ":S" & i + 1)
    Range("B" & i + 1 & ":R" & i + 1).ClearContents
            
End Sub

Uma dica:
Nas fórmulas nomeadas (Ctrl + F3), altere a fórmula da "Area_de_impressao" para essa:

=INDIRETO("'Programa Anual (2)'!$B$2:$P$"&CONT.VALORES('Programa Anual (2)'!$B$10:$B$500)+9)

Com essa fórmula ele já ajeita automático a área de impressão.

Qualquer coisa da o grito...

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

 
Postado : 06/09/2011 1:42 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 


Minha versão...:

i = Range("B65536").End(xlUp).Row
j = i + 1

Range(i & ":" & i).Copy
Range(j & ":" & j).Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("S" & i).Copy
Range("S" & j).Select
ActiveSheet.Paste

Application.CutCopyMode = False

Range("B" & j).Activate

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

 
Postado : 06/09/2011 1:55 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Ops.. observando que está bem próxima da sugestão do Reinaldo, apenas com a ressalva do Copiar e Colar da coluna S, qua não pode ser apenas do Formato.

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

 
Postado : 06/09/2011 2:00 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Reinaldo, Bernardo e Edson, é por essas e outras que amo o VBA, ele nos permite uma infinidade de opções para se chegar a um mesmo resultado, então segue minha sugestão :

Sub InsereLinha()
    Dim UltimaLinha As Long
    
        UltimaLinha = Range("B" & Rows.Count).End(xlUp).row
        
        Range("B" & UltimaLinha).EntireRow.Copy
        Range("B" & UltimaLinha + 1).EntireRow.Insert
        
        UltimaLinha = UltimaLinha + 1
        
        Range("B" & UltimaLinha & ":R" & UltimaLinha).ClearContents

End Sub

[]s

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

 
Postado : 06/09/2011 5:25 pm
(@knayanne)
Posts: 1
New Member
 

Pessoal,

Achei uma resposta super eficaz:

Sub InsereLinha()
Dim linha As Long

linha = Range("B" & Rows.Count).End(xlUp).Row
linha = linha + 1
Range("B" & linha).Select

With Selection.EntireRow
.Offset(-1).Copy
.Insert
On Error Resume Next
.Offset(-1).SpecialCells(xlCellTypeConstants, 23).ClearContents
On Error GoTo 0
End With

End Sub

 
Postado : 29/10/2015 8:44 am