Ejecutar macro con el cambio en B1

Tengo 3 macros y quisiera que desde la elección de un combobox en una hoja estás se ejecuten. La elección del combobox se replica en B1 y es coincidente con los nombres de las macros. Gracias por todo ☺️

Respuesta
1

Para ejecutar automáticamente una de las tres macros, la selección en un combobox y la actualización de la celda B.

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Me.Range("B1")) Is Nothing Then
        Select Case Me.Range("B1").Value
            Case "Macro1"
                Call Macro1
            Case "Macro2"
                Call Macro2
            Case "Macro3"
                Call Macro3
        End Select
    End If
End Sub

1 respuesta más de otro experto

Respuesta
3

'... Desde la elección de un combobox en una hoja...'

En una hoja podrías tener 2 tipos de Cuadros Combinados: los de la barra Formulario y los de ActiveX.

Como mencionas que en la celda B1 se replica el contenido del combo y coincide con el nombre de la macro, asumo entonces que hablamos de los ActiveX, ya que en los otros lo que se guarda es el índice del control y no su contenido.

Entonces, la ejecución debe ser al hacer clic en el combo, porque este cambio en la celda no dispara las macros. El código se coloca en el Editor, en el objeto HOJA que lo contiene.

Private Sub ComboBox1_Click()
On Error Resume Next
Application.Run (ComboBox1.Text)
End Sub

Te invito a mirar el video Nº 75 de mi canal donde dejo varios ejemplos de cómo llamar a las macros con la instrucción Application.Run:

https://www.youtube.com/watch?v=f_SMjRXRWjo&list=PLrhlyizWZzOERwRMxIIy-BTP-CyXh_K5N&index=12&t=104s 

¡Gracias Elsa! ☺️ 

Un nuevo video con este tema, para controles dibujados en una hoja (no userform):

https://www.youtube.com/watch?v=mk0cQR9kSEw&feature=youtu.be 

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas