Ejecutar varias veces una macro en excel según valor de distintas celdas en la misma hoja

Quiero ejecutar varias veces una macro según el valor de distintas celdas de una misma hoja en la misma hoja.

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address(False, False) = "K1" Then
If Target.Value = 1 Then Call CCHOMBRES
End If
If Target.Address(False, False) = "R1" Then
If Target.Value = 1 Then Call CCHOMBRES
End If
If Target.Address(False, False) = "Y1" Then
If Target.Value = 1 Then Call CCHOMBRES
End If
End Sub

La FILA siempre es la 1 y la COLUMNA es la columna activa COLUMNA = ActiveCell.Column
He probado esto para no tener que hacer IF por cada columna activa donde ejecutar la macro

COLUMNA = ActiveCell.Column
If Target.Address(False, False) = CELLS(1,COLUMNA) Then
If Target.Value = 1 Then Call CCHOMBRES
End If

Pero no logro que funcione.
Las FILAS que tengo que tratar son aproximadamente 35.000, y las COLUMNAS donde ejecutaría la macro son 37, y realiza 6 cálculos (en 6 columnas cada vez que se ejecuta la macro).
Con la primera opción, cada vez que se hace un calculo(cambio) en una celda, comprueba el valor de "K1" "R1" "Y1" etc, así hasta las 37 COLUMNAS, por lo que tarda muchísimo.
Como se puede hacer para que solo comprueba una vez que la celda "K1"(1, COLUMNA ACTIVA) ha pasado de cero (0) a uno (1)

Podría mandarte la macro, pero como es bastante extensa para ponerla en una pregunta, dime como la mandaría

1 Respuesta

Respuesta
1

Si lo que necesitas es que, si en la Fila 1, sin importar la columna que cambió, cuando un valor en la celda cambie a 1, entonces que se ejecute CCHOMBRES
Si entendí bien, entonces ocupa la siguiente macro
'***Macro, verifica la fila 1 y si cambia a 1 llama cchombre
Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dam
If Target.Row = 1 Then
If Target.Value = 1 Then
Call cchombres
End If
End If
End Sub
Saludos. Dam
Si es lo que necesitas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas