Tengo sumas y restas en mi Work_book_open y necesito pasarlas o bien para un modulo o para otro evento y que los resultados ..

Tengo la Siguiente suma y restas en mi Workbook_Open y necesito pasarla para un normal evento, y tengo dificultades con ello.

Private Sub Workbook_Open()
SplashForm.Show

ThisWorkbook.Application.Visible = False

lastrow = Sheets("MKP").Cells(Rows.Count, "A").End(xlUp).Row
Sheets("MKP").Range("AE:AN").Locked = False
With Range("AE2:AI" & lastrow)
.Formula = "=sum(G2:G100)"
End With
'
With Range("AJ2:AN" & lastrow)
.Formula = "=sum(O2:O100)"
End With
'
Sheets("MKP").Range("AE:AN").Locked = True
'
Sheets("MKP").Range("BI:BR").Locked = False
With Range("BI2:BM" & lastrow)
.Formula = "=sum(AY2:AY100)"
End With
'
With Range("BN2:BR" & lastrow)
.Formula = "=sum(BD2:BD100)"
End With
'
Sheets("MKP").Range("BI:BR").Locked = True
'
'
Sheets("MKP").Range("AE:AN").Locked = False
With Range("CC2:CG" & lastrow)
.Formula = "=sum(AE2:AE100)-sum(Aj2:AJ100)"
End With
Sheets("MKP").Range("AE:AN").Locked = True
'
Sheets("MKP").Range("Bj:AR").Locked = False
With Range("CH2:CL" & lastrow)
.Formula = "=sum(Bj2:Bj100)-sum(BN2:BN100)"
End With
'
Sheets("MKP").Range("BJ:AR").Locked = True

End Sub

1 respuesta

Respuesta
1

Una opción es colocar el código en un módulo. En el evento Open luego de abrir el UF se llamará a esa macro con 'Call'.

Por ej:

Inserta un módulo y allí copia todo tu código.

Sub macroCalculos()
    lastrow = Sheets("MKP").Cells(Rows.Count, "A").End(xlUp).Row
    'el resto de tus instrucciones
End Sub

Luego, el código para el evento Open quedaría así:

Private Sub Workbook_Open()
   SplashForm.Show
   ThisWorkbook.Application.Visible = False
   Call macroCalculos
End Sub

Otra opción podría ser que llames al cálculo desde el formulario. Desconozco qué instrucciones tiene, pero podría realizar el cálculo antes de presentarlo. Por ej: en el evento Initialize del Userform.

Private Sub UserForm_Initialize()
    Call macroCalculos
    'resto de las instrucciones si hubiera
End Sub

En este caso la llamada ya no se realizará desde el evento Open.

Esta respuesta ya lleva 10 días... si el tema está resuelto sabes que debes valorar la respuesta para darla por cerrada, ¿verdad? Forenregeln !

Sdos!

¿Tenés 2 perfiles abiertos y en éste queda aún esta consulta sin cerrar... podrías valorarla y así a mí se me quita de las pendientes?

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas