Macro - ejecutar según contenido de celda

18/03/2005 - 19:51 por Mbaeijhapa | Informe spam
Hola amigos,
Tengo dos macros en una misma planilla. Quisiera saber como puedo hacer para
ejecutar una u otra conforme al resultado de una celda (si la celda dice "SI"
que se ejecute Macro1, si dice "NO" que se ejecute Macro2.
Gracias.

Mbaeijhapa.

Preguntas similare

Leer las respuestas

#1 KL
18/03/2005 - 23:45 | Informe spam
Hola Mbaeijhapa,

Select Case UCase(ActiveSheet.Range("A1").Value)
Case "SI": Call Macro1
Case "NO": Call Macro2
End Select

donde Macro1 y Macro2 son los nombres de los macros a llamar (sin los
parentesis).

Saludos,
KL

"Mbaeijhapa" wrote in message
news:
Hola amigos,
Tengo dos macros en una misma planilla. Quisiera saber como puedo hacer
para
ejecutar una u otra conforme al resultado de una celda (si la celda dice
"SI"
que se ejecute Macro1, si dice "NO" que se ejecute Macro2.
Gracias.

Mbaeijhapa.

Respuesta Responder a este mensaje
#2 Mbaeijhapa
19/03/2005 - 19:55 | Informe spam
Hola KL,
El código que me has enviado lo puse en una macro, pero no me funciona. Que
pasa ?. Seguro que hay algo que hago mal. Lo q hice es:

Sub Macro1( )
Select Case UCase(ActiveSheet.Range("A1").Value)
Case "SI": Call Macro1
Case "NO": Call Macro2
End Select
End Sub

Es así ?
Por favor, necesito una respuesta urgente. Gracias
Saaludos.
Mbaeijhapa.



"KL" escribió:

Hola Mbaeijhapa,

Select Case UCase(ActiveSheet.Range("A1").Value)
Case "SI": Call Macro1
Case "NO": Call Macro2
End Select

donde Macro1 y Macro2 son los nombres de los macros a llamar (sin los
parentesis).

Saludos,
KL

"Mbaeijhapa" wrote in message
news:
> Hola amigos,
> Tengo dos macros en una misma planilla. Quisiera saber como puedo hacer
> para
> ejecutar una u otra conforme al resultado de una celda (si la celda dice
> "SI"
> que se ejecute Macro1, si dice "NO" que se ejecute Macro2.
> Gracias.
>
> Mbaeijhapa.
>



Respuesta Responder a este mensaje
#3 KL
19/03/2005 - 20:05 | Informe spam
Hola Mbaeijhapa,

Tal como te decia, los nombres Macro1 y Macro2 son nombres de las macros
alternativas q piensas usar. Es decir en tu fichero deben existir los macros
con estos nombres (ademas el nombre q le has puesto a este macro es Macro1,
o sea q si la celda [A1]="SI" se llamara a si mismo). Ejemplo de como tiene
que ser:

Sub MacroPrincipal( )
Select Case UCase(ActiveSheet.Range("A1").Value)
Case "SI": Call Macro1
Case "NO": Call Macro2
End Select
End Sub

Sub Macro1( )
MsgBox "Acceso concedido"
End Sub

Sub Macro2( )
MsgBox "Acceso denegado"
End Sub

Saludos,
KL


"Mbaeijhapa" wrote in message
news:
Hola KL,
El código que me has enviado lo puse en una macro, pero no me funciona.
Que
pasa ?. Seguro que hay algo que hago mal. Lo q hice es:

Sub Macro1( )
Select Case UCase(ActiveSheet.Range("A1").Value)
Case "SI": Call Macro1
Case "NO": Call Macro2
End Select
End Sub

Es así ?
Por favor, necesito una respuesta urgente. Gracias
Saaludos.
Mbaeijhapa.



"KL" escribió:

Hola Mbaeijhapa,

Select Case UCase(ActiveSheet.Range("A1").Value)
Case "SI": Call Macro1
Case "NO": Call Macro2
End Select

donde Macro1 y Macro2 son los nombres de los macros a llamar (sin los
parentesis).

Saludos,
KL

"Mbaeijhapa" wrote in message
news:
> Hola amigos,
> Tengo dos macros en una misma planilla. Quisiera saber como puedo hacer
> para
> ejecutar una u otra conforme al resultado de una celda (si la celda
> dice
> "SI"
> que se ejecute Macro1, si dice "NO" que se ejecute Macro2.
> Gracias.
>
> Mbaeijhapa.
>



Respuesta Responder a este mensaje
#4 Mbaeijhapa
19/03/2005 - 20:07 | Informe spam
KL, complemento mi nota,
En lugar de Macro1 puse "Si_Dis" (nombre de una de las macros)
Y en lugar de Macro2 puse "No_Dis" (nombre de la otra macro)
Se entiende ?
Gracias.
Mbaeijhapa.



"KL" escribió:

Hola Mbaeijhapa,

Select Case UCase(ActiveSheet.Range("A1").Value)
Case "SI": Call Macro1
Case "NO": Call Macro2
End Select

donde Macro1 y Macro2 son los nombres de los macros a llamar (sin los
parentesis).

Saludos,
KL

"Mbaeijhapa" wrote in message
news:
> Hola amigos,
> Tengo dos macros en una misma planilla. Quisiera saber como puedo hacer
> para
> ejecutar una u otra conforme al resultado de una celda (si la celda dice
> "SI"
> que se ejecute Macro1, si dice "NO" que se ejecute Macro2.
> Gracias.
>
> Mbaeijhapa.
>



Respuesta Responder a este mensaje
#5 KL
19/03/2005 - 20:21 | Informe spam
Entonces el problema puede tener tres posibles causas:

1) que la celda [A1] de la HOJA ACTIVA no contiene ninguno de los valores
esperados o los tiene mal puestos (p.ej. con espacios)

2) que las otras macros se encuentren en los modulos de hoja, formulario o
libro q no son desde donde los llamas. Para que los macros puedan ser
llamados por otro macro deben estar en un modulo normal (p.ej. Modulo1) y no
ser Private Sub, o bien estar en el mismo modulo de clase (hoja, formulario
o libro) que el macro que los llama.

3) que esperes q el macro se dispare solo al cambiar los valores en las
celdas. Si eso es lo q quieres tendras q asignar tu macro a algun evento. Lo
mas logico seria depositar el codigo dentro del evento Worksheet_Change de
la hoja que contiene la celda con SI o NO. O sea:

Private Sub Worksheet_Change(ByVal Target As Range)
Select Case UCase(ActiveSheet.Range("A1").Value)
Case "SI": Call Macro1
Case "NO": Call Macro2
End Select
End Sub

Saludos,
KL

"Mbaeijhapa" wrote in message
news:
KL, complemento mi nota,
En lugar de Macro1 puse "Si_Dis" (nombre de una de las macros)
Y en lugar de Macro2 puse "No_Dis" (nombre de la otra macro)
Se entiende ?
Gracias.
Mbaeijhapa.



"KL" escribió:

Hola Mbaeijhapa,

Select Case UCase(ActiveSheet.Range("A1").Value)
Case "SI": Call Macro1
Case "NO": Call Macro2
End Select

donde Macro1 y Macro2 son los nombres de los macros a llamar (sin los
parentesis).

Saludos,
KL

"Mbaeijhapa" wrote in message
news:
> Hola amigos,
> Tengo dos macros en una misma planilla. Quisiera saber como puedo hacer
> para
> ejecutar una u otra conforme al resultado de una celda (si la celda
> dice
> "SI"
> que se ejecute Macro1, si dice "NO" que se ejecute Macro2.
> Gracias.
>
> Mbaeijhapa.
>



Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida