Hola Gente del Foro:
Espero que todos esten muy bien. Les cuento cual es mi pregunta de hoy.
Resulta que tengo una hoja llamada "Base" con una base de datos con 7
campos, siendo los campos:
Número Empresa Sucursal Fecha Beneficiario
Concepto Importe
Ahora, en un UserForm he implementado un buscador, para que de acuerdo a los
parámetros ingresados construya, al clickear un CommnadButton, en una hoja
llamada "Reporte" un reporte con los registros que coinciden con los
parámetros ingresados . Los parámetros para buscar en la base se ingresan
así:
Primer Número a buscar (desde) en TextBox2
Último Número a buscar (hasta) en TextBox3
Empresa en ComboBox2
Sucursal en ComboBox3
Primera Fecha a buscar (desde) en TextBox6
Última Fecha a buscar (hasta) en TextBox5
Beneficiario en ComboBox4
Concepto en ComboBox5
Importe en TextBox6
Lo que quiero es que el código busque los registros que coinciden con todos
los parámetros, pero que si en uno de los parámetros no se completó nada o
bien ignore ese parámetro para la búsqueda o bien interprete que ese
parámetro tiene valor "cualquiera". No se me ocurre como hacer esto!
Estuve experimentando con códigos del tipo:
With Worksheets("Base")
For Each celda In .Range("A2:A" & .[A65536].End(xlUp).Row)
If celda.Offset(0, 1) = ComboBox2 Then
If celda.Offset(0, 2) = ComboBox3 Then
celda.EntireRow.Copy
Worksheets("Reporte").[A65536].End(xlUp).Offset(1) _
.PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, _
Transpose:=False
End If
End If
Next
Con un código de este estilo puedo lograr que traiga los registros que
coinciden con los parámetros, pero con los siguientes problemas: a) Cuando
no se completa nada en un parámetro lo toma como que debe traer los
registros que estan "vacios" en ese campo, b) Entro en una casi infinita
sucesión de código del tipo IF y tal vez exista una manera de hacer esto sin
eroscar IF tras IF.
Bueno, espero me haya explicado bien. Desde ya muchas gracias por todo!!
Saludos
Mariano
CONTADURIA
Leer las respuestas