Tengo un SplashForm en mi openbook que esta combinada con un login, ¿Pero no me abre y no se por que?

Tengo el siguiente código en vba normalmente debe abrir con Splahfor y luego ir aun login que lo anexare al fina, pero ese SplashForm no abre, he probado de dirente formas y no funciona, solo cuando le doy al pero si dirjo la macro funciona. ¿Alguien me puede ayudar a resolver esta incógnita?

Saludos

Eusebio

Private Sub Workbook_Open()
ThisWorkbook.Application.Visible = False
SplashForm.Show
pass = "chevo"

Sheets("MKP").Unprotect pass
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").Protect pass
ThisWorkbook.Application.Visible = True
End Sub

Codigo del SplashForm es :

Private Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function FindWindowA Lib "user32" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
#End If

Private Sub UserForm_Initialize()
'Este código realiza el procedimiento de ocultar la barra de título, haciendo uso de las API
Dim lngWindow As Long, lFrmHdl As Long
lFrmHdl = FindWindowA(vbNullString, Me.Caption)
lngWindow = GetWindowLong(lFrmHdl, GWL_STYLE)
lngWindow = lngWindow And (Not WS_CAPTION)
Call SetWindowLong(lFrmHdl, GWL_STYLE, lngWindow)
Call DrawMenuBar(lFrmHdl)
'-----------------------------------------------------------------------------------------

'Cargamos el formulario y establecemos un timer para que se cierre automáticamente

Dim Contador, Maximo, Intervalo As Integer
Dim Inicio As Double
Dim X

Maximo = 300

Me.Show
For Contador = 1 To Maximo
Inicio = Timer
Do Until Timer - Inicio > Intervalo
X = DoEvents()
Loop
Me.lbl_Bar.Width = Contador
Me.lbl_Percent.Caption = "Cargando " & Format(Contador / Maximo, "Percent")
Next Contador
frm_Login.Show

End

End Sub

1 respuesta

Respuesta
1

Asumo que cuando dices "SplashForm" te refieres a un "UserForm" de VBA cuyo nombre es el mencionado, entonces si se llama así como has colocado, no debería haber ningún problema en la línea siguiente:

SplashForm.Show

Y por ende debería abrir sin problema a menos que el nombre no sea "SplashForm". Verifica eso.

Sobre el resto de tu código, no lo he revisado pues no has mencionado nada más...

Lo otro es que en realidad tu problema sea otro y no lo hayas, aún, mencionado.

Abraham Valencia

¡Gracias!

Me sale como error que el método visible de ese objeto esta errado yvno se que significa eso que:

Cuando el se abre luego debe dar lugar al userfrom con un login:

Private Sub btn_Registrar_Click()
Dim usuario As String
Dim Fila, final As Integer
Dim password, UsuarioEncontrado, yaExiste, Status
Dim Rango As Range
Titulo = "Gestor de Inventarios"


yaExiste = Application.WorksheetFunction.CountIf(Hoja6.Range("Tabla1[Usuario]"), Me.txtUsuario.Value)
Set Rango = Hoja6.Range("Tabla1[Usuario]")

If Me.txtUsuario.Value = "" Or Me.txtPassword.Value = "" Then
MsgBox "Bitte Name und Password eintragen", vbExclamation, Titulo
Me.txtUsuario.SetFocus

ElseIf yaExiste = 0 Then
MsgBox "Diese Name '" & Me.txtUsuario & "' existiert nicht,Versuchen nochmal", vbExclamation, Titulo
ElseIf yaExiste = 1 Then
UsuarioEncontrado = Rango.Find(What:=Me.txtUsuario.Value, MatchCase:=False).Address
password = Hoja6.Range(UsuarioEncontrado).Offset(0, 1).Value
Status = Hoja6.Range(UsuarioEncontrado).Offset(0, 2).Value
If Hoja6.Range(UsuarioEncontrado).Value = Me.txtUsuario.Value And password = Me.txtPassword.Value Then
For Fila = 1 To 1000
If Hoja6.Cells(Fila, 1) = "" Then
final = Fila
Exit For
End If
Next
Hoja6.Cells(final, 1) = "=NOW()"
Hoja6.Cells(final, 1).Copy
Hoja6.Cells(final, 1).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Hoja6.Cells(final, 2) = Me.txtUsuario
Hoja6.Cells(final, 3) = Status
If Status = "Admin" Then
frm_Menu.CommandButton2.Enabled = True
frm_Menu.CommandButton9.Enabled = True
frm_Menu.CommandButton10.Enabled = True
frm_Menu.CommandButton11.Enabled = True
frm_Menu.CommandButton12.Enabled = True
'frm_Menu.CommandButton13.Enabled = True
End If
Hoja6.Range("G1") = Me.txtUsuario
Hoja6.Range("H1") = Status
Unload Me
ThisWorkbook.Save
frm_Menu.Show
Else
MsgBox "La contraseña es incorrecta", vbExclamation, Titulo
End If
End If
End Sub

Abrahm te puedo enviar mi libro para que veas lo que hace?

Saludos

Eusebio

Envía, aquí, captura de pantalla del error y la línea que señala

Abraham Valencia

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas