Accionar una macro si la celda es igual a 1 e interumpir si es 0

Hola Dam me puedes ayudar, la siguiente macro me esta dando error, en la celda A5=1 y deberia ejecutar la macro Call Imprimir_Superior_Zona_1, y me ejecuta otra.

Tengo una hoja con informacion (1 ó 0) a partir de la celda A5, en la que quiero que si en A5 =1 se ejecute la macro

' Copiar un numero el los listados cep que vienen desde BW
' Cear los ajustes de impresion sup e inf de los JV
Sub Imprimr_RPV_Superior()
'Ejecuta macros
Sheets("BASE").Select
For i = 1 To 100
If Cells(i, 1) = 1 Then
Select Case i
Case 1
Call Imprimir_Superior_Zona_1
Case 2
Call Imprimir_Superior_Zona_2
Case 3
Call Imprimir_Superior_Zona_3
Case 4
Call Imprimir_Superior_Zona_4
Case 5
Call Imprimir_Superior_Zona_5
Case 6
Call Imprimir_Superior_Zona_6
Case 7
Call Imprimir_Superior_Zona_7
Case 8
Call Imprimir_Superior_Zona_8
Case 9
Call Imprimir_Superior_Zona_9
Case 10
Call Imprimir_Superior_Zona_10
Case 11
Call Imprimir_Superior_Zona_11
Case 12
Call Imprimir_Superior_Zona_12
Case 13
Call Imprimir_Superior_Zona_13
Case 14
Call Imprimir_Superior_Zona_14
Case 15
Call Imprimir_Superior_Zona_15
Case 16
Call Imprimir_Superior_Zona_16
Case 17
Call Imprimir_Superior_Zona_17
Case 18
Call Imprimir_Superior_Zona_18
Case 19
Call Imprimir_Superior_Zona_19
Case 20
Call Imprimir_Superior_Zona_20
Case 21
Call Imprimir_Superior_Zona_21
Case 22
Call Imprimir_Superior_Zona_22
Case 23
Call Imprimir_Superior_Zona_23
Case 24
Call Imprimir_Superior_Zona_24
Case 25
Call Imprimir_Superior_Zona_25
Case 26
Call Imprimir_Superior_Zona_26
Case 27
Call Imprimir_Superior_Zona_27
Case 28
Call Imprimir_Superior_Zona_28
Case 29
Call Imprimir_Superior_Zona_29
Case 30
Call Imprimir_Superior_Zona_30
Case 31
Call Imprimir_Superior_Zona_31
Case 32
Call Imprimir_Superior_Zona_32
Case 33
Call Imprimir_Superior_Zona_33
Case 34
Call Imprimir_Superior_Zona_34
Case 35
Call Imprimir_Superior_Zona_35
Case 36
Call Imprimir_Superior_Zona_36
Case 37
Call Imprimir_Superior_Zona_37
Case 38
Call Imprimir_Superior_Zona_38
Case 39
Call Imprimir_Superior_Zona_39
Case 40
Call Imprimir_Superior_Zona_40
Case 41
Call Imprimir_Superior_Zona_41
Case 42
Call Imprimir_Superior_Zona_42
Case 43
Call Imprimir_Superior_Zona_43
Case 44
Call Imprimir_Superior_Zona_44
Case 45
Call Imprimir_Superior_Zona_45
Case 46
Call Imprimir_Superior_Zona_46
Case 47
Call Imprimir_Superior_Zona_47
Case 48
Call Imprimir_Superior_Zona_48
Case 49
Call Imprimir_Superior_Zona_49
Case 50
Call Imprimir_Superior_Zona_50
Case 51
Call Imprimir_Superior_Zona_51
Case 52
Call Imprimir_Superior_Zona_52
Case 53
Call Imprimir_Superior_Zona_53
Case 54
Call Imprimir_Superior_Zona_54
Case 55
Call Imprimir_Superior_Zona_55
Case 56
Call Imprimir_Superior_Zona_56
Case 57
Call Imprimir_Superior_Zona_57
Case 58
Call Imprimir_Superior_Zona_58
Case 59
Call Imprimir_Superior_Zona_59
Case 60
Call Imprimir_Superior_Zona_60
Case 61
Call Imprimir_Superior_Zona_61
Case 62
Call Imprimir_Superior_Zona_62
Case 63
Call Imprimir_Superior_Zona_63
Case 64
Call Imprimir_Superior_Zona_64
Case 65
Call Imprimir_Superior_Zona_65
Case 66
Call Imprimir_Superior_Zona_66
Case 67
Call Imprimir_Superior_Zona_67
Case 68
Call Imprimir_Superior_Zona_68
Case 69
Call Imprimir_Superior_Zona_69
Case 70
Call Imprimir_Superior_Zona_70
Case 71
Call Imprimir_Superior_Zona_71
Case 72
Call Imprimir_Superior_Zona_72
Case 73
Call Imprimir_Superior_Zona_73
Case 74
Call Imprimir_Superior_Zona_74
Case 75
Call Imprimir_Superior_Zona_75
Case 76
Call Imprimir_Superior_Zona_76
Case 77
Call Imprimir_Superior_Zona_77
Case 78
Call Imprimir_Superior_Zona_78
Case 79
Call Imprimir_Superior_Zona_79
Case 80
Call Imprimir_Superior_Zona_80
Case 81
Call Imprimir_Superior_Zona_81
Case 82
Call Imprimir_Superior_Zona_82
Case 83
Call Imprimir_Superior_Zona_83
Case 84
Call Imprimir_Superior_Zona_84
Case 85
Call Imprimir_Superior_Zona_85
Case 86
Call Imprimir_Superior_Zona_86
Case 87
Call Imprimir_Superior_Zona_87
Case 88
Call Imprimir_Superior_Zona_88
Case 89
Call Imprimir_Superior_Zona_89
Case 90
Call Imprimir_Superior_Zona_90
Case 91
Call Imprimir_Superior_Zona_91
Case 92
Call Imprimir_Superior_Zona_92
Case 93
Call Imprimir_Superior_Zona_93
Case 94
Call Imprimir_Superior_Zona_94
Case 95
Call Imprimir_Superior_Zona_95
Case 96
Call Imprimir_Superior_Zona_96
Case 97
Call Imprimir_Superior_Zona_97
Case 98
Call Imprimir_Superior_Zona_98
Case 99
Call Imprimir_Superior_Zona_99
Case 100
Call Imprimir_Superior_Zona_100
'poner las llamadas a las macros restantes
End Select
Else
If Cells(i, 4) = 0 Then
Exit For
End If
End If
Next
End Sub

1 Respuesta

Respuesta
1

Lo que pasa es que tu contador i inicia en 1, entonces empiezas

for i = 1 to 100

'i vale 1

Si A1 = 1

select case i

case 1 ' Como i vale 1, entra en este case

imprime zona1

end if

Next

Al siguiente número

'i vale 2
Si A2 = 1
select case i
case 1
imprime zona1
case 2 ' Como i vale 2, entra en este case
imprime zona2
end if
Next
Cuando llega el contador a 5
'i vale 5
Si A5 = 1
select case i
case 1
imprime zona1
case 2 '
imprime zona2
case 3
imprime zona3
case 4 '
imprime zona4
case 5 ' ' Como i vale 5, en este momento, entra en este case
imprime zona5
end if
Next
Lo anterior es la explicación de por qué, te imprime la zona 5 cuando A5 = 1
No entiendo bien qué es lo que necesitas evaluar, pero si quieres verificar solamente A5, y si A5 = 1, entonces que se impriman todas las zonas, tienes que cambiar esta línea
If Cells(i, 1) = 1 Then
Por esta
If Range(“A5”) = 1 Then

Empieza la impresión de todas las zonas
Ahora si en toda la columna A, vas a tener 0 y 1 para evaluar cada celda, y dependiendo del valor de cada celda, vas a enviar a imprimir la zona, entonces deberías iniciar el contador en 5
For i = 5 To 100
Y después oponer
If Cells(i, 1) = 1 Then
Select Case i
Case 5 ‘iniciar el case en 5
Call Imprimir_Superior_Zona_1 ‘Entonces, ahora sí, si A5=1 imprime zona 1
Case 6
Call Imprimir_Superior_Zona_2

Puedes reducir las líneas, en lugar de poner un case, pones esto:

Sub llamafuncionstring()
Dim funimp As String
For i = 1 To 100
funimp = "Imprimir_Superior_Zona_" & i
Run funimp
Next
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas