P@tropi
Super Zumbi
Registrado
3.4K Mensagens
2.6K Curtidas
Boa tarde, Keldor
Veja se assim atende.
[]s
Anexos
Se foi útil, clique em Curtir.
Devemos combater o Comunismo ou qualquer doutrina totalitária.
Keldor.Rando...
Zerinho
Registrado
48 Mensagens
8 Curtidas
Boa tarde, Patropi. Estava tentando fazer por formatação condicional justamente para não ter fórmula naquelas células e poder escrever nelas quando não fosse "envio", mas acho que é mais fácil eu criar outra coluna apenas para isso. Pelo que vi, a formatação condicional não aceita fórmulas como "SE" ou "SES" com todas as variáveis. Obrigado mesmo assim!
Office: Ryzen 7 5800X | Gigabyte Aorus B450M | 32GB (4 x 8GB) 3.0GHz | RTX 3090 | M2 Kingston 500GB | Corsair TX750W | H/X-300 Glass
Home: Ryzen 7 3700X | Gigabyte Aorus B450M | 32GB (2 x 16GB) 3.2GHz | RTX 2060 | M2 Kingston 480GB | SF Leadex 1000W | Carbide275R
gabo-lacerda
Zerinho
Registrado
1 Mensagem
1 Curtida
Você pode criar essa automação no VBA utilizando um evento Worksheet_Change. Sempre que o valor na célula da coluna B for alterado para "Penalty", o código preencherá a coluna F com "ENVIO".
Aqui está como você pode fazer isso:
1. Abra o Excel e pressione Alt + F11 para abrir o editor do VBA.
2. No editor do VBA, clique duas vezes no nome da planilha onde deseja que a automação funcione (por exemplo, Plan1).
3. Cole o seguinte código no editor:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim celula As Range
' Verifica se a alteração está na coluna B
If Not Intersect(Target, Me.Columns("B")) Is Nothing Then
Application.EnableEvents = False ' Evita loops infinitos
For Each celula In Intersect(Target, Me.Columns("B"))
If celula.Value = "Penalty" Then
celula.Offset(0, 4).Value = "ENVIO" ' Coluna F fica 4 colunas à frente da coluna B
Else
celula.Offset(0, 4).Value = "" ' Limpa o valor se não for Penalty
End If
Next celula
Application.EnableEvents = True ' Reativa os eventos
End If
End Sub
4. Feche o editor do VBA e volte para o Excel.
5. Salve o arquivo como Pasta de Trabalho Habilitada para Macro (*.xlsm).
Como funciona o código:
- Intersect(Target, Me.Columns("B")): Verifica se a célula alterada está na coluna B.
- celula.Offset(0, 4): Refere-se à célula na mesma linha, mas 4 colunas à frente (ou seja, coluna F).
- Se o valor da célula na coluna B for "Penalty", ele preenche a coluna F com "ENVIO". Caso contrário, limpa o valor da célula na coluna F.
Agora, sempre que você alterar uma célula na coluna B para "Penalty", a coluna F será preenchida automaticamente com "ENVIO".
@EDIT: Ja anexei um arquivo com a automação pronta.
Anexos