Una macro no se ejecuta desde otra macro, pero sí si la ejecuto manualmente, ¿Por qué?
En una hoja tengo un botón que ejecuta el siguiente código:
Sub preguntar_scroll()
Dim respuesta
respuesta = MsgBox("¿Quieres extender la pantalla actual?", vbYesNo + vbQuestion, "Extender pantalla")
If respuesta = vbYes Then
Sheets("visor").Activate
ActiveWindow.NewWindow
Sheets("datos").[J7].Value = ActiveWindow.hWnd
Sheets("datos").[I7].Value = "on"
Call visor
Else
Sheets("datos").[I7].Value = "off"
End If
End SubBásicamente me crea una ventana duplicada, la cual mostraré en un segundo monitor...
Al crearse la nueva ventana llamo a la macro "visor", que lo que hace, o debería, es darle formato a la nueva ventana (maximizarla, inmovilizar paneles, ocultar encabezados de filas y columnas, etc.), es la siguiente:
Sub scroll_visor()
'On Error GoTo error
Dim valorscroll As Long
valorscroll = Sheets("datos").[I8].Value
If ActiveWindow.hWnd <> Sheets("datos").[J7].Value Then
Windows(2).Activate
End If
'damos formato a la nueva ventana
With ActiveWindow
.Application.DisplayFullScreen = True
.Application.Sheets("visor").[B11].Select
.FreezePanes = True
.DisplayFormulas = False
.DisplayHeadings = False
.DisplayWorkbookTabs = False
.DisplayZeros = False
.DisplayHorizontalScrollBar = False
.DisplayVerticalScrollBar = False
End With
End SubEl problema radica en que cuando ejecuto el primer código, se ejecuta normalmente, y salta al segundo (lo he comprobado poniendo un msgbox), pero no realiza lo que este código ordena. Sin embargo si ejecuto el segundo código a mano desde vba, sí se ejecuta correctamente.
¿Alguien me podría indicar qué está pasando?
1 Respuesta
Respuesta de Elsa Matilde
2