Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
Por Dmorais
Posts
#32208
Gente preciso meeesmo de ajuda.

Estou a dar os primeiros passos em VBA e deparei-me logo com um problema. Preciso criar uma mensagem de alerta quando é escolhida a palavra Sim de uma dropbox.
Consegui a primeira! o Problema é que ao criar a mesma condição para a célula seguinte, ele fica a repetir a primeira ordem dps segunda..etc..
o que estou a fazer mal? Preciso que lance alerta uma vez e chega :lol:

Private Sub Worksheet_Change(ByVal Target As Range)

If Range("c6") = "Sim" Then
MsgBox "Por favor indicar Montante de Financiamento Aprovado"
End If

If Range("c7") = "Sim" Then
MsgBox "Por favor indicar Montante de Financiamento Pretendido"

End If
End Sub

Muito, muito grata desde já!
Por osvaldomp
#32218
Experimente:
Código: Selecionar todos
Private Sub Worksheet_Change(ByVal Target As Range)

 If Range("c6").Value = "Sim" Then
 MsgBox "Por favor indicar Montante de Financiamento Aprovado"
 
 ElseIf Range("c7").Value = "Sim" Then
 MsgBox "Por favor indicar Montante de Financiamento Pretendido"
 
 End If

End Sub
Experimente este outro também:
Código: Selecionar todos
Private Sub Worksheet_Change(ByVal Target As Range)

 If Target.Address = "$C$6" And Target.Value = "Sim" Then _
 MsgBox "Por favor indicar Montante de Financiamento Aprovado"
 
 If Target.Address = "$C$7" And Target.Value = "Sim" Then _
 MsgBox "Por favor indicar Montante de Financiamento Pretendido"
 
End Sub
Por Dmorais
Posts
#32246
Tou até emocionada :cry: muito obrigada! Funcionou e até repliquei para outros campos.

Agora me diz uma coisa... quando limpo os campos para colocar nova informação (montantes, etc) aparece aquela mensagem Run-time erro "13" Type mismatch. Faço end mas volta a aparecer... ajudas-me?
Por osvaldomp
#32251
Dmorais escreveu:... quando limpo os campos ... aparece aquela mensagem Run-time erro ...
Se o erro ocorre ao limpar várias células simultaneamente, para resolver acrescente a segunda linha abaixo. Se não resolver, explique.
Código: Selecionar todos
Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Count > 1 Then Exit Sub
...
...
...
Por Dmorais
Posts
#32258
Não tá a funcionar. Posso estar a fazer algo errado (de certeza!)
Eu nao tou a limpar celulas simultanemante, mas sim celulas isoladas. Repara eu escrevo um valor numa célula qualquer (até das que não estão no codigo) e aparece sempre o erro cada vez que dou delete...
Imagem
Por osvaldomp
#32260
Eu não consigo reproduzir o erro aqui.

Por favor disponibilize uma amostra do seu arquivo Excel (imagens não servem) com o código que está apresentando o erro instalado.
Por osvaldomp
#32274
Dmorais escreveu: Eu nao tou a limpar celulas simultanemante, mas sim celulas isoladas.
Você mesclou células e ao selecionar células mescladas o Excel considera multi seleção de células, e não seleção de células isoladas, por isso ocorre o erro.
Se você selecionar qualquer célula não mesclada (da coluna F , por exemplo) e apertar Delete, o erro não ocorrerá.

O comando que eu sugeri por último deve resolver isso, porém eu não fui claro quanto à posição que ele deve ser colocado no código. Coloque o comando logo abaixo do nome do código (como está no meu post) e não ao final do código como você colocou.
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord