Mis primeros pasos para realizar un UseForm

Deseo crear un UseForm pero como es la primera vez que lo hago, no tengo ni la menor idea de como hacerlo, por eso acudo a uds para que me puedan indicar como hacerlo.

Empecemos por el primer paso.

Deseo que el primer dato que me solicita el UseForm es "Tipo de ID" del cliente. En la hoja "Constantes" del libro de excel tengo una tabla llamada "Tabla2" en donde se encuentran resgistrados los diferentes tipos de identificación que pueda tener un cliente.

Entonces la primera idea que tengo de mi UseForm es que al "EMPEZAR" a escribir en el TextBox1 el tipo de ID que el cliente tiene, ese espacio de AUTORELLENE en base a las palabras que hay en la tabla2 para así ahorrrar tiempo en su diligenciamiento. La idea es que esa palabra que se va escribiendo en el TextBox1 se vaya buscando sin importar si es al comienzo o al final es decir con comodines al comienzo y al final.

Ese seria mi primer paso de mi UseForm y poco a poco lo irpe construyendo en base a sus indicaciones.

1 Respuesta

Respuesta
1

Entonces la primera idea que tengo de mi UseForm es que al "EMPEZAR" a escribir en el TextBox1 el tipo de ID que el cliente tiene, ese espacio de AUTORELLENE en base a las palabras que hay en la tabla2 para así ahorrrar tiempo en su diligenciamiento.

Tu primer idea es muy ambiciosa. ¿Cuántos "Tipo de ID" tienes?

Lo mejor sería poner los "Tipo de ID" en un ComboBox.

Es más fácil manejar los datos si están en un rango de celdas que una tabla.

Puedes poner una imagen de la hoja "Constantes" para ver en cuál fila y en cuál columna empiezan tus "Tipo de ID".

Esto es lo que tengo en este momento

Empecemos con esto.

Quita tu textbox1 y crea un combobox1

Pon el siguiente código en tu userform. Abre tu userform, presiona F7 para ir al código.

Private Sub UserForm_Activate()
  With Sheets("Constantes")
    ComboBox1.List = .Range("A2", .Range("A" & Rows.Count).End(3)).Value
  End With
End Sub

Ejecuta el userform, en el combobox podrás ver los diferentes Tipos.

Listo OK funciona pero quisiera que no sea necesario escoger el valor con la flecha sino que se pueda escribir y el encuentre entre las opciones del listado el que mas se ajuste a los resultados. Por ejemplo:
Que yo empiece a escribir "civil"y el me encuentre "registro civil"

¿Mmm para 6 datos?

De hecho, con el combo box escribes una "R" y en automático te muestra "Registro civil".

Bueno listo. Dejemolo así solo escogiéndolo pero luego si lo voy a tener que necesitar como te digo por que son como una lista de 200 productos y la idea es que lo encuentre como comodines.

Ahora tengo un problema debo colocar una fecha de nacimiento. ¿Qué tipo de Box es el más conveniente para colocar allí?

Son como una lista de 200 productos

Bueno, para 200, es diferente. Lo que pasa es que tu ejemplo es muy simple.

Como sea, debería ser en un combo, si escribes una letra, te muestre todas las posibilidades que tienen esa letra. En un textbox, solamente te mostraría un dato.

En tu ejemplo simple, si escribes "ced", con textbox, solamente te muestra un dato. Pero si tienes un combo, te mostraría los 2 datos.


Pon el siguiente código:

Option Explicit 'Esto hasta arriba de todo el código
'
Dim cargando As Boolean
Dim sh As Worksheet
'
Private Sub ComboBox1_Change()
'Por.Dante Amor
  Dim dato As String, i As Long
  '
  If cargando = True Then Exit Sub
  cargando = True
  With ComboBox1
    dato = .Value
    .Clear
    For i = 2 To sh.Range("A" & Rows.Count).End(3).Row
      If UCase(sh.Range("A" & i)) Like "*" & UCase(dato) & "*" Then
        .AddItem sh.Range("A" & i)
      End If
    Next
    .Value = dato
    '
    TextBox1.SetFocus   'Se activa otro control para que aparezca el combo completo
    .SetFocus
    .DropDown
    cargando = False
  End With
End Sub
'
Private Sub UserForm_Activate()
'Por.Dante Amor
  Set sh = Sheets("Constantes")
  With ComboBox1
    .List = sh.Range("A2", sh.Range("A" & Rows.Count).End(3)).Value
    .MatchEntry = 2
  End With
End Sub


 TextBox1. SetFocus 'Se activa otro control para que aparezca el combo completo

En ese código debes poner un textbox que tengas, si ya tienes un textbox1, entonces deja así el código.



Ahora tengo un problema debo colocar una fecha de nacimiento. ¿Qué tipo de Box es el más conveniente para colocar allí?

Para capturar fecha, puedes utilizar un control DTPicker o un MonthView.

Para capturar fecha, puedes utilizar un control DTPicker o un MonthView.

La verdad no tengo ni idea de como se pone esto, me ayudas?

No me sale no tengo el tal Microsoft Windows Common Controls 2.6.0

Busca este:

Listo no importa, nada de eso tengo pero igual ya me consegui por internet un calendario hecho por alguien.

Ahora teniendo un UserForm "frmCalendario" como le digo a eso que se active cuando se haga click en ese TextBox de fecha de Nacimiento y que lo que se escoja en ese calendario llene ese textbox? 
Ese TextBox es el "TextBox3"

Cerremos este tema por lo del combobox y abre una pregunta nueva por cada tema.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas