Apertura de un formulario Login con evento on time

Tengo un formulario Login para acceder a un libro de Excel, dicho formulario esta compuesto por una imagen que ocupa la mitad del formulario, y en la otra mitad un frame que contiene una imagen sobre la que hay dos cajas de texto una para usuario y la otra para contraseña. Actualmente el formulario se abre a la mitad mostrando la imagen primera y pulsando sobre una etiqueta de esa imagen aparece, desde la derecha el frame con los textbox. La idea es que cuando se abra el formulario y muestre la primera imagen a los 5 segundos aparezca el frame, con los textbox, sin que sea necesario pulsar en la etiqueta. Para lo cual he utilizado el evento On time, pero me da siempre error y no soy capaz de solucionarlo por mis cortos conocimientos en vba, te agradecería alguna sugerencia. Estos son los códigos que estoy usando.

Option Explicit
Private Sub Workbook_Open()
Application.ScreenUpdating = False
Application.Visible = False
   UserForm1.Show
 Application.ScreenUpdating = True
End Sub
'--------------------------------------
Private Sub Label1_Click()
Application.ScreenUpdating = False
' pulsando en la etiqueta hace aparecer el frame1
Do While Me.Frame1.Left > Me.Width - Me.Frame1.Width - 10
Me.Frame1.Left = Me.Frame1.Left - 1
DoEvents
Loop
Application.ScreenUpdating = True
End Sub
-------------------------------------------------
Private Sub UserForm_Initialize()
Application.ScreenUpdating = False
UserForm1.Height = 214
UserForm1.Width = 231
Application.OnTime Now + TimeValue("00:00:05"), "Desplazarframe1"
Application.ScreenUpdating = True
End Sub
'----------------------------------------------------------
Option Explicit
Sub Desplazarframe1()
Dim Frame1 As Variant
Application.ScreenUpdating = False
    Do While Frame1.Left > Width -Frame1.Width - 4
        Frame1.Left = Frame1.Left - 1
        DoEvents
    Loop
Application.ScreenUpdating = True
End Sub
'--------------------------------------------------------

1 respuesta

Respuesta
3

En los eventos de Thisworkbook:

Private Sub Workbook_Open()
  Application.ScreenUpdating = False
  Application.Visible = False
  UserForm1.Show
  Application.ScreenUpdating = True
End Sub

En el código del userform:

Private Sub UserForm_Activate()
  UserForm1.Height = 214
  UserForm1.Width = 231
  Application.OnTime Now + TimeValue("00:00:05"), "Desplazarframe1"
End Sub

En un módulo:

Sub Desplazarframe1()
  With UserForm1
    Do While .Frame1.Left > .Width - .Frame1.Width - 4
      .Frame1.Left = .Frame1.Left - 1
      DoEvents
    Loop
  End With
End Sub

En el módulo debes hacer referencia al UserForm1

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas