question

Como posso condicionalmente executar uma Macro do Excel?

Isso parece estar batendo um cavalo morto, mas não consigo encontrar uma resposta a esta variante da pergunta. Eu sei que pode executar uma macro, se, digamos, B1 é um determinado valor, mas se eu quiser para executar uma macro cada vez que eu inserir o texto "relatório" em uma célula na coluna C? Eu sei que a coisa fácil seria ter pessoas use uma tecla de atalho e use orientações relativas e o que não, mas eu quero forçar a criação do relatório e não deixá-lo ser uma opção. Direita agora, como as pessoas estão digitando relatório na célula na coluna c a como uma questão de procedimento. Eu quero manter o procedimento da mesma, mas gerar automaticamente um relatório usando as informações apenas na linha atual. Então, se eu estou trabalhando com a linha 12 e coluna C = "relatório", eu quero uma macro para executar a A12 e B12.

Isso pode ser feito?

Parece que a diferença de que estou pedindo e que eu tenho lido sobre o online é que você precisa executar uma macro para testar uma condição e, em seguida, executar essa macro real. Eu quero para validar o celular e executar a macro do excel.
resposta Resposta
Olhar para o evento Worksheet_Change. Por exemplo, colocar isso no módulo da planilha que você deseja ter de executar a macro. Em seguida, fazer uma chamada para essa macro onde tenho o comentário "macro" aqui

Private void Worksheet_Change(ByVal Target As Range)

Se Target.Column <> 3, em seguida,

' Verifique se a célula alterada não é na coluna ' C'e saída

Exit Sub

End If

Se InStr (1, Target.Value, "relatório", vbTextCompare) > 0 Then

' Verifique se a célula alterada contém a Word "relatório"

' Macro aqui.

End If

End Sub

Comentários Comentários

Guest
Mariana na 18 Out 2023
0
Você pode usar a função Worksheet_Change no VBA para verificar quando o texto "relatório" é inserido na coluna C e executar a macro correspondente. Você pode usar algo parecido com o seguinte código:

```
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Me.Range("C:C")) Is Nothing Then
If Target.Value = "relatório" Then
'Chame a macro aqui
End If
End If
End Sub
```

Você também pode modificar a macro conforme necessário para atender às suas necessidades específicas. Espero que isso ajude!

O seu comentário
Acho que a resposta não está correta ou que você gostaria de acrescentar mais
alguma informação? Envie o seu comentário abaixo..

Guest


HTML não é permitido!

Image Code

Digite os caracteres que aparecem na imagem por isso sabemos que você é humano!

Receber um email quando alguém acrescenta outro comentário a esta pergunta


Topo da página


Home  Terms
Copyright © Accelerated Ideas 2005-2024
All rights reserved