Como copiar datos de un userform a otro

Tengo un archivo excel que se abre a través de un userform con usuario y contraseña tal como se ve en la primer imagen que anexo, quisiera saber si se puede colocar el nombre del usuario en el segundo userform en el label que dice usuario automáticamente y guardarlo en una hoja (usuario) del mismo archivo con el nombre del usuario, fecha y hora. Bueno mespero haberme explicado.

https://mega.nz/#!XQxnRDpC!8UOR7r6qeCPK3z8TbRygpsTP-UiNkZtDqVxd_I8FyLY 

https://mega.nz/#!3NpX0D4Y!pTJDAUVJH5bfE2QXfAv-RfFXwHBVtNalvW00JXhB8Qs 

1 respuesta

Respuesta
1

Pon lo siguiente en tu form1

Private Sub CommandButton1_Click()
    'validar acceso
    '
    'aquí tu código para validar
    '
    'si fue exitoso el acceso
        'Para agregar el usuario a la hoja usuario
        Set h = Sheets("usuario")
        u = h.Range("A" & Rows.Count).End(xlUp).Row + 1
        h.Cells(u, "A").Value = TextBox1.Value
        h.Cells(u, "B").Value = Now
        With UserForm2
            .Label2.Caption = TextBox1.Value    'textbox con el usuario
            .Show
        End With
    'fin acceso exitoso
End Sub

'.[Sal u dos. Dante Amor. No olvides valorar la respuesta. 
'.[Avísame cualquier duda

Si me copia la información a la hoja Usuarios pero no me aparece en el userform 2 en el label 2 el usuario a tampoco aparece la hora en la hoja usuario en que estaré mal te anexo lo que puse

 'validar acceso
    '
    'aquí tu código para validar
    '
    'si fue exitoso el acceso
        'Para agregar el usuario a la hoja usuario
        Set H = Sheets("Usuarios")
        u = H.Range("A" & Rows.Count).End(xlUp).Row + 1
        H.Cells(u, "A").Value = ComboBox1.Value
        H.Cells(u, "B").Value = Now
        With UserForm2
            .Label2.Caption = ComboBox1.Value    'textbox con el usuario
            .Show
        End With
    'fin acceso exitoso

¿En el userform2 tienes un label2?

¿El combobox1 tiene dato?

Cambia esta línea:

.Label2.Caption = ComboBox1.Value  

Por esta:

.Label2.Caption = userform1.ComboBox1.Value  


Para que se vea la hora, la columna B le tienes que cambiar el formato a: dd/mm/aaaa hh:mm

Hola Dante muy buenos días ya pude adaptar tu macro, pero lo que no puedo es hacer que me coloque la hora de entrada, bueno si se pudiera también la hora de salida. Agradecería mucho tu ayuda. Anexo como me quedo.

 'validar acceso
    '
    'aquí tu código para validar
    '
    'si fue exitoso el acceso
        'Para agregar el usuario a la hoja usuario
        Set H = Sheets("Usuarios")
        u = H.Range("A" & Rows.Count).End(xlUp).Row + 1
        H.Cells(u, "A").Value = ComboBox1.Value
        ' aqui codigo para colocar la hora de entrada en la celda B
        ' aqui codigo para colocar la hora de entrada en la celda C
        H.Cells(u, "D").Value = Now
        With Menu
            .Label2.Caption = ComboBox1.Value    'textbox con el usuario
            .Show
        End With
    'fin acceso exitoso

Ya logre poner la hora de entrada de un usuario solo me falta obtener la hora de salida cuando el usuario cierra la app o cambia de usuario. anexo como voy, p.d. sigo trabajando eh investigando.

     'validar acceso
    '
    'aquí tu código para validar
    '
    'si fue exitoso el acceso
        'Para agregar el usuario a la hoja usuario
        Set H = Sheets("Usuarios")
        u = H.Range("A" & Rows.Count).End(xlUp).Row + 1
        H.Cells(u, "A").Value = ComboBox1.Value
        H.Cells(u, "B").Value = Now
        ' aqui codigo para colocar la hora de entrada en la celda C
        H.Cells(u, "D").Value = Now
        With Menu
            .Label2.Caption = ComboBox1.Value    'textbox con el usuario
            .Show
        End With
    'fin acceso exitoso

Con gusto te ayudo con todas tus peticiones, valora esta respuesta y crea una nueva pregunta, ahí explicas con detalle el nuevo requerimiento.

Dante fíjate que checando las instrucciones que me distes no puedo cambiar de usuario a menos que ponga la clave del administrador que estará pasando a lo mejor la coloque en algún lugar inadecuado checamela por favor.

Private Sub CommandButton1_Click()
     'validar acceso
    '
    'aquí tu código para validar
    '
    'si fue exitoso el acceso
        'Para agregar el usuario a la hoja usuario
        Set H = Sheets("Usuarios")
        u = H.Range("A" & Rows.Count).End(xlUp).Row + 1
        H.Cells(u, "A").Value = ComboBox1.Value
        H.Cells(u, "B").Value = Now
        ' aqui codigo para colocar la hora de entrada en la celda C
        H.Cells(u, "D").Value = Now
        With Menu
            .Label2.Caption = ComboBox1.Value    'textbox con el usuario
            .Show
        End With
    'fin acceso exitoso
r = 0
If ComboBox1 = "Administrador" And TextBox1 = "torres" Then
r = 1
pass2.Hide
Menu.CommandButton12.Enabled = True
Menu.CommandButton14.Enabled = True
Menu.CommandButton13.Enabled = True
Menu.CommandButton1.Enabled = True
Menu.CommandButton2.Enabled = True
Menu.CommandButton3.Enabled = True
Menu.CommandButton10.Enabled = True
Menu.CommandButton11.Enabled = True
Menu.CommandButton4.Enabled = True
Menu.CommandButton16.Enabled = True
Menu.CommandButton15.Enabled = True
Menu.CommandButton17.Enabled = True
Menu.CommandButton7.Enabled = True
Menu.CommandButton8.Enabled = True
Menu.CommandButton9.Enabled = True
Menu.Show
End If
If ComboBox1 = "Gerente" And TextBox1 = "gerente" Then
r = 1
pass2.Hide
Menu.CommandButton12.Enabled = True
Menu.CommandButton14.Enabled = True
Menu.CommandButton13.Enabled = True
Menu.CommandButton1.Enabled = True
Menu.CommandButton2.Enabled = True
Menu.CommandButton3.Enabled = True
Menu.CommandButton10.Enabled = True
Menu.CommandButton11.Enabled = True
Menu.CommandButton4.Enabled = True
Menu.CommandButton16.Enabled = True
Menu.CommandButton15.Enabled = True
Menu.CommandButton17.Enabled = False
Menu.CommandButton7.Enabled = False
Menu.CommandButton8.Enabled = True
Menu.CommandButton9.Enabled = True
Menu.Show
End If
If ComboBox1 = "Cajera1" And TextBox1 = "cajera1" Then
r = 1
pass2.Hide
Menu.CommandButton12.Enabled = True
Menu.CommandButton14.Enabled = True
Menu.CommandButton13.Enabled = True
Menu.CommandButton1.Enabled = False
Menu.CommandButton2.Enabled = True
Menu.CommandButton3.Enabled = True
Menu.CommandButton10.Enabled = True
Menu.CommandButton11.Enabled = True
Menu.CommandButton4.Enabled = True
Menu.CommandButton16.Enabled = False
Menu.CommandButton15.Enabled = False
Menu.CommandButton17.Enabled = False
Menu.CommandButton7.Enabled = False
Menu.CommandButton8.Enabled = True
Menu.CommandButton9.Enabled = True
Menu.Show
End If
If ComboBox1 = "Cajera2" And TextBox1 = "cajera2" Then
r = 1
pass2.Hide
Menu.CommandButton12.Enabled = True
Menu.CommandButton14.Enabled = True
Menu.CommandButton13.Enabled = True
Menu.CommandButton1.Enabled = False
Menu.CommandButton2.Enabled = True
Menu.CommandButton3.Enabled = True
Menu.CommandButton10.Enabled = True
Menu.CommandButton11.Enabled = True
Menu.CommandButton4.Enabled = True
Menu.CommandButton16.Enabled = False
Menu.CommandButton15.Enabled = False
Menu.CommandButton17.Enabled = False
Menu.CommandButton7.Enabled = False
Menu.CommandButton8.Enabled = True
Menu.CommandButton9.Enabled = True
Menu.Show
End If
If ComboBox1 = "Cajera3" And TextBox1 = "cajera3" Then
r = 1
pass2.Hide
Menu.CommandButton12.Enabled = True
Menu.CommandButton14.Enabled = True
Menu.CommandButton13.Enabled = True
Menu.CommandButton1.Enabled = False
Menu.CommandButton2.Enabled = True
Menu.CommandButton3.Enabled = True
Menu.CommandButton10.Enabled = True
Menu.CommandButton11.Enabled = True
Menu.CommandButton4.Enabled = True
Menu.CommandButton16.Enabled = False
Menu.CommandButton15.Enabled = False
Menu.CommandButton17.Enabled = False
Menu.CommandButton7.Enabled = False
Menu.CommandButton8.Enabled = True
Menu.CommandButton9.Enabled = True
Menu.Show
End If
If r = 0 Then
MsgBox "Clave Incorrecta"
ComboBox1 = ""
TextBox1 = Empty
ComboBox1.SetFocus
End If
End Sub
Private Sub CommandButton2_Click()
sino = MsgBox("Estás seguro de no Abrir la aplicacion?", vbYesNo, "CONFIRMA")
If sino <> vbYes Then Exit Sub
Cancel = True
pass2.Hide
ActiveWorkbook.Close
End Sub
Private Sub Label1_Click()
End Sub
Private Sub TextBox1_Change()
Set rango = Selection
For Each cell In rango
   TextBox1.Value = LCase(TextBox1.Value)
Next
TextBox1.PasswordChar = "*"
End Sub
Private Sub UserForm_Activate()
ComboBox1.Clear
TextBox1 = Empty
TextBox1.SetFocus
ComboBox1.AddItem "Administrador"
ComboBox1.AddItem "Gerente"
ComboBox1.AddItem "Cajera1"
ComboBox1.AddItem "Cajera2"
ComboBox1.AddItem "Cajera3"
End Sub
'Evita Cerrar La Ventana
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = 0 Then
MsgBox "Use el botón CLOSE del formulario", vbInformation, " Botón No Disponible "
Cancel = 1
CloseMode = 1
End If
End Sub

No entiendo a qué te refieres con "no puedo cambiar de usuario"

sin las instrucciones que me apoyastes puedo cambiar de usuario sin cerrar la app, ya con las instrucciones colocadas en el sitio que te indico en msn anterior no puedo cambiar de usuario ya que me salta otro user do9nde me tengo que logear como administrador. no se si me entiendes

Haber si me explico mejor, mira si me logeo con cualquier usuario al abrir la app funciona todo sin problema es decir guarda todo lo solicitado en las instrucciones que me distes, pero cuando cambio de usuario sin cerrar la app ahí esta el detalle ya no me permite entrar al menu ya que salta sobre el menu otro userform que tengo pidiendo contraseña de administrador. Ahora si tiene un correo te envío el archivo

Prueba con lo siguiente, en estas líneas:

        With Menu
            .Label2.Caption = ComboBox1.Value    'textbox con el usuario
            .Show
        End With

Elimina la línea que dice 

.Show

Debe quedar así:

        With Menu
            .Label2.Caption = ComboBox1.Value    'textbox con el usuario
        End With

Prueba nuevamente.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas