Notifications
Clear all

botão macro associação

29 Posts
5 Usuários
0 Reactions
3,944 Visualizações
(@priscilass)
Posts: 0
New Member
Topic starter
 

Olá, Boa Tarde!

Preciso que vcs me tirem uma duvida.

É possível fazer uma função para gerar uma resultado (soma +1) em outra planilha somente apos clicar em duas células diferentes e identificar esta associação e gerar o resultado.

A função soma+1, eu já tenho.

segue em anexo esboço do procedimento.

Obrigado.

 
Postado : 11/02/2015 2:53 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

Me desculpe a sinceridade, mas sua dúvida é estranha, para células não é interessante, o click (mesmo usando doubleclick), seria melhor cria controles e adaptar tal ação.

Na verdade uma célula é selecionada ou duplamente clicada, e não simplesmente clicada.

Obs: imagina se ao selecionar a célula, o evento dispara a macro (é isso que vc quer), mas e se o usuário "clicou" nesta célula sem desejar?

Vamos ver oque o pessoal tem a dizer, pois eu estou sem ideias para tentar te ajudar.

Att

 
Postado : 11/02/2015 4:47 pm
(@priscilass)
Posts: 0
New Member
Topic starter
 

Sim é meio difícil explicar, mas imagina o seguinte: eu tenho na coluna A 20 nomes de funcionários e na coluna B peças de equipamentos ai tenho que selecionar o funcionário e depois o item que ele pegou, isso em outra planilha ela tem que identificar o funcionário e o item porque outros funcionários tbm podem pegar o mesmo item, então tem que identificar cada um deles e ir somando a quantidade que eles pegaram. Como se fosse uma função, seu eu clicar no funcionário "tal" e no intem "tal" vai somar pra este funcionário.

 
Postado : 11/02/2015 7:16 pm
(@priscilass)
Posts: 0
New Member
Topic starter
 

alguém conseguiu entender??? Tem como me ajudar???

 
Postado : 12/02/2015 4:37 pm
(@priscilass)
Posts: 0
New Member
Topic starter
 

oi fiz uma outra planilha de exemplo pra ver se vcs conseguem entender a lógica.

 
Postado : 12/02/2015 8:31 pm
(@priscilass)
Posts: 0
New Member
Topic starter
 

será que isso é possível fazer usando um formulário useform?

 
Postado : 12/02/2015 8:43 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Eu vou preparar uma versão similar via VBA, mas não há necessidade.

Veja se assim ajuda.

Att

 
Postado : 13/02/2015 11:25 am
(@priscilass)
Posts: 0
New Member
Topic starter
 

oi, não entendi como é o procedimento para aparecer os valores?? Os valores estão são digitados?

Desde já, agradeço pela ajuda.

 
Postado : 13/02/2015 1:38 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Veja o anexo, talvez agora fique melhor.

Não vai mudar nada, a ideia é a mesma, você alimenta uma base de dados e TD lhe retorna o resultado.

Att

 
Postado : 13/02/2015 1:46 pm
(@priscilass)
Posts: 0
New Member
Topic starter
 

Boa Tarde!
Alex, ficou muito bom o seu exemplo mas não é mesma ideia do que eu estou procurando.

Fiz uma outra, que contem tbm a que eu utilizo no momento pra vcs terem uma noção do que eu estou procurando.

 
Postado : 14/02/2015 5:24 pm
(@priscilass)
Posts: 0
New Member
Topic starter
 

Boa tarde! Alguém sabe se é possível fazer isso?

 
Postado : 22/02/2015 2:15 pm
(@gtsalikis)
Posts: 2373
Noble Member
 

Fiz como vc pediu: clique no funcionário, depois clique na peça.

A parte de itens diferentes, eu não considerei. Mas pelo exemplo, creio que vc pode adaptar.

PS: clique na primeira planilha, que vai alterar as informações na segunda.

 
Postado : 23/02/2015 8:09 am
(@priscilass)
Posts: 0
New Member
Topic starter
 

Obrigado GT, era isso mesmo oque eu estava procurando.

Tenho duas perguntas pra te fazer:
1º os nomes dos funcionários tem que ficar na mesma coluna? pois tentei colocar alguns na coluna do lado e não funciona.

2º tem como inserir no código um botão macro para toda vez que ao mesmo tempo que clicar na "peça' ele disparar o relógio para controlar o horário em que foi pego a peça? Pois já utilizo separado este comando também. Tentei mas não consegui.

Desde já agradeço pela grande ajuda que me deu.

 
Postado : 23/02/2015 2:43 pm
(@gtsalikis)
Posts: 2373
Noble Member
 

Que bom que ajudou. Respondendo as tuas perguntas

1º os nomes dos funcionários tem que ficar na mesma coluna? pois tentei colocar alguns na coluna do lado e não funciona.

Essa linha do código especifica a linha do funcionário:

If Range(Passo_A).Column = 2 Then

Para inserir mais uma coluna, vc pode usar assim:

If Range(Passo_A).Column = 2 Or Range(Passo_A).Column = 4 Then

2º tem como inserir no código um botão macro para toda vez que ao mesmo tempo que clicar na "peça' ele disparar o relógio para controlar o horário em que foi pego a peça? Pois já utilizo separado este comando também. Tentei mas não consegui.

Não há necessidade de usar botão.

Como vc já tem o código para disparar o relógio, basta chamar ele ao fim da macro. Suponha que a tua macro seja chamada de Relogio:

Sub Relogio ()

'seu código do relógio

End Sub

O que vc precisa fazer, é incluir essa linha:

Call Relogio

Vai ficar assim:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Static Passo_A      As String
Static Passo_B      As String

Dim Nome_A          As String
Dim Nome_B          As String

Dim ws              As Worksheet

Dim C               As Variant 'C oluna
Dim L               As Variant 'L inha

With Application
    .ScreenUpdating = False
    .EnableEvents = False
End With

If Selection.Cells.Count > 1 Then GoTo EVENTOS

If Passo_B = vbNullString Then
    If Passo_A = vbNullString Then
        Passo_A = ActiveCell.Address
        GoTo EVENTOS
    End If
    Passo_B = ActiveCell.Address
Else
    Passo_A = Passo_B
    Passo_B = ActiveCell.Address
End If

If Range(Passo_A).Column = 2 Or Range(Passo_A).Column = 4 Then
    Set ws = Sheets("total do digitavel")
       
    Nome_A = Range(Passo_A).Value2
    Nome_B = Range(Passo_B).Value2
    
    With Application
        L = Application.Match(Nome_A, ws.Columns("B"), 0)
          If IsError(L) Then GoTo EVENTOS
        C = Application.Match(Nome_B, ws.Rows(3), 0)
          If IsError(C) Then GoTo EVENTOS
    End With
    ws.Cells(L, C).Value2 = ws.Cells(L, C).Value2 + 1
    Call Relógio
End If

EVENTOS:

With Application
    .ScreenUpdating = True
    .EnableEvents = True
End With

End Sub
 
Postado : 23/02/2015 3:04 pm
(@priscilass)
Posts: 0
New Member
Topic starter
 

Oi, mais uma vez, muito obrigado.

Consegui refazer a 1º pergunta. Já a segunda fiz como vc disse mas esta travando a planilha e quando eu a abro de novo o tempo esta atualizado. Será que é algum código errado?

Vc consegue identificar?

 
Postado : 23/02/2015 5:20 pm
Página 1 / 2