Macro comprar registros en base datos en excel

Tengo una hoja de excel que utilizo para comparar registros de dos base de datos, en la columna "B" tengo registros únicos (código) y en la Columna "C" la descripción de los códigos de la Columna "B", en la columna "E" ingresos varios códigos de productos, los cuales mando a buscar con un macro si constan en la columna "B", si el registro existe, el macro copia en la columna "F" la descripción del producto de la columna "E" encontrado en la columna "B" descrito en la columna "C"

Muy confuso,

Adjunto la macro

Sub busca()
Dim UltimaFilaA As Long
Dim UltimaFilaB As Long
Dim a As Long
Dim b As Long
Dim colorido As Byte
Worksheets("Hoja1").Range("B5").Activate
Range("B5").Select
Selection.End(xlDown).Select
UltimaFilaA = ActiveCell.Row
Range("E5").Select
Selection.End(xlDown).Select
UltimaFilaB = ActiveCell.Row
Range("A1").Select
For b = 6 To UltimaFilaB
For a = 6 To UltimaFilaA
If Cells(a, 2).Value = Cells(b, 5).Value Then
Cells(b, 6).Value = Cells(a, 3).Value
colorido = Int(Rnd * 55) + 1
Cells(a, 2).Interior.ColorIndex = colorido
Cells(b, 5).Interior.ColorIndex = colorido
End If
Next a
Next b

End Sub

La macro me va muy bien, la pregunta surge en que quiero aumentar el poder de la macro a más columnas

ejemplo

Columnas B = codigo

Columna C = Descripcion

Columna D = Precio

Columna E = Existecias

...

Y en la columna H ingresar manualmente los códigos de los productos que quiero buscar y con una macro si el producto existe traer toda la informarcion de las columnas C, DE y E a las columnas siguientes de la columna H, osea C->I, D->J y E->K

1 respuesta

Respuesta
1

Te anexo la macro actualizada

Sub busca()
    Dim UltimaFilaA As Long
    Dim UltimaFilaB As Long
    Dim a As Long
    Dim b As Long
    Dim colorido As Byte
    Worksheets("Hoja1").Range("B5").Activate
    Range("B5").Select
    Selection.End(xlDown).Select
    UltimaFilaA = ActiveCell.Row
    Range("H5").Select
    Selection.End(xlDown).Select
    UltimaFilaB = ActiveCell.Row
    Range("A1").Select
    For b = 6 To UltimaFilaB
        For a = 6 To UltimaFilaA
            If Cells(a, 2).Value = Cells(b, "H").Value Then
                Cells(b, "I").Value = Cells(a, 3).Value
                Cells(b, "J").Value = Cells(a, 4).Value
                Cells(b, "K").Value = Cells(a, 5).Value
                colorido = Int(Rnd * 55) + 1
                Cells(a, "B").Interior.ColorIndex = colorido
                Cells(b, "H").Interior.ColorIndex = colorido
            End If
        Next a
    Next b
End Sub

Saludos.Dante Amor

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas