VBA - Segmentação d...
 
Notifications
Clear all

VBA - Segmentação de Dados

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

Amigos Boa Noite,

Copiei um código VBA que exibe uma mensagem qdo um valor da célula é alterado. Qdo uso como referência uma célula da tabela dinâmica que contém uma segmentação, o valor é alterado da célula mais o meu VBA não executa. Esse VBA executa apenas qdo vou na célula e altero o valor.

Private Sub Worksheet_Change(ByVal Target As Range)

MsgBox " TESTE"

If Target.Address = "$A$10" Then

Call Teste

Exit Sub

End If

End Sub

Sub Teste()
MsgBox "Alterou A1, coloque sua rotina aqui"
End Sub

 
Postado : 05/07/2015 6:20 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

cris, ficou um pouco confuso, mas em relação a rotina que postou, na Sub Teste está exibindo a mensagem que A1 foi alterado, e na instrução do Evento da planilha está dizendo para continuar somente se a celula "A10" for alterada, ou seja a mesma só continuará a execução se atender a este critério :

If Target.Address =
"$A$10" Then

[]s

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

 
Postado : 06/07/2015 5:34 am
(@cris87)
Posts: 5
Active Member
Topic starter
 

Vou tentar me explicar melhor. Tenho uma tabela dinâmica com uma coluna chamada CPF e exibo apenas a 1ª linha ou seja apenas o primeiro CPF. Nessa tabela dinâmica inserir uma segmentação de dados com o nome de cada pessoa. Referenciei a célula A10(recebe o CPF da dinâmica), então toda vez que escolho um nome diferente na segmentação troca o CPF. Qdo uso dessa forma ele não executa a função VBA.

A função está funcionando pq qdo vou na célula A10 e troco o valor manualmente o código VBA é executado.

 
Postado : 06/07/2015 5:30 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

cris, se entendi, você quer que a rotina execute qdo A10 for alterado mas atraves de uma alteração em A1 antes, se for isto, devemos utilizar o Evento Calculate, como não sei como é feita esta interação, sugiro algo como :

Private Sub Worksheet_Calculate()
    If Range("A10").Value <> "" Then
        MsgBox "Range A10 foi alterado"
    End If
End Sub

[]s

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

 
Postado : 06/07/2015 6:56 pm
(@cris87)
Posts: 5
Active Member
Topic starter
 

Mauro, funcionou perfeitamente. Obrigado peja ajuda.

 
Postado : 07/07/2015 8:13 pm