Identificar O/F en una columna y colocar N° Factura relacionada a dicha O/F
Recurro a tu experiencia, para pedirte de favor que me ayudes a resolver el siguiente inconveniente.
Estoy haciendo un aplicativo de facturación con Macros Excel. Actualmente tengo un formulario que me permite realizar el ingreso de las O/F a una hoja excel "Base". La O/F puede estar compuesta por varios materiales y en la hoja base se guarda un registro por cada producto, relacionada a la O/F (Autoincremental). El siguiente procedimiento es solicitar la impresión de la factura que esta relacionada a la O/F, pero esto puede ser 1 o 2 días después. Es por ello que he creado un formulario con 03 textbox, uno para ingresar el número de O/F y los otros 02 textbox, son para ingresar el número de factura y la fecha de registro, para que haya una relación en la hoja "Base", entre la O/F y el número de Factura.
Intenté con una rutina, utilizando un Buscarv (Macros - Find), pero solo me encuentra el primer registro, pero para los siguientes registros con la misma O/F, ya no copia nada.
Es un tema netamente de bucle de repetición, pero no se como hacerexactamente para que siga encontrando los siguientes registros con el mismo número de O/F y guarde el número de factura y fecha.
Mi tabla Base tiene la siguiente estructura, que inicia en la columna A1 y termina en la columna F1, con un número de filas dinámico, ya que aqui se van guardando las O/F.
FECHA1 | N° O/F | CÓDIGO |TEXTO MATERIAL | N° FACTURA | FECHA2|
15/03/15 285 0001 ESCOBA PLASTICA 211-000458 17/03/15
17/03/15 286 0002 LIMPIADOR VIDRIO 211-000460 19/03/15
17/03/15 286 0005 JABON ANTIBACT 211-000460 19/03/15
17/03/15 286 0009 TRAPEADOR 211-000460 19/03/15
El código que tengo actualmente es:
Private Sub CommandButton3_Click()
Dim dato As String
Dim busco As Range
dato = TextBox1
Set busco = Sheets("Base").Range("B2:H20000").Find(dato, LookIn:=xlValues, LookAt:=xlWhole)
If Not busco Is Nothing Then
busco.Offset(0, 20) = Factura.Value
busco.Offset(0, 21) = FeFactura.Value
Else
'Si no encontró el dato puedes dejar un mensaje o los controles vacíos
MsgBox "No se encontró el N° de O/F"
End If
Worksheets("Inicio").Activate
Range("A1").Select
Unload Confirmar
End Sub