No me anda este vba Alguien me puede ayudar

Respuesta de
a
Avatar
Usuario
Hola tengo este vba pero no me anda, lo que quiero es que si determinada celda que trae la info de una lista desplegable, tiene como info "TODOS", EJECUTE UNA MACRO, PERO EN CASO QUE NO SEA "TODOS", EJECUTE OTRA MACRO
Gracias por la ayuda!
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$R$3" And Target.Value = "TODOS" Then
Call limpiar
Select Case Target.Value
Case Is <> "TODOS"
Call saldosxvendedor
End Select
End If
End Sub
Avatar
Experto
Hola, cuando te refieres a que no te anda, ¿quieres decir que no ejecuta nada?, por tu código veo que si esta en la celda R3, y el valor es TODOS (si es minúsculas no te funcionara), si que se ejecuta el código limpiar, lo demás esta mal.
Private Sub Worksheet_Change(ByVal Target As Range)
'Si la celda es r3 entonces ejecuta el codigo
if Target.Address = "$R$3" then
'Si la celda tiene el valor TODOS entonces ejecuta limpiar
if Target.Value = "TODOS" Then
Call limpiar
'si en la celda no pone TODOS entonces ejecuta saldosxvendedor
else
Call saldosxvendedor
End If
end if
end sub
 
El select case solo se usa cuando hay varias posibilidades distintas, normalmente mas de dos, porque de lo contrario es mucho mas eficiente usar el IF. Mirate la ayuda de excel vba sobre el tema (se usa seleccionando la palabra, en este caso Select case, y luego presionando la tecla F1
saludos
Avatar
Usuario
Muchísimas gracias!