Saltar al contenido
PROGRAMAR EN VBA MACROS DE EXCEL

Como crear una factura o sale invoice seleccionando cliente de listbox


.

Este el primer de ocho post, en los que se mostrará como realizar una factura o comprobante de venta, se muestra como seleccionar cliente en listbox buscar sus datos y cargarlos a la factura; como cargar un cliente nuevo, como buscar articulos y agregarlos a la factura, como eliminar ítem de un listbox con doble click, como grabar en la base de datos los registros, como imprimir la factura, como guardarla en PDF y XLSX y por último como enviar la factura por mail mediante Outlook con imagen guardada en nuestra PC insertada en el cuerpo del mail con archivo de factura comprobante de venta o sale invoice adjunto.

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

Antes de seguir recomiendo leer un excelente libro sobre Excel que te ayudará operar las planillas u hojas de cálculo, haz click acá, si quieres aprender sobre Excel, en inglés, entonces debes hacer click here. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet.

  
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

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 automaticamentebuscar en listbox mientras escribes en textboxComo conectar Excel con Word crear archivo e insertar textoconectar Excel con Access y muchos ejemplos más.


if (payload.eventType == ‘subscribe’) {
// Add code to handle subscribe event.
} else if (payload.eventType == ‘unsubscribe’) {
// Add code to handle unsubscribe event.
}
if (window.console) { // for debugging only
window.console.log(‘YT event: ‘, payload);
}
}

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 «https://macrosenexcel.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.


.

If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.

Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends