Llamar macro

Hola, deseo que cuando en una casilla halla un dato concreto, se ejecute una macro ya creada, he hecho esto y no anda.... Alguna sugerencia?
Sub REL401()
'
' REL401 Macro
' Macro grabada el 24/10/2002 por Daniel Tortosa
'
'
Sheets("Hoja1").Select
Range("D3:D4").Select
Selection.Copy
ActiveWindow.SmallScroll ToRight:=32
Range("D3:D4,AP3:AP4").Select
Range("AP3").Activate
ActiveWindow.SmallScroll ToRight:=3
ActiveWindow.ScrollColumn = 1
Range("E8").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = ""
Range("D3:D4").Select
ActiveWindow.SmallScroll ToRight:=32
Range("D3:D4,AP3:AP4").Select
Range("AP3").Activate
ActiveWindow.SmallScroll ToRight:=11
Range("D3:D4,AP3:AP4,AW3:AW4").Select
Range("AW3").Activate
ActiveWindow.SmallScroll ToRight:=39
Range("D3:D4,AP3:AP4,AW3:AW4,CK3:CK4").Select
Range("CK3").Activate
Selection.Copy
Sheets("Hoja2").Select
ActiveSheet.Paste
End Sub
---------------------------------------
Private Sub WOKSHEET_CHANGE()
Sheets("Hoja2").Select
ActiveSheet.Range("C3").Calculate
If C3 = 2401 Then
REL401
End If

1 respuesta

Respuesta
1
Para que corra como quieres, cambia la segunda a:
Private Sub WOKSHEET_CHANGE()
Sheets("Hoja2").Select
ActiveSheet.Range("C3").Calculate
If Range("C3").Value = 2401 Then
REL401
End If
End Sub
Sin embargo, tienes que correr la macro Workseet_change antes, tal vez te convenga usar un while, tipo:
Private Sub WOKSHEET_CHANGE()
Sheets("Hoja2").Select
ActiveSheet.Range("C3").Calculate
While Not Range("C3").Value = 2401
Sheets("Hoja2").Select
ActiveSheet. Range("C3"). Calculate
REL401
Wend
End Sub
Sin embargo lo más probable es que te tenga bloqueado el sistema hasta que tengas el valor buscado

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas