¿Disparar macro de acuerdo a valor de celda?

Hola.
Necesito implementar algunas macros en hojas de excel ya esistente, pero me solicitan una macro que dependiendo del valor que este en una celda ejecute en automático la macro correspondiente.
¿Es esto posible?, me puedes dar algún ejemplo sencillo.
Por ultimo, se puede usar en macros una Listbox, ¿de tal forma que el listbox contenga datos como un catalogo y que al seleccionar en una celda una clave me muestra un listbox con opciones para seleccionar y vacíe información en la hoja basado en la selección?. (Creo que ni yo me entendí :o) ).
Espero tus apreciables comentarios.
Atentamente.
Armando Asencio ( [email protected] )

1 Respuesta

Respuesta
1
Para la primer parte, tenemos 2 opciones:
a) Si en un rango se ingresa cierto valor (en mi ejemplo el valor 1) se ejecutará la Macro1. Esta macro ya estará grabada y guardada en un módulo. El rango del ejemplo es A2:A20.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim RangCtrl As String
Dim EnRango As Variant
RangCtrl = "A2:A20"
Set EnRango = Application.Intersect(Range(RangCtrl), Target)
If Not EnRango Is Nothing Then
If EnRango.Value = 1 Then
Run "Macro1"
End If
End If
Set EnRango = Nothing
End Sub
b) Si solo se va a controlar el valor en una celda, por ejemplo por resultado de una fórmula. Por ejem, en la celda B20 tengo la fórmula:
=C20/D10 entonces las siguientes instrucciones ejecutan la macro1 si el resultado de la fórmula da 1.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim RangCtrl As String
Dim EnRango As Variant
If Range("B20").Value = 1 Then
Run "Macro1"
Else
If Range(?B20?).Value = 2 Then
ListBox1.Visible = True
Else
ListBox1.Visible = False
End If
End If
End Sub
Segunda parte: La macro anterior evalúa además, si el valor de la celda es =2 en ese caso muestra un ListBox.
El evento para el Listbox es Clic. Será algo así como lo que sigue:
Private Sub ListBox1_Click()
Range("B22").Value = ListBox1.Value
ListBox1.Visible = False
End Sub
Como verás lo vuelve a ocultar.
Espero haber entendido bien cuál es tu proyecto. De no ser así me volvés a preguntar.
Saludos cordiales,
Elsa
PD) Te recuerdo que las consultas deben ser finalizadas con una puntuación y comentario a gusto, para que podamos seguir atendiendo otras, tanto tuyas como de los demás.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas