
Seguidamente se listan los links a los restantes post:
Como crear una factura o sale invoice seleccionando cliente de listbox
Como crear una factura o sale invoice guardar cliente nuevo
Como crear una factura o sale invoice seleccionando articulos en listbox
Como crear una factura o sale invoice eliminar articulos del listbox
Como crear una factura o sale invoice y guardar registro
Como crear una factura o sale invoice guardar e imprimir
Como crear una factura o sale invoice y guardar en PDF
Como crear una factura o sale invoice y grabar guardar PDF XLS y enviar por MAIL
Como crear una factura o sale invoice y descontar de Stock o Inventario
Desde el link del final se podrá descargar el ejemplo de macro que permite escribir el cliente en un textbox y simultáneamente buscar en un listbox, encontrado el cliente hacer click en el cliente listado en listbox y pasar los datos automáticamente al texbox.
Descargado el ejemplo se puede observar un botón que permite mostrar un formulario que es un comprobante de venta, factura o sale invoice; al escribir en el textbox inmediatamente se muestra un listbox con los datos que coinciden con lo escrito en el textbox, se busca al principio, al medio y al final del nombre del cliente, lo escrito en el textbox.
Una vez seleccionado el cliente en el listbox con un click se pasa los datos del item seleccionado al textbox donde se ingresaron los datos del cliente lo mencionado se realiza con este código
En la parte inferior se encuentra toda la codificación correspondiente al formulario y módulo que se utiliza para que la macro busque a medida que se escribe en textbox y muestre los datos coincidentes en el listbox y una vez encontrado seleccionar el cliente con un click en el listbox y pasar los datos a los textbox respectivos.
El vídeo que sigue muestra una explicación más detallada y gráfica de la macro presentada, recomiendo observar para una más fácil comprensión de la macro; suscribe a nuestra web desde la parte superior derecha de la página ingresando tu mail y a nuestro canal de You Tube para recibir en tu correo vídeos explicativos sobre macros interesantes, como por ejemplo Como ingresar barras de fecha en Textbox automaticamente, buscar en listbox mientras escribes en textbox, Como conectar Excel con Word crear archivo e insertar texto, conectar Excel con Access y muchos ejemplos más.
Descargado el ejemplo se puede observar un botón que permite mostrar un formulario que es un comprobante de venta, factura o sale invoice; al escribir en el textbox inmediatamente se muestra un listbox con los datos que coinciden con lo escrito en el textbox, se busca al principio, al medio y al final del nombre del cliente, lo escrito en el textbox.
Una vez seleccionado el cliente en el listbox con un click se pasa los datos del item seleccionado al textbox donde se ingresaron los datos del cliente lo mencionado se realiza con este código
Private Sub ListBox2_Click()
On Error Resume Next
ctr = 1
TextBox1 = Empty
TextBox2 = Empty
fila = Me.ListBox2.ListIndex
Me.TextBox1 = ListBox2.List(fila, 2)
Me.TextBox2 = ListBox2.List(fila, 3)
ListBox2.Visible = False
ctr = 0
End Sub
En la parte inferior se encuentra toda la codificación correspondiente al formulario y módulo que se utiliza para que la macro busque a medida que se escribe en textbox y muestre los datos coincidentes en el listbox y una vez encontrado seleccionar el cliente con un click en el listbox y pasar los datos a los textbox respectivos.
El vídeo que sigue muestra una explicación más detallada y gráfica de la macro presentada, recomiendo observar para una más fácil comprensión de la macro; suscribe a nuestra web desde la parte superior derecha de la página ingresando tu mail y a nuestro canal de You Tube para recibir en tu correo vídeos explicativos sobre macros interesantes, como por ejemplo Como ingresar barras de fecha en Textbox automaticamente, buscar en listbox mientras escribes en textbox, Como conectar Excel con Word crear archivo e insertar texto, conectar Excel con Access y muchos ejemplos más.
Código que se inserta en un módulo
Public cod, art, mar, pv, ctr
Sub muestra1()
UserForm2.Show
End Sub
Código que se inserta en un formulario
Private Sub CommandButton1_Click()
Unload UserForm2
End Sub
Private Sub Label4_Click()
ActiveWorkbook.FollowHyperlink "http://www.programarexcel.com/p/home.html"
End Sub
Private Sub ListBox2_Click()
On Error Resume Next
ctr = 1
TextBox1 = Empty
TextBox2 = Empty
fila = Me.ListBox2.ListIndex
Me.TextBox1 = ListBox2.List(fila, 2)
Me.TextBox2 = ListBox2.List(fila, 3)
ListBox2.Visible = False
ctr = 0
End Sub
Private Sub TextBox1_Change()
If ctr = 1 Then Exit Sub
On Error Resume Next
Set b = Sheets("Clientes")
uf = b.Range("A" & Rows.Count).End(xlUp).Row
If Trim(TextBox1.Value) = "" Then
Me.ListBox2.RowSource = "Clientes!A2:D" & uf
Exit Sub
End If
b.AutoFilterMode = False
Me.ListBox2.Clear
Me.ListBox2.RowSource = Clear
Me.ListBox2.ColumnCount = 4
For i = 2 To uf
strg = b.Cells(i, 3).Value
If UCase(strg) Like "*" & UCase(TextBox1.Value) & "*" Then
Me.ListBox2.AddItem b.Cells(i, 1)
Me.ListBox2.List(Me.ListBox2.ListCount - 1, 1) = b.Cells(i, 2)
Me.ListBox2.List(Me.ListBox2.ListCount - 1, 2) = b.Cells(i, 3)
Me.ListBox2.List(Me.ListBox2.ListCount - 1, 3) = b.Cells(i, 4)
End If
Next i
Me.ListBox2.ColumnWidths = "15 pt;50 pt;80 pt;80"
ListBox2.Visible = True
End Sub
Private Sub UserForm_Initialize()
Nfac = Application.WorksheetFunction.Max(Sheets("DbFac").Range("A2" & ":A" & uf + 1)) + 1
Label2.Caption = Format(Nfac, "00000000")
TextBox3.SetFocus
End Sub
Código que se inserta en un módulo
Public cod, art, mar, pv, ctr
Sub muestra1()
UserForm2.Show
End Sub
Código que se inserta en un formulario
Private Sub CommandButton1_Click()
Unload UserForm2
End Sub
Private Sub Label4_Click()
ActiveWorkbook.FollowHyperlink "http://www.programarexcel.com/p/home.html"
End Sub
Private Sub ListBox2_Click()
On Error Resume Next
ctr = 1
TextBox1 = Empty
TextBox2 = Empty
fila = Me.ListBox2.ListIndex
Me.TextBox1 = ListBox2.List(fila, 2)
Me.TextBox2 = ListBox2.List(fila, 3)
ListBox2.Visible = False
ctr = 0
End Sub
Private Sub TextBox1_Change()
If ctr = 1 Then Exit Sub
On Error Resume Next
Set b = Sheets("Clientes")
uf = b.Range("A" & Rows.Count).End(xlUp).Row
If Trim(TextBox1.Value) = "" Then
Me.ListBox2.RowSource = "Clientes!A2:D" & uf
Exit Sub
End If
b.AutoFilterMode = False
Me.ListBox2.Clear
Me.ListBox2.RowSource = Clear
Me.ListBox2.ColumnCount = 4
For i = 2 To uf
strg = b.Cells(i, 3).Value
If UCase(strg) Like "*" & UCase(TextBox1.Value) & "*" Then
Me.ListBox2.AddItem b.Cells(i, 1)
Me.ListBox2.List(Me.ListBox2.ListCount - 1, 1) = b.Cells(i, 2)
Me.ListBox2.List(Me.ListBox2.ListCount - 1, 2) = b.Cells(i, 3)
Me.ListBox2.List(Me.ListBox2.ListCount - 1, 3) = b.Cells(i, 4)
End If
Next i
Me.ListBox2.ColumnWidths = "15 pt;50 pt;80 pt;80"
ListBox2.Visible = True
End Sub
Private Sub UserForm_Initialize()
Nfac = Application.WorksheetFunction.Max(Sheets("DbFac").Range("A2" & ":A" & uf + 1)) + 1
Label2.Caption = Format(Nfac, "00000000")
TextBox3.SetFocus
End Sub
Sub muestra1()
UserForm2.Show
End Sub
Código que se inserta en un formulario
Unload UserForm2
End Sub
Private Sub Label4_Click()
ActiveWorkbook.FollowHyperlink "http://www.programarexcel.com/p/home.html"
End Sub
Private Sub ListBox2_Click()
On Error Resume Next
ctr = 1
TextBox1 = Empty
TextBox2 = Empty
fila = Me.ListBox2.ListIndex
Me.TextBox1 = ListBox2.List(fila, 2)
Me.TextBox2 = ListBox2.List(fila, 3)
ListBox2.Visible = False
ctr = 0
End Sub
Private Sub TextBox1_Change()
If ctr = 1 Then Exit Sub
On Error Resume Next
Set b = Sheets("Clientes")
uf = b.Range("A" & Rows.Count).End(xlUp).Row
If Trim(TextBox1.Value) = "" Then
Me.ListBox2.RowSource = "Clientes!A2:D" & uf
Exit Sub
End If
b.AutoFilterMode = False
Me.ListBox2.Clear
Me.ListBox2.RowSource = Clear
Me.ListBox2.ColumnCount = 4
For i = 2 To uf
strg = b.Cells(i, 3).Value
If UCase(strg) Like "*" & UCase(TextBox1.Value) & "*" Then
Me.ListBox2.AddItem b.Cells(i, 1)
Me.ListBox2.List(Me.ListBox2.ListCount - 1, 1) = b.Cells(i, 2)
Me.ListBox2.List(Me.ListBox2.ListCount - 1, 2) = b.Cells(i, 3)
Me.ListBox2.List(Me.ListBox2.ListCount - 1, 3) = b.Cells(i, 4)
End If
Next i
Me.ListBox2.ColumnWidths = "15 pt;50 pt;80 pt;80"
ListBox2.Visible = True
End Sub
Private Sub UserForm_Initialize()
Nfac = Application.WorksheetFunction.Max(Sheets("DbFac").Range("A2" & ":A" & uf + 1)) + 1
Label2.Caption = Format(Nfac, "00000000")
TextBox3.SetFocus
End Sub
Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.
Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends