Notifications
Clear all

Inserir linha/continuar formula

3 Posts
2 Usuários
0 Reactions
1,037 Visualizações
(@tiago_luz)
Posts: 40
Trusted Member
Topic starter
 

Boa noite pessoal,

Tenho uma planilha que possui algumas fórmulas e uma macro para enviar email, porém esta planilha será usado por outras pessoas e caso elas necessitem adicionar linhas a fórmula será perdida, inutilizando o envio de email (fiz uma gambiarra para enviar email).

Tem fórmula na coluna B e nas colunas de U a AD. No exemplo eu já inseri uma linha e a célula fica em branco. Como posso fazer para ao inserir uma linha que esta nova linha mantenha a sequencia da formula?

muito obrigado,

Tiago

 
Postado : 05/11/2013 7:13 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

thiago,

O problema é que sua macro INSERE a linha INTEIRA. Se vc reprogramar para inserir linhas somente de A a R (18 primeiras colunas), é possível fazer o que vc precisa através das funções INDIRETO() e ENDEREÇO(). Veja meus exemplos para vc entender (amarelo).

Com relação à Coluna B, sua macro deve considerar o seguinte: a cada nova inclusão de linha, selecione B5 e arraste (copiar e colar) para baixo até o final.

Minha idéia não leva em consideração os possíveis efeitos de "sent" e "not sent" de sua macro. Mas o que deixo serve pra mostrar que fórmulas podem acompanhar as linhas inseridas sem problema nenhum.

Abs,

 
Postado : 05/11/2013 8:36 pm
(@tiago_luz)
Posts: 40
Trusted Member
Topic starter
 

Bom dia, desculpa deixar seu post sem resposta, falta de educação a minha depois de vc responder tão depressa.

Não entendi muito bem como funciona indireto(), endereço(), fiz umas mudanças e nada mudou. Na verdade eu não entendo muito de macro, td que está aí na planilha foi copiado/adaptado pelo método tentativa/erro de outras macros, aparentemente esta macro me parece muito útil, pois é worksheetchange, não precisa de botões, você conseguiria adaptá-la para minha necessidade, seria legal se fosse possível indicar que ao inserir uma linha a macro copia, em todas as colunas onde há fórmulas, a primeira célula que contém fórmula para todas as células abaixo, inserindo fórmula na nova linha. Isso vai ser muito útil não só nesta, mas em outras planilhas que tenho.

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Cells.Count > 1 Then Exit Sub
If Intersect(Target, Range("b2")) Is Nothing Then Exit Sub
If Target = "" Then Exit Sub

On Error Resume Next
If Err = 0 Then
If Second(Target) = 0 Then
Application.EnableEvents = False
Target.EntireRow.Copy
Target.Offset(1, 0).EntireRow.Insert
Target.EntireRow.PasteSpecial Paste:=xlPasteAll
Application.CutCopyMode = False
Target.EntireRow.Clear 'Limpa os dados da linha inserida
Range("B" & Target.Row + 1).Copy Destination:=Range("B" & Target.Row) 'Copia a formula "E" da linha abaixo da inserida e cola na inserida
Target.Select
Range("B" & Target.Row).PasteSpecial
Application.EnableEvents = True
End If
Else
Err.Clear
End If
On Error GoTo 0

End Sub

 
Postado : 24/11/2013 8:02 am