Notifications
Clear all

VBA entre tabelas de planilhas diferentes

11 Posts
3 Usuários
0 Reactions
1,989 Visualizações
(@mshinnji)
Posts: 30
Eminent Member
Topic starter
 

Ola, pessoal tudo bem?

Sou relativamente novo com essas coisas de macro e VBA no excel e provavelmente minha duvida e muito fácil de ser esclarecida! Mas é dessa forma que evoluímos e adquirimos informação para ajudar a outros também!! Então conto com a ajuda de vocês!!

Consegui fazer isso pelo macro mas sempre tenho que apertar o atalho pra que isso aconteça, a intenção e que isso ocorra de forma automática!!

Tenho duas tabelas em planilhas diferentes, a tabela " Dados" e "Cobrança". O que preciso e toda vez que eu adicionar ou excluir uma linha da tabela "Dados" isso também ocorresse na tabela "Cobrança"!

É possível isso?

Desde já agradeço!

 
Postado : 17/10/2012 7:44 am
(@wilmarleal)
Posts: 186
Estimable Member
 

Anexa a Planilha compactada,
mais se voce ja a macro e so precisa que seja automatico então chame a macro na planilha q voce quer que altere

Private Sub Worksheet_Change(ByVal Target As Range)
   Call Coloque_Sua_Macro_Aqui
End Sub

Toda vez que vc atualizar alguma coisa na planilha ela vai atualizar

se deu certo, da um Agradecimento
e marque como resolvido

*Qualquer coisa anexe a planilha compactada aqui

 
Postado : 17/10/2012 8:00 am
(@mshinnji)
Posts: 30
Eminent Member
Topic starter
 

Eu retirei a macro da planilha. Anexo esta ela.

 
Postado : 17/10/2012 8:24 am
(@mshinnji)
Posts: 30
Eminent Member
Topic starter
 

Detalhe no macro so consegui fazer a questao de inserir a linha e nao do apagar. Por isso retirei a macro da planilha!!!

 
Postado : 17/10/2012 8:57 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Crie um módulo no seu arquivo e cole o código abaixo:

Utilize um atalho do teclado para ativar a macro.

Sub ExcluirCadastro()
    Dim L As Integer
    Dim Msg As String
    
    L = ActiveCell.Row
    ActiveSheet.Rows(L & ":" & L).Select
    Msg = "Deseja excluir a linha atual?" & vbCrLf & "Placa: " & Worksheets("DADOS").Range("I" & L)
    
    If MsgBox(Msg, vbQuestion + vbYesNo + vbDefaultButton2, "Exclusão de cadastro") = vbYes Then
        Worksheets("DADOS").Rows(L & ":" & L).Delete Shift:=xlUp
        Worksheets("COBRANÇA").Rows(L & ":" & L).Delete Shift:=xlUp
    End If
End Sub
 
Postado : 17/10/2012 11:39 am
(@mshinnji)
Posts: 30
Eminent Member
Topic starter
 

É possivel fazer isso sem utilização de atalho? Outra duvida isso nao esta funcionando quando eu adiciono linhas na tabela dados! Ele nao esta adicionando uma linha na cobrança!

 
Postado : 17/10/2012 11:56 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Esse código exclui a linha selecionada nas duas abas...

o código abaixo, serve para excluir a linha atual (ExcluirLinha) ou inserir uma nova linha (AcrescentarLinha).

Não conheço nenhuma função pré pronta do vba para interceptar a inserção ou exclusão de linhas.... talvez alguém no fórum conheça ou tenha desevolvido.

Sub ExcluirLinha()
    Dim L As Integer
    Dim Msg As String
    
    L = ActiveCell.Row
    ActiveSheet.Rows(L & ":" & L).Select
    Msg = "Deseja excluir a linha atual?" & vbCrLf & "Placa: " & Worksheets("DADOS").Range("I" & L)
    
    If MsgBox(Msg, vbQuestion + vbYesNo + vbDefaultButton2, "Exclusão de cadastro") = vbYes Then
        Worksheets("DADOS").Rows(L & ":" & L).Delete Shift:=xlUp
        Worksheets("COBRANÇA-").Rows(L & ":" & L).Delete Shift:=xlUp
    End If
End Sub

Sub AcrescentarLinha()
    Dim UL As Integer
    
    UL = Worksheets("DADOS").Range("I" & Rows.Count).End(xlUp).Row
    Worksheets("DADOS").Rows(UL & ":" & UL).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Worksheets("COBRANÇA-").Rows(UL & ":" & UL).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
End Sub
 
Postado : 17/10/2012 12:10 pm
(@mshinnji)
Posts: 30
Eminent Member
Topic starter
 

Então e isso que eu preciso so que de forma automática ou quando eu for por exemplo no comando inserir linha ou excluir linha isso ocorra, sera que alguém sabe fazer isso?

 
Postado : 17/10/2012 1:04 pm
(@mshinnji)
Posts: 30
Eminent Member
Topic starter
 

Alguém com alguma solução?

 
Postado : 18/10/2012 9:03 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Cara porque não segue as sugestões acima?

Então e isso que eu preciso so que de forma automática

Private Sub Worksheet_Change(ByVal Target As Range)
   Call ExcluirCadastro
End Sub

Att

 
Postado : 18/10/2012 9:27 am
(@mshinnji)
Posts: 30
Eminent Member
Topic starter
 

nao funcionou dessa forma! ou nao estou sabendo configurar.

 
Postado : 18/10/2012 9:48 am