Luego le colocamos nombre a los textbox a modo de que se nos facilite la programación de cada uno de ellos.
El primero que veremos es EL BOTÓN IMPRIMIR
Sheets("clientes").Select
Range("A1").Select
If Comparacion.Caption = NIT Then
Range("A2").Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell = NIT.Value
ActiveCell.Offset(0, 1).Select
ActiveCell = NOMBRE.Value
ActiveCell.Offset(0, 1).Select
ActiveCell = DIRECCION.Value
End If
Sheets("factura").Select
Range("E4").Select
ActiveCell = NIT.Value
Range("E3").Select
ActiveCell = NOFAC.Caption
Range("E5").Select
ActiveCell = FECHA.Value
Range("C4").Select
ActiveCell = NOMBRE.Value
Range("C5").Select
ActiveCell = DIRECCION.Value
MsgBox "LA FACTURA SE IMPRIMIO CON EXITO!", vbOKOnly, "FELICIDADES"
COD1 = Empty
PROD1 = Empty
PREC1 = Empty
CAN1 = Empty
SUB1 = Empty
EX1 = Empty
TOTAL = Empty
COD1.SetFocus
[J25] = [J25] + 1
El BOTÓN LIMPIAR
Private Sub CC_LIMPIAR_Click()
Sheets("factura").Select
NOMBRE = Empty
DIRECCION = Empty
NIT = Empty
COD1 = Empty
PROD1 = Empty
PREC1 = Empty
CAN1 = Empty
SUB1 = Empty
EX1 = Empty
TOTAL = Empty
NIT.SetFocus
End Sub
Private Sub COD1_Change()
If NIT.Value = "" Then
COD1 = Empty
NIT.SetFocus
Else
Sheets("base_de_datos").Select
Range("k20").Select
On Error Resume Next
Cells.Find(What:=COD1.Value, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
, SearchFormat:=False).Activate
Cells.FindNext(After:=ActiveCell).Activate
Comparacion.Caption = ActiveCell
ActiveCell.Offset(, 1).Select
PROD1.Value = ActiveCell
ActiveCell.Offset(, 1).Select
PREC1.Value = ActiveCell
ActiveCell.Offset(, 1).Select
EX1.Value = ActiveCell
End If
End Sub
EL BOTÓN AGREGAR
UserForm4.Hide
End Sub
Private Sub CommandButton2_Click()
If NOMBRE = emtpy Or DIRECCION = Empty Or NIT.Value = Empty Or COD1.Value = Empty Or CAN1.Value = Empty Then
MsgBox "debe llenar todos los campos para procesar la factura", vbOKOnly, "ERROR!!!!"
If NOMBRE = Empty Then
NOMBRE.SetFocus
End If
If DIRECCION = Empty Then
DIRECCION.SetFocus
End If
If NIT = Empty Then
NIT.SetFocus
End If
If COD1 = Empty Then
COD1.SetFocus
End If
If CAN1 = Empty Then
CAN1.SetFocus
End If
Else
ActiveCell = EX1.Value
Sheets("factura").Select
On Error Resume Next
Range("B9").Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell = COD1.Value
ActiveCell.Offset(0, 1).Select
ActiveCell = PROD1.Value
ActiveCell.Offset(0, 1).Select
ActiveCell = PREC1.Value
ActiveCell.Offset(0, 1).Select
ActiveCell = CAN1.Value
ActiveCell.Offset(0, 1).Select
ActiveCell = SUB1.Value
Range("F19").Select
TOTAL = Val([F19])
COD1 = Empty
PROD1 = Empty
PREC1 = Empty
CAN1 = Empty
SUB1 = Empty
COD1.SetFocus
Sheets("factura").Select
Range("B9").Select
End If
End Sub
EL TEXTBOX QUE NOS SERVIRÁ PARA COLOCAR EL NIT
Private Sub NIT_Change()
Sheets("clientes").Select
Range("a1").Select
On Error Resume Next
Cells.Find(What:=NIT, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
, SearchFormat:=False).Activate
Cells.FindNext(After:=ActiveCell).Activate
Comparacion.Caption = ActiveCell
If Comparacion.Caption = NIT Then
Selection.Offset(, -2).Select
NOMBRE.Value = ActiveCell
Selection.Offset(, 1).Select
DIRECCION.Value = ActiveCell
End If
If NIT = Empty Then
Selection.Offset(, 5).Select
NOMBRE.Value = Empty
DIRECCION.Value = Empty
End If
End Sub
EL TEXTBOX PARA SUBTOTAL
(Yo le puese el nombre de "SUB1")
TOTAL = Val(SUB1)
If SUB1 = "" Then
TOTAL = ""
End If
End Sub
Se programa el USERFROM *Se coloca en Initialize*
Private Sub UserForm_Initialize()
NIT.SetFocus
FECHA = Date
Sheets("base_de_datos").Select
NOFAC = [J25] + 1
End Sub
Previo a esto tu haces tus formatos en excel, como estos:
CLIENTES
BASE DE DATOS
FACTURA
Y ya tenemos otro Sistema de Facturación terminado.
No hay comentarios:
Publicar un comentario