Macro busque y regrese valor de celda contigua

Hola experto buen día
Tengo un libro de control de facturas por proveedor, que me sirve para provisionar los pagos, cada hoja corresponde a un proveedor.
En Todas las hojas del libro excepto la primera, en la columna "B" a partir del renglón 13, son los números de factura
De las columnas "D" a "H" pongo los datos de deben llevar las facturas, siempre son al menos 3 datos
Mi problema es que de los 70 clientes, puedo hacer hasta 10 provisiones por semana y cuando pagan lleno los datos manualmente y se me olvida ver cuales quedaron en blanco
Necesito una macro que busque todas las columnas "B" del libro y si en ese renglón de la columna "D" a la "H" no nay ningún dato, me informe el valor que esta en la columna "B" para yo ir a buscar en físico la factura ingresada en la letra "B" y ver si se pago y capturar los datos
Tengo excel del office 2010 plus
Espero me puedas ayudar, de antemano muchas gracias

1 respuesta

Respuesta
1
No tengo el Excel 2010 pero esto te debería funcionar igualmente. Lo que hace el código es añdir una hoja nueva llamada Control para escribir los números de factura buscados, según el criterio que indicas.
Sub ControlFacturas()
Dim i As Integer 'indice de hoja
Dim f As Integer 'indice de fila
Dim maxf As Integer 'max filas de cada hoja
Dim x As Integer 'indice para datos en la hoja control
'creo la hoja de control para escribir los resultados
If Worksheets(Worksheets.Count).Name = "Control" Then 'la hoja control existe
    'la limpio
    Worksheets("Control").Activate
    Cells.Select
    Selection.ClearContents
Else 'no existe y la creo al final
    ThisWorkbook.Worksheets.Add After:=Worksheets(Worksheets.Count)
    Worksheets(Worksheets.Count).Name = "Control"
End If
Worksheets("Control").Activate
'cabecera. no es necesaria
Range("b1").Value = "Facturas impagadas" 'o el texto que corresponda
Columns("B:B").EntireColumn.AutoFit
Range("b1").Interior.ColorIndex = 3
'recorro las hojas buscando los datos empezando en la dos y sin la última (control)
x = 2
For i = 2 To ThisWorkbook.Worksheets.Count - 1
        'calculo las filas de la hoja y las recorro
        maxf = Worksheets(i).Range("b10000").End(xlUp).Row
        For f = 1 To maxf
            With Worksheets(i)
            If (.Range("d" & f).Value = "") And _
                (.Range("e" & f).Value = "") And _
                (.Range("f" & f).Value = "") And _
                (.Range("g" & f).Value = "") And _
                (.Range("h" & f).Value = "") Then   'anoto el dato
                Cells(x, 2).Value = .Cells(f, 2).Value
                x = x + 1
            End If
            End With
        Next f
Next
End Sub
Pruébalo y dime si te sirve.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas