Te paso el código para guardar los datos en la hoja "Pedidos".
No es tan simple el control de pedidos, necesitas un número único de Pedido por cada pedido que realices. Te puse una funcionalidad para crear el pedido único. Pero hay que trabajar más sobre los pedidos. Como crear una cabecera de pedido, con datos generales sobre el pedido, como fecha, quién elaboró el pedido, el total del pedido, etc.
En la hoja de "pedidos" se almacenará el detalle del pedido.
Prueba el siguiente código.
Private Sub BNUMERO_Change()
Dim n As Long
If CBOX_CARTA.Value <> "" And TBOX_CANTIDAD.Value <> "" Then
n = CBOX_CARTA.ListIndex + 4
PRECIO.Caption = Hoja6.Range("G" & n).Value
End If
End Sub
'
Private Sub CBOX_CARTA_Change()
Dim n As Long, nPrecio As Double
PRECIO.Caption = ""
If CBOX_CARTA.Value > -1 Then
n = CBOX_CARTA.ListIndex + 4
nPrecio = Hoja6.Range("G" & n).Value
PRECIO.Caption = nPrecio
End If
End Sub
'
Private Sub CBOX_MESA_Change()
Dim lr As Long
LabelPEDIDO.Caption = ""
If CBOX_MESA.ListIndex > -1 Then
lr = Sheets("Pedidos").Range("A" & Rows.Count).End(3).Row
LabelPEDIDO = lr
End If
End Sub
'
Private Sub CMB_AGREGAR_Click() 'AGREGAR DEL CBOX A LA LBOX
'Botón AGREGAR
Dim n As Long
Dim tot As Double, nPrecio As Double
'verifica si la carta tiene un valor
If CBOX_CARTA.Value = "" Or CBOX_CARTA.ListIndex = -1 Then
MsgBox "Selecciona una carta"
CBOX_CARTA.SetFocus
Exit Sub
End If
'
If TBOX_CANTIDAD.Value = 0 Or TBOX_CANTIDAD = "" Then
MsgBox "Captura una cantidad"
TBOX_CANTIDAD.SetFocus
Exit Sub
End If
'
n = CBOX_CARTA.ListIndex + 4
nPrecio = Hoja6.Range("G" & n).Value
With LBOX_PEDIDO
.AddItem
.List(.ListCount - 1, 0) = CBOX_CARTA.Value
.List(.ListCount - 1, 1) = TBOX_CANTIDAD.Value
.List(.ListCount - 1, 2) = Format(nPrecio, "#,##0.00")
.List(.ListCount - 1, 3) = Format(Val(TBOX_CANTIDAD.Value) * nPrecio, "#,##0.00")
If TBOX_TOTAL = "" Then tot = 0 Else tot = CDbl(TBOX_TOTAL)
TBOX_TOTAL = Format(tot + .List(.ListCount - 1, 3), "#,##0.00")
End With
'
'PARA QUE BORRE AGREGANDO UN PRODUCTO
CBOX_CARTA.Value = Empty 'limpia carta
TBOX_CANTIDAD.Value = Empty 'limpia cantidad
PRECIO.Caption = ""
End Sub
'
Private Sub CommandButton2_Click()
Dim i As Long, lr As Long
Dim sh As Worksheet
'
'Validar datos
If CBOX_MESA.Value = "" Or CBOX_MESA.ListIndex = -1 Then
MsgBox "Selecciona una MESA"
CBOX_MESA.SetFocus
Exit Sub
End If
'
If TBOX_TOTAL.Value = "" Then
MsgBox "El total "
CBOX_MESA.SetFocus
Exit Sub
End If
If TBOX_NOMBRE.Value = "" Then
MsgBox "Falta el nombre"
TBOX_NOMBRE.SetFocus
Exit Sub
End If
'Continuar con las siguientes validaciones
'
'
'Agregar los datos a la hoja
Set sh = Sheets("Pedidos")
lr = sh.Range("A" & Rows.Count).End(3).Row + 1
For i = 0 To LBOX_PEDIDO.ListCount - 1
sh.Range("A" & lr).Value = LabelPEDIDO.Caption
sh.Range("B" & lr).Value = CBOX_MESA.Value
sh.Range("C" & lr).Value = LBOX_PEDIDO.List(i, 0)
sh.Range("D" & lr).Value = LBOX_PEDIDO.List(i, 1)
sh.Range("E" & lr).Value = LBOX_PEDIDO.List(i, 2)
sh.Range("F" & lr).Value = LBOX_PEDIDO.List(i, 3)
sh.Range("G" & lr).Value = TBOX_NOMBRE.Value
sh.Range("H" & lr).Value = TBOX_RUT.Value
sh.Range("I" & lr).Value = TBOX_FONO.Value
sh.Range("J" & lr).Value = TBOX_TOTALFINAL.Value
sh.Range("K" & lr).Value = TBOX_PROPINA.Value
Next
End Sub