Ejecutar varias macros según valor en un rango de celdas

Tengo 12 celdas en el rango C26:N26. Estas celdas pueden tomar distintos valores. Desearía que cuando tomen el valor de 1 se ejecuten las macros correspondientes: macro1, macro2, macro3…. Hasta la macro12. Es decir si en la celda D26 y en la celda H26 tienen el valor de 1, se ejecutarán las macro2 y macro6

¿Se podría hacer esto?

1 Respuesta

Respuesta
1

No has especificado si quieres que se vuelvan a ejecutar todas las macros que tengan 1 en su casilla correspondiente o sólo se ejecuten cuando se pone un 1.

Para que se ejecute cuando se cambia el valor de la celda correspondiente a 1, pon esto en el evento change de la hoja:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C26:N26")) Is Nothing Then
    If Target.Value = 1 Then
        Run ("macro" & Target.Column - 2)
    End If
End If
End Sub

Sin embargo, si quieres que se ejecuten todas las macros que tengan un 1 en su celda, cada vez que pongas una celda del rango a 1, pon esto:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C26:N26")) Is Nothing Then
    For t = 3 To 15
          If Cells(26, t) = 1 Then
               Run ("macro" & t - 2)
          End If
    Next t
End If
End Sub

Si te ha valido la respuesta.

Me vale la segunda opción, pero quisiera lanzar todas las macros seleccionadas (con valor 1 en las cedas) desde un botón. Tampoco sé donde colocar el nombre de las macros

Gracias

Para el botón, pon el código en el evento click del botón.

Private Sub CommandButton1_Click()
For t = 3 To 15
        If Cells(26, t) = 1 Then
            Run ("macro" & t - 2)
        End If
    Next t
End Sub

Y las macros colócalas en un módulo.

Añade tu respuesta

Haz clic para o