Jump to content
Sign in to follow this  
MisterHP

[CERRADO]Ayuda con completar Userforms

Recommended Posts

Re: Ayuda con completar Userforms

Ok mira solo a modo de ejemplo, crea una hoja nueva en el archivo y ponle el nombre EntradasSalidas y en la Columan C4 coloca un valor cualquiera. Por ejemplo 5,000.00, este valor es el que debe mostrarse en el textbox Disponible1 y Disponible2 del userform7.

En la pc que trabajo no puedo alojar archivos porque tengo restringido el acceso, de manera que disculpame por lo que te pido que hagas, esta es la razon por la que solicite que copies todo el codigo en el userform7 y crees la hoja como pedi.

Gracias, espero poder contar con tu ayuda dentro de lo que puedas.

Share this post


Link to post
Share on other sites

Re: Ayuda con completar Userforms

Hum el problema es que no puedo adjuntar el archivo al foro. hare lo siguiente el archivo que posees copia este codigo en el userform7 y haz la prueba que menciono antes de que el valor que aparece en el textbox disponible1 y disponible 2, dependan del combobox IDDestino1 y Destino2, estos son alados desde otra hoja llamada EntradasSalidas en la celda D4. hay problemas al restar ya que no esta restando ni el formato esta correcto.

Private Sub Fecha1_Enter()

'envio de parametros para fecha

frmcalendar1.ParametrosCalendario Me.Name, "Seleccione la Fecha", Me.Fecha1.Name

End Sub

Private Sub Fecha2_Enter()

'envio de parametros para fecha

frmcalendar1.ParametrosCalendario Me.Name, "Seleccione la Fecha", Me.Fecha2.Name

End Sub

Private Sub IDDestino1_Change()

'Datos

With IDDestino1

If .ListIndex = -1 Then Exit Sub

If .Value = IDDestino2.Value And .ListIndex <> -1 Then

MsgBox "Ese Registro ya se encuentra", vbCritical

.ListIndex = -1

Destino = ""

Exit Sub

Else

Destino1.Text = .List(.ListIndex, 1)

End If

End With

End Sub

Private Sub IDDestino2_Change()

'Datos

With IDDestino2

If .ListIndex = -1 Then Exit Sub

If .Value = IDDestino1.Value And .ListIndex <> -1 Then

MsgBox "Ese Registro ya se encuentra", vbCritical

.ListIndex = -1

Destino2 = ""

Exit Sub

Else

Destino2.Text = .List(.ListIndex, 1)

End If

End With

End Sub

Private Sub Grabar1_Click()

'Grabar

Dim v1str As String

Dim UltFil As Long

Dim Tipo As String

Dim rngbsq As Range

'validaciones de datos

If Len(IDDestino1.Value) = 0 Then v1str = "-Campo de ID Destino vacio"

If Len(Destino1.Text) = 0 Then v1str = "-Campo de Destino vacio"

If Len(Valor1.Text) = 0 Then v1str = "-Campo de valor vacio"

If Len(Fecha1.Text) = 0 Then v1str = "-Campo de fecha vacio"

If Len(v1str) > 0 Then

If MsgBox("Favor de verificar lo siguiente:" & vbCrLf & vbCrLf & v1str & _

vbCrLf & vbCrLf & "¿Confirma que desea Guardar los datos?", vbQuestion + vbYesNo + vbDefaultButton1) = vbNo Then

Exit Sub

End If

End If

Sheets("Salidas").Select

Range(Range("a" & Rows.Count).End(xlUp)(2), Range("d" & Rows.Count).End(xlUp)(2)) = _

Array(IDDestino1.Value, Destino1.Text, Valor1.Text, Fecha1.Text)

If MsgBox("Se ha guardado la información ¿Desea Capturar más registros?", vbQuestion + vbYesNo) = vbYes Then

Limpiar1_Click

End If

End Sub

Private Sub Grabar2_Click()

'Grabar

Dim v1str As String

Dim UltFil As Long

Dim Tipo As String

Dim rngbsq As Range

'validaciones de datos

If Len(IDDestino2.Value) = 0 Then v1str = "-Campo de ID Destino vacio"

If Len(Destino2.Text) = 0 Then v1str = "-Campo de Destino vacio"

If Len(Valor2.Text) = 0 Then v1str = "-Campo de valor vacio"

If Len(Fecha2.Text) = 0 Then v1str = "-Campo de fecha vacio"

If Len(Justifique.Text) = 0 Then v1str = "-Campo de fecha vacio"

If Len(v1str) > 0 Then

If MsgBox("Favor de verificar lo siguiente:" & vbCrLf & vbCrLf & v1str & _

vbCrLf & vbCrLf & "¿Confirma que desea Guardar los datos?", vbQuestion + vbYesNo + vbDefaultButton1) = vbNo Then

Exit Sub

End If

End If

Sheets("Salidas").Select

Range(Range("F" & Rows.Count).End(xlUp)(2), Range("J" & Rows.Count).End(xlUp)(2)) = _

Array(IDDestino2.Value, Destino2.Text, Valor2.Text, Fecha2.Text, Justifique.Text)

If MsgBox("Se ha guardado la información ¿Desea Capturar más registros?", vbQuestion + vbYesNo) = vbYes Then

Limpiar2_Click

End If

End Sub

Private Sub Limpiar1_Click()

IDDestino1.Value = ""

Destino1.Text = ""

Valor1.Text = ""

Fecha1.Text = ""

End Sub

Private Sub Limpiar2_Click()

IDDestino2.Value = ""

Destino2.Text = ""

Valor2.Text = ""

Fecha2.Text = ""

End Sub

Private Sub Valor1_Exit(ByVal Cancel As MSForms.ReturnBoolean)

Valor1 = VBA.Format(Valor1, "###,###,###.00")

End Sub

Private Sub Disponible1_Exit(ByVal Cancel As MSForms.ReturnBoolean)

Disponible1 = VBA.Format(Disponible1, "###,###,###.00")

End Sub

Private Sub Restante1_Enter()

Restante1.Text = Val(Valor1.Text) - Val(Disponible1.Text)

Restante1 = VBA.Format(Restante1, "###,###,###.00")

End Sub

Private Sub Valor2_Exit(ByVal Cancel As MSForms.ReturnBoolean)

Valor2 = VBA.Format(Valor2, "###,###,###.00")

End Sub

Private Sub Disponible2_Exit(ByVal Cancel As MSForms.ReturnBoolean)

Disponible2 = VBA.Format(Disponible2, "###,###,###.00")

End Sub

Private Sub Restante2_Enter()

Restante2.Text = Val(Valor2.Text) - Val(Disponible2.Text)

Restante2 = VBA.Format(Restante2, "###,###,###.00")

End Sub

Private Sub Salir_Click()

Unload Me

End Sub

Private Sub Regresar_Click()

Unload Me 'Descarga objeto

UserForm1.Show 'Muestra y carga objeto

End Sub

Private Sub UserForm_Initialize()

IDDestino2.RowSource = "Datos!C2:D" & Application.WorksheetFunction.CountA(Sheets("Datos").Columns("C:C"))

IDDestino1.RowSource = "Datos!F2:G" & Application.WorksheetFunction.CountA(Sheets("Datos").Columns("F:F"))

Sheets("EntradasSalidas").Select

UserForm7.Disponible1 = [D4]

UserForm7.Disponible2 = [D4]

End Sub

Copia este codigo en el formulario 7 Unicamente deja los codigos de Private Sub Fecha1_Enter() y Private Sub Fecha2_Enter()

Private Sub IDDestino1_Change()

'Datos

With IDDestino1

If .ListIndex = -1 Then Exit Sub

If .Value = IDDestino2.Value And .ListIndex <> -1 Then

MsgBox "Ese Registro ya se encuentra", vbCritical

.ListIndex = -1

Destino = ""

Exit Sub

Else

Destino1.Text = .List(.ListIndex, 1)

End If

End With

End Sub

Private Sub IDDestino2_Change()

'Datos

With IDDestino2

If .ListIndex = -1 Then Exit Sub

If .Value = IDDestino1.Value And .ListIndex <> -1 Then

MsgBox "Ese Registro ya se encuentra", vbCritical

.ListIndex = -1

Destino2 = ""

Exit Sub

Else

Destino2.Text = .List(.ListIndex, 1)

End If

End With

End Sub

Private Sub Grabar1_Click()

'Grabar

Dim v1str As String

Dim UltFil As Long

Dim Tipo As String

Dim rngbsq As Range

'validaciones de datos

If Len(IDDestino1.Value) = 0 Then v1str = "-Campo de ID Destino vacio"

If Len(Destino1.Text) = 0 Then v1str = "-Campo de Destino vacio"

If Len(Valor1.Text) = 0 Then v1str = "-Campo de valor vacio"

If Len(Fecha1.Text) = 0 Then v1str = "-Campo de fecha vacio"

If Len(v1str) > 0 Then

If MsgBox("Favor de verificar lo siguiente:" & vbCrLf & vbCrLf & v1str & _

vbCrLf & vbCrLf & "¿Confirma que desea Guardar los datos?", vbQuestion + vbYesNo + vbDefaultButton1) = vbNo Then

Exit Sub

End If

End If

Sheets("Salidas").Select

Range(Range("a" & Rows.Count).End(xlUp)(2), Range("d" & Rows.Count).End(xlUp)(2)) = _

Array(IDDestino1.Value, Destino1.Text, Valor1.Text, Fecha1.Text)

If MsgBox("Se ha guardado la información ¿Desea Capturar más registros?", vbQuestion + vbYesNo) = vbYes Then

Limpiar1_Click

End If

End Sub

Private Sub Grabar2_Click()

'Grabar

Dim v1str As String

Dim UltFil As Long

Dim Tipo As String

Dim rngbsq As Range

'validaciones de datos

If Len(IDDestino2.Value) = 0 Then v1str = "-Campo de ID Destino vacio"

If Len(Destino2.Text) = 0 Then v1str = "-Campo de Destino vacio"

If Len(Valor2.Text) = 0 Then v1str = "-Campo de valor vacio"

If Len(Fecha2.Text) = 0 Then v1str = "-Campo de fecha vacio"

If Len(Justifique.Text) = 0 Then v1str = "-Campo de fecha vacio"

If Len(v1str) > 0 Then

If MsgBox("Favor de verificar lo siguiente:" & vbCrLf & vbCrLf & v1str & _

vbCrLf & vbCrLf & "¿Confirma que desea Guardar los datos?", vbQuestion + vbYesNo + vbDefaultButton1) = vbNo Then

Exit Sub

End If

End If

Sheets("Salidas").Select

Range(Range("F" & Rows.Count).End(xlUp)(2), Range("J" & Rows.Count).End(xlUp)(2)) = _

Array(IDDestino2.Value, Destino2.Text, Valor2.Text, Fecha2.Text, Justifique.Text)

If MsgBox("Se ha guardado la información ¿Desea Capturar más registros?", vbQuestion + vbYesNo) = vbYes Then

Limpiar2_Click

End If

End Sub

Private Sub Limpiar1_Click()

IDDestino1.Value = ""

Destino1.Text = ""

Valor1.Text = ""

Fecha1.Text = ""

End Sub

Private Sub Limpiar2_Click()

IDDestino2.Value = ""

Destino2.Text = ""

Valor2.Text = ""

Fecha2.Text = ""

End Sub

Private Sub Valor1_afterupdate()

Dim valor As Double

Dim disponible As Double

Dim saldo As Double

valor = Valor1

disponible = Disponible1

saldo = Disponible1 - valor

Restante1 = saldo

Valor1 = VBA.Format(Valor1, "###,###,###.00")

Restante1 = VBA.Format(Restante1, "###,###,###.00")

End Sub

Private Sub Valor2_Exit(ByVal Cancel As MSForms.ReturnBoolean)

Dim valor As Double

Dim disponible As Double

Dim saldo As Double

valor = Valor2

disponible = Disponible2

saldo = Disponible2 - valor

Restante2 = saldo

Valor2 = VBA.Format(Valor2, "###,###,###.00")

Restante2 = VBA.Format(Restante2, "###,###,###.00")

End Sub

Private Sub Salir_Click()

Unload Me

End Sub

Private Sub Regresar_Click()

Unload Me 'Descarga objeto

UserForm1.Show 'Muestra y carga objeto

End Sub

Private Sub UserForm_Initialize()

IDDestino2.RowSource = "Datos!C2:d" & Application.WorksheetFunction.CountA(Sheets("Datos").Columns("C:C"))

IDDestino1.RowSource = "Datos!F2:G" & Application.WorksheetFunction.CountA(Sheets("Datos").Columns("F:F"))

UserForm7.Disponible1 = Sheets("EntradasSalidas").Range("d4").Value

UserForm7.Disponible2 = Sheets("EntradasSalidas").Range("d4").Value

Disponible1 = VBA.Format(Disponible1, "###,###,###.00")

Disponible2 = VBA.Format(Disponible2, "###,###,###.00")

End Sub

Share this post


Link to post
Share on other sites

Re: Ayuda con completar Userforms

Amigo sguevarag hice algunos cambios y me funcionó, copio el codigo como lo puse, pero pasa algo, yo quisiera que el valor disponible aparezca al seleccionar los combobox, de manera que no aparezcan a menos que seleccione el combobox que pernenezca al frame. es decir que si selecciono el combobox uno aparezca el valor disponible de ese combo, si selecciono el otro combox pues aparezca el otro. Con el codigo me resolvio el problema de resta y formatos de numero pero quedaria esta parte como pendiente.

Private Sub Fecha1_Enter()

'envio de parametros para fecha

frmcalendar1.ParametrosCalendario Me.Name, "Seleccione la Fecha", Me.Fecha1.Name

End Sub

Private Sub Fecha2_Enter()

'envio de parametros para fecha

frmcalendar1.ParametrosCalendario Me.Name, "Seleccione la Fecha", Me.Fecha2.Name

End Sub

Private Sub IDDestino1_Change()

'Datos

With IDDestino1

If .ListIndex = -1 Then Exit Sub

If .Value = IDDestino2.Value And .ListIndex <> -1 Then

MsgBox "Ese Registro ya se encuentra", vbCritical

.ListIndex = -1

Destino = ""

Exit Sub

Else

Destino1.Text = .List(.ListIndex, 1)

End If

End With

End Sub

Private Sub IDDestino2_Change()

'Datos

With IDDestino2

If .ListIndex = -1 Then Exit Sub

If .Value = IDDestino1.Value And .ListIndex <> -1 Then

MsgBox "Ese Registro ya se encuentra", vbCritical

.ListIndex = -1

Destino2 = ""

Exit Sub

Else

Destino2.Text = .List(.ListIndex, 1)

End If

End With

End Sub

Private Sub Grabar1_Click()

'Grabar

Dim v1str As String

Dim UltFil As Long

Dim Tipo As String

Dim rngbsq As Range

'validaciones de datos

If Len(IDDestino1.Value) = 0 Then v1str = "-Campo de ID Destino vacio"

If Len(Destino1.Text) = 0 Then v1str = "-Campo de Destino vacio"

If Len(Valor1.Text) = 0 Then v1str = "-Campo de valor vacio"

If Len(Fecha1.Text) = 0 Then v1str = "-Campo de fecha vacio"

If Len(v1str) > 0 Then

If MsgBox("Favor de verificar lo siguiente:" & vbCrLf & vbCrLf & v1str & _

vbCrLf & vbCrLf & "¿Confirma que desea Guardar los datos?", vbQuestion + vbYesNo + vbDefaultButton1) = vbNo Then

Exit Sub

End If

End If

Sheets("Salidas").Select

Range(Range("a" & Rows.Count).End(xlUp)(2), Range("d" & Rows.Count).End(xlUp)(2)) = _

Array(IDDestino1.Value, Destino1.Text, Valor1.Text, Fecha1.Text)

If MsgBox("Se ha guardado la información ¿Desea Capturar más registros?", vbQuestion + vbYesNo) = vbYes Then

Limpiar1_Click

End If

End Sub

Private Sub Grabar2_Click()

'Grabar

Dim v1str As String

Dim UltFil As Long

Dim Tipo As String

Dim rngbsq As Range

'validaciones de datos

If Len(IDDestino2.Value) = 0 Then v1str = "-Campo de ID Destino vacio"

If Len(Destino2.Text) = 0 Then v1str = "-Campo de Destino vacio"

If Len(Valor2.Text) = 0 Then v1str = "-Campo de valor vacio"

If Len(Fecha2.Text) = 0 Then v1str = "-Campo de fecha vacio"

If Len(Justifique.Text) = 0 Then v1str = "-Campo de fecha vacio"

If Len(v1str) > 0 Then

If MsgBox("Favor de verificar lo siguiente:" & vbCrLf & vbCrLf & v1str & _

vbCrLf & vbCrLf & "¿Confirma que desea Guardar los datos?", vbQuestion + vbYesNo + vbDefaultButton1) = vbNo Then

Exit Sub

End If

End If

Sheets("Salidas").Select

Range(Range("F" & Rows.Count).End(xlUp)(2), Range("J" & Rows.Count).End(xlUp)(2)) = _

Array(IDDestino2.Value, Destino2.Text, Valor2.Text, Fecha2.Text, Justifique.Text)

If MsgBox("Se ha guardado la información ¿Desea Capturar más registros?", vbQuestion + vbYesNo) = vbYes Then

Limpiar2_Click

End If

End Sub

Private Sub Limpiar1_Click()

IDDestino1.Value = ""

Destino1.Text = ""

Valor1.Text = ""

Fecha1.Text = ""

End Sub

Private Sub Limpiar2_Click()

IDDestino2.Value = ""

Destino2.Text = ""

Valor2.Text = ""

Fecha2.Text = ""

End Sub

Private Sub Valor1_afterupdate()

Dim valor As Double

Dim disponible As Double

Dim saldo As Double

valor = Valor1

disponible = Disponible1

saldo = Disponible1 - valor

Restante1 = saldo

Valor1 = VBA.Format(Valor1, "###,###,###.00")

Restante1 = VBA.Format(Restante1, "###,###,###.00")

End Sub

Private Sub Valor2_Exit(ByVal Cancel As MSForms.ReturnBoolean)

Dim valor As Double

Dim disponible As Double

Dim saldo As Double

valor = Valor2

disponible = Disponible2

saldo = Disponible2 - valor

Restante2 = saldo

Valor2 = VBA.Format(Valor2, "###,###,###.00")

Restante2 = VBA.Format(Restante2, "###,###,###.00")

End Sub

Private Sub Salir_Click()

Unload Me

End Sub

Private Sub Regresar_Click()

Unload Me 'Descarga objeto

UserForm1.Show 'Muestra y carga objeto

End Sub

Private Sub UserForm_Initialize()

IDDestino2.RowSource = "Datos!C2:D" & Application.WorksheetFunction.CountA(Sheets("Datos").Columns("C:C"))

IDDestino1.RowSource = "Datos!F2:G" & Application.WorksheetFunction.CountA(Sheets("Datos").Columns("F:F"))

UserForm7.Disponible1 = Sheets("EntradasSalidas").Range("d4").Value

UserForm7.Disponible2 = Sheets("EntradasSalidas").Range("d4").Value

Disponible1 = VBA.Format(Disponible1, "###,###,###.00")

Disponible2 = VBA.Format(Disponible2, "###,###,###.00")

End Sub

Share this post


Link to post
Share on other sites

Re: Ayuda con completar Userforms

Algo que acabo de notar en el Userform2 de registros de miembros que al guardar empezando desde la columna a4 hacia abajo el ID que se va copiando se copia asi

1

2

3

3

se repite en vez de continuar el orden cada vez que grabo un nuevo registro

copio el codigo que me ofrecieron, no se que anda mal

Sheets("Miembros").Select

Range(Range("A" & Rows.Count).End(xlUp)(2), Range("X" & Rows.Count).End(xlUp)(2)) = _

Array(IDMiembro.Text, Nombres.Text, Apellidos.Text, Direccion.Text, Sector.Text, Telefono.Text, Celular.Text, Cedula.Text, Correo.Text, FechaNacimiento.Text, Edad.Text, Informacion.Text, TipoMiembro.Value, Entrada.Text, Salida.Text, Bautizado.Value, FechaBautismal.Text, Comentario.Text, Sociedad.Value, Desde.Text, Hasta.Text, Funcion.Text, Entro.Text, Salio.Text)

Share this post


Link to post
Share on other sites

Re: Ayuda con completar Userforms

Copia estos codigos en los combobox y el ultimo en el useform initialize.

Private Sub IDDestino1_Change()

'Datos

With IDDestino1

If .ListIndex = -1 Then Exit Sub

If .Value = IDDestino2.Value And .ListIndex <> -1 Then

MsgBox "Ese Registro ya se encuentra", vbCritical

.ListIndex = -1

Destino = ""

Exit Sub

Else

Destino1.Text = .List(.ListIndex, 1)

Disponible1 = Sheets("EntradasSalidas").Range("d4").Value

Disponible1 = VBA.Format(Disponible1, "###,###,###.00")

End If

End With

End Sub

Private Sub IDDestino2_Change()

'Datos

With IDDestino2

If .ListIndex = -1 Then Exit Sub

If .Value = IDDestino1.Value And .ListIndex <> -1 Then

MsgBox "Ese Registro ya se encuentra", vbCritical

.ListIndex = -1

Destino2 = ""

Exit Sub

Else

Destino2.Text = .List(.ListIndex, 1)

Disponible2 = Sheets("EntradasSalidas").Range("d4").Value

Disponible2 = VBA.Format(Disponible2, "###,###,###.00")

End If

End With

End Sub

Private Sub UserForm_Initialize()

IDDestino2.RowSource = "Datos!C2:d" & Application.WorksheetFunction.CountA(Sheets("Datos").Columns("C:C"))

IDDestino1.RowSource = "Datos!F2:G" & Application.WorksheetFunction.CountA(Sheets("Datos").Columns("F:F"))

End Sub

Share this post


Link to post
Share on other sites

Re: Ayuda con completar Userforms

Copia estos codigos en los combobox y el ultimo en el useform initialize.

Private Sub IDDestino1_Change()

'Datos

With IDDestino1

If .ListIndex = -1 Then Exit Sub

If .Value = IDDestino2.Value And .ListIndex <> -1 Then

MsgBox "Ese Registro ya se encuentra", vbCritical

.ListIndex = -1

Destino = ""

Exit Sub

Else

Destino1.Text = .List(.ListIndex, 1)

Disponible1 = Sheets("EntradasSalidas").Range("d4").Value

Disponible1 = VBA.Format(Disponible1, "###,###,###.00")

End If

End With

End Sub

Private Sub IDDestino2_Change()

'Datos

With IDDestino2

If .ListIndex = -1 Then Exit Sub

If .Value = IDDestino1.Value And .ListIndex <> -1 Then

MsgBox "Ese Registro ya se encuentra", vbCritical

.ListIndex = -1

Destino2 = ""

Exit Sub

Else

Destino2.Text = .List(.ListIndex, 1)

Disponible2 = Sheets("EntradasSalidas").Range("d4").Value

Disponible2 = VBA.Format(Disponible2, "###,###,###.00")

End If

End With

End Sub

Private Sub UserForm_Initialize()

IDDestino2.RowSource = "Datos!C2:d" & Application.WorksheetFunction.CountA(Sheets("Datos").Columns("C:C"))

IDDestino1.RowSource = "Datos!F2:G" & Application.WorksheetFunction.CountA(Sheets("Datos").Columns("F:F"))

End Sub

Excelente esta parte ya funciona, habia puesto algo al momento que escribias del userform2 de registros de miembros a ver q le ocurre que no genera un numero continuo.

Share this post


Link to post
Share on other sites

Re: Ayuda con completar Userforms

Por si acaso no tengas el archivo con todo el codigo del userform2

hago copia del codigo, el problema como comente es q el numero de registro no aumenta, si empieza con 1, el siguiente registro se va a repetir en vez de ir aumentando.

Private Sub FechaNacimiento_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)

If KeyCode = vbKeyReturn Then Edad = DateDiff("yyyy", CLng(CDate(FechaNacimiento)), Date) & " años"

End Sub

Private Sub Desde_Enter()

With frmcalendar

.Caption = "Seleccione la Fecha"

.frmstr = Me.Desde.Name

.Show

End With

End Sub

Private Sub Entrada_Enter()

With frmcalendar

.Caption = "Seleccione la Fecha"

.frmstr = Me.Entrada.Name

.Show

End With

End Sub

Private Sub Entro_Enter()

With frmcalendar

.Caption = "Seleccione la Fecha"

.frmstr = Me.Entro.Name

.Show

End With

End Sub

Private Sub FechaBautismal_Enter()

With frmcalendar

.Caption = "Seleccione la Fecha"

.frmstr = Me.FechaBautismal.Name

.Show

End With

End Sub

Private Sub FechaNacimiento_Enter()

With frmcalendar

.Caption = "Seleccione la Fecha"

.frmstr = Me.FechaNacimiento.Name

.Show

End With

End Sub

Private Sub Limpiar1_Click()

IDMiembro.Value = ""

Nombres.Text = ""

Apellidos.Text = ""

Direccion.Text = ""

Sector.Text = ""

Telefono.Text = ""

Celular.Text = ""

Cedula.Text = ""

Correo.Text = ""

FechaNacimiento.Text = ""

Edad.Text = ""

Informacion.Text = ""

Direccion.Text = ""

TipoMiembro.Text = ""

Entrada.Text = ""

Salida.Text = ""

Bautizado.Text = ""

FechaBautismal.Text = ""

Comentario.Text = ""

Sociedad.Text = ""

Desde.Text = ""

Hasta.Text = ""

Funcion.Text = ""

Entro.Text = ""

Salio.Text = ""

IDMiembro = ID_Miembro

End Sub

Private Sub Regresar_Click()

Unload Me 'Descarga objeto

UserForm1.Show 'Muestra y carga objeto

End Sub

Private Sub Salida_Enter()

With frmcalendar

.Caption = "Seleccione la Fecha"

.frmstr = Me.Salida.Name

.Show

End With

End Sub

Private Sub Hasta_Enter()

With frmcalendar

.Caption = "Seleccione la Fecha"

.frmstr = Me.Hasta.Name

.Show

End With

End Sub

Private Sub Salio_Enter()

With frmcalendar

.Caption = "Seleccione la Fecha"

.frmstr = Me.Salio.Name

.Show

End With

End Sub

Private Sub Guardar_Click()

'Guardar

Dim v1str As String

Dim UltFil As Long

Dim Tipo As String

Dim rngbsq As Range

'validaciones de datos

If Len(Nombres.Text) = 0 Then v1str = "-Campo de nombres vacio"

If Len(Apellidos.Text) = 0 Then v1str = "-Campo de apellidos vacio"

If Len(Direccion.Text) = 0 Then v1str = "-Campo de direccion vacio"

If Len(v1str) > 0 Then

If MsgBox("Favor de verificar lo siguiente:" & vbCrLf & vbCrLf & v1str & _

vbCrLf & vbCrLf & "¿Confirma que desea Guardar los datos?", vbQuestion + vbYesNo + vbDefaultButton1) = vbNo Then

Exit Sub

End If

End If

Sheets("Miembros").Select

Range(Range("A" & Rows.Count).End(xlUp)(2), Range("X" & Rows.Count).End(xlUp)(2)) = _

Array(IDMiembro.Text, Nombres.Text, Apellidos.Text, Direccion.Text, Sector.Text, Telefono.Text, Celular.Text, Cedula.Text, Correo.Text, FechaNacimiento.Text, Edad.Text, Informacion.Text, TipoMiembro.Value, Entrada.Text, Salida.Text, Bautizado.Value, FechaBautismal.Text, Comentario.Text, Sociedad.Value, Desde.Text, Hasta.Text, Funcion.Text, Entro.Text, Salio.Text)

If MsgBox("Se ha guardado la información ¿Desea Capturar más registros?", vbQuestion + vbYesNo) = vbYes Then

If MsgBox("¿Desea limpiar el formulario para actualizar el No. de ID?", vbQuestion + vbYesNo + vbDefaultButton1) = vbYes Then

Limpiar1_Click

Else

IDMiembro = ID_Miembro

End If

Else

Unload Me

End If

End Sub

Function ID_Miembro() As Long

If IsNumeric(Sheets("Miembros").Range("A" & Rows.Count).End(xlUp).Value) Then

ID_Miembro = Sheets("Miembros").Range("A" & Rows.Count).End(xlUp).Value + 1

Exit Function

Else

ID_Miembro = 1

End If

End Function

Private Sub UserForm_Initialize()

TipoMiembro.RowSource = "Datos!A2:A" & Application.WorksheetFunction.CountA(Sheets("Datos").Columns("A:A"))

Bautizado.RowSource = "Datos!B2:B" & Application.WorksheetFunction.CountA(Sheets("Datos").Columns("B:B"))

Sociedad.RowSource = "Datos!D2:D" & Application.WorksheetFunction.CountA(Sheets("Datos").Columns("D:D"))

IDMiembro = ID_Miembro

End Sub

Private Sub Salir_Click()

Unload Me

End Sub

Share this post


Link to post
Share on other sites

Re: Ayuda con completar Userforms

Observando ahora el funcionamiento de los demas comobobox al momento de guardar la informacion con la formula

Sheets("Salidas").Select

Range(Range("a" & Rows.Count).End(xlUp)(2), Range("d" & Rows.Count).End(xlUp)(2)) = _

Array(IDDestino1.Value, Destino1.Text, Valor1.Text, Fecha1.Text)

If MsgBox("Se ha guardado la información ¿Desea Capturar más registros?", vbQuestion + vbYesNo) = vbYes Then

Limpiar1_Click

End If

Veo que produce le mismo error, habra que obtar por otra formula o no se que parte del codigo cambiar, ya que veo que repite lo mismo varias veces siempre que se copia, al principio funciona bien, pero luego en vez de ir pegando los datos lo que hace es que los copia en la primera columna repetidamente. :(

Share this post


Link to post
Share on other sites

Re: Ayuda con completar Userforms

No entiendo tu problema ya que me funciona bien

No disculpame, pero la verdad no funciona, si entras al userform2 y guardas un registro se copiara el registro con el numero 1 en el ID en la hoja Miembros, si continuas guardando otro registro se guardara con el numero 2 el ID, pero si realizas otro mas, todos se pondran con el ID 2 y asi sucesivamente.

Esto mismo ocurre con todos los botones guardar en los diferentes userform de entrada y salida, al principio se copian bien pero luego la informacion de la primera columna se repite despues de varios registros.

Hice varios registro y quedo todo asi en la hoja miembros en la primera columna del id y dell nombre.

ID NOMBRES APELLIDOS

3 victor vargas

3 victor vargas

3 victor vargas

Share this post


Link to post
Share on other sites

Re: Ayuda con completar Userforms

Hice varias pruebas y no me da ningun problema

A ver, deja todos los valores sin datos en la hoja miembros y luego entra al userform2 y crea varios registro de miembros, verifica en la hoja miembros que los datos que se van colocando se registraron con el mismo nombre y numero de id.

Volvi nuevamente y registre y asi quedo, por lo que se ve, no aumenta el numero de registro.

ID NOMBRES APELLIDOS DIRECCION

3 ereeeeeeeere reeeeeeeeeeeseres rrreeeeeeerereeees

3 ereeeeeeeere reeeeeeeeeeeseres rrreeeeeeerereeees

3 ereeeeeeeere reeeeeeeeeeeseres rrreeeeeeerereeees

Share this post


Link to post
Share on other sites

Re: Ayuda con completar Userforms

Creo que la posibilidad seria o ver cual es la parte del codigo que esta mal, o utilizar otro codigo que haga la misma funcion de pegar en cada hoja los datos y continuar en aumento el numero de ID a medida que se vayan copiando los datos y esos se actualicen en el userform en el caso del de registro de miembros, y en los demas userform que se peguen correctamente como deberia funcionar.

Share this post


Link to post
Share on other sites

Re: Ayuda con completar Userforms

buenas revisa archivo para ver si te funciona como necesitas

un saludo

Gracias amigo eres un master, yo acabo de probarlo y hasta ahora todo bien, voy a hacer luego mas pruebas para ver si todo funciona, me has salvado con esto.

Share this post


Link to post
Share on other sites

Re: Ayuda con completar Userforms

Buenas, luego de haber probado y ver que todo esta bien en el userform guardar, he creado una hoja que se llama ReportesEntradasSalidas en la cual quisiera que al usar el Userform5, el cual pueden ver, y elegir el tipo de reporte que deseo por ejemplo reporte de entradas y escoger dos fechas al presionar generar se copie los datos que encuentre en esa hoja dependiendo de la seleccion y las fechas que escoja, es decir que si escojo del 01/03/2010 al 31/03/2010 y que diga ENTRADAS, se me copien en la hoja y las columnas que corresponda a las entradas por miembros o sociedad y al final aparezca el total de las entradas en cada caso. Vi algo parecido en un archivo que hacia algo asi en esta direccion http://www.gigasize.com/get.php?d=dcd5o74p3md en el userform3 que genera reporte pero aquel no usa eso de la fecha.

Iglesia.zip

Share this post


Link to post
Share on other sites

Re: Ayuda con completar Userforms

Saludos y gracias por ayudarme a completar esta parte, aun mirando veo que hay partes que faltan ajustar, por ejemplo al copiarse los datos en la hoja se copian en un formato que el excel me pone que los valores son numeros si quiero copiarlo como numero y al obtener la suma no queda como tal. otra cosa mas es que si coloco dos rangos de fecha veo que toma los datos pero los pone segun lo haya determinado. Crees que sea posible que los datos aparezcan en el combobox con respecto a las fechas que aparezcan en las columnas de fecha dependiendo del tipo de reporte en el userform? y asi solo se introduciria una fecha que exista? O sea habria que poner los dos combobox de fecha dependiente del primer combobox de seleccionar el tipo de reporte. Hay un ejemplo parecido en el archivo que subi como ejemplo donde se podia seleccionar desde y hasta que fecha se podria imprimir o enviar email en uno d los userform que podria mas o menos servir para el caso.

Share this post


Link to post
Share on other sites

Re: Ayuda con completar Userforms

Estuve nuevamente observando el aporte realizado por el amigo L. y realice algunas busquedas sobre combobox dependientes iba a hacer el intento de aplicarlo a este caso pero no vi la forma de como hacerlo ya que los ejemplos eran distintos, ademas como comente al realizarse el copiado a la hoja veo que por ejemplo se pega sin formato y hace que en el caso de algunas fechas no se copien como tal y que la suma de valores no de el dato correcto porque no se detecta como numero. Si pudieras por favor nuevamente verificar el codigo y ayudarme con esta parte tanto para que se haga el combobox dependiente que recorra la columna de fecha dependiendo de la seleccion en cada caso y en el formato pues creo que con esto podria ser solucionada mi consulta.

Share this post


Link to post
Share on other sites

Re: Ayuda con completar Userforms

Hola,

Yo te podria ayudar pero es que en la empresa me tienen bloqueado ver ciertas páginas y una de esas es la de "Almacenamiento personal en la red e respaldo de seguridad" entonces si puedes subir el archivo al foro seria más facil.

Share this post


Link to post
Share on other sites

Re: Ayuda con completar Userforms

Hola,

Yo te podria ayudar pero es que en la empresa me tienen bloqueado ver ciertas páginas y una de esas es la de "Almacenamiento personal en la red e respaldo de seguridad" entonces si puedes subir el archivo al foro seria más facil.

Saludos maro, bueno sobre lo que comentas de que suba el archivo al foro, este ya esta subido al foro, es el mismo archivo que subio Logroastur y puedes descargarlo aca https://www.ayudaexcel.com/foro/attachment.php?attachmentid=14226&d=1272757761

Gracias cualquier cosa comentas si puedes descargarlo, puede unirse todo el que desee ya saben cada persona tiene una forma distinta de entender y hacer las cosas y cualquier aporte sera bien recibido.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  

×
×
  • Create New...

Important Information

Privacy Policy