Notifications
Clear all

Inserir formulas em celulas especificas com Macro

5 Posts
2 Usuários
0 Reactions
1,383 Visualizações
(@sergiosantana31)
Posts: 9
Active Member
Topic starter
 

Como faço para inserir formulas com macros? e especificar as coluna e linha?
Preciso inserir varias formulas em uma linha. O procedimento do macro atual, insere uma nova linha onde está as formulas e assim as formulas perde as referencias e para de funcionar. Preciso continuar inserido as linhas e manter as formulas no lugar.

Não posso somente copiar a linha antes de inserir. Tenho que inserir através de macro?
Pode me ajudar

Ex. de uma das formulas.
=SE(C2>0;"Caixa1";SE(D2>0;"Caixa2";SE(E(C2=0;D2=0);F3;)))

http://www.sendspace.com/file/bielv7

 
Postado : 07/05/2012 9:12 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Experimente alterar sua "macro" conforme segue:

Private Sub Worksheet_Change(ByVal Target As Range)
    
        If Target.Cells.Count > 1 Then Exit Sub
        If Intersect(Target, Range("A2")) 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("E" & Target.Row + 1).Copy Destination:=Range("E" & Target.Row) 'Copia a formula  "E" da linha abaixo da inserida e cola na inserida
                        Target.Select
                    Range("E" & Target.Row).PasteSpecial
                    Application.EnableEvents = True
                End If
            Else
                Err.Clear
            End If
        On Error GoTo 0
       
End Sub
 
Postado : 07/05/2012 10:01 am
(@sergiosantana31)
Posts: 9
Active Member
Topic starter
 

=SE(C2>0;"Caixa1";SE(D2>0;"Caixa2";SE(E(C2=0;D2=0);E3;)))
Ola Reinaldo, :D

O macro esta Copiando a formula em "E3" e deixando-a em "E2". Mas, cada vez que inseri uma nova linha, ele muda
a ultima referencia. A formula que copiava E3, copia agora E4, depois E5......
Tem como ajustar e deixar ele copiando somente E3? :idea:

 
Postado : 07/05/2012 7:35 pm
(@sergiosantana31)
Posts: 9
Active Member
Topic starter
 

Reformulei a pergunta de cima, pois nao consegui alterar.

O macro esta Copiando a formula em "E3" e deixando-a em "E2". Mas, na parte " SE(E(C2=0;D2=0);E3;" se c2 e d2 são = 0 ele tem que copiar E3. E agora cada vez que inseri uma nova linha, ele muda a ultima referencia. A formula que copiava E3, copia agora E4, depois E5......
Tem como ajustar e deixar ele copiando somente E3? :idea:

 
Postado : 07/05/2012 7:42 pm
(@sergiosantana31)
Posts: 9
Active Member
Topic starter
 

BOm, eu alterei "SE(E(C2=0;D2=0);E3;)" para "SE(E(C2=0;D2=0);E2=E3;)" e apesar de continuar a muda
a ultima referencia. Esta dando certo.. "To com receio de erro :shock: , mas ate, agora ta funcionando". :lol:
Valeu Pela ajuda.. obrigado

 
Postado : 07/05/2012 8:20 pm