Necesito una macro que busque valores en una hoja y los pegue en otra de forma ordenada

Necesito una macro busque un código de la hoja productos y luego pegue los distintos valores asociados a este código como peso bruto, peso neto, metros cúbicos, origen, etc, en la hoja consulta.

2 respuestas

Respuesta
1

En la hoja productos se encuentra de esta manera.

y en la hoja consulta los quiero ordenar de esta manera:

El código que realice que hace la primera parte de esta macro realiza una consulta de cuantas zonas de productos se instalarán, luego uno manualmente tiene que ingresar los productos de estas zonas. Luego crea una hoja consulta por zona.

Lo que necesito es que después de esto busque las los datos en la hoja producto y los vaya posicionando en la hoja consulta, ej:

Codigo E-110

Edades:

Area

Dimensiones:

Etc

Espero hacerme entender y muchas gracias por tu pronta respuesta.

No se si puedo enviarte el archivo para que me entiendas mejor.

Respuesta
1

Puedes poner un ejemplo de cómo están tus datos en la hoja "productos" y cómo quieres los datos en la hoja "consulta", es decir, pon en cuáles celdas está la información.

Sí, envíame tu archivo y me explicas con un ejemplo qué se toman de "productos" y exactamente en dónde se deben poner.

El ejemplo me lo explicas con colores y comentarios.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Daniel Fuentes” y el título de esta pregunta.

Dante ya te envié el archivo.

Muchas gracias.

Te anexo la macro

Sub Crear_Zonas()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Set h1 = Sheets("Productos")
    Set h2 = Sheets("Consulta")
    Set h3 = Sheets("Formato")
    '
    uc = h2.Cells(11, Columns.count).End(xlToLeft).Column
    For j = 1 To uc Step 3
        zona = h2.Cells(11, j)
        On Error Resume Next
        Sheets(zona).Delete
        On Error GoTo 0
        h3.Copy after:=Sheets(Sheets.count)
        Set h4 = ActiveSheet
        h4.Name = zona
        h4.Range("A1") = zona
        h4.Range("D1") = zona
        k = 4
        n = 3
        For i = 13 To h2.Cells(Rows.count, j + 1).End(xlUp).Row
            cod = h2.Cells(i, j + 1)
            cant = h2.Cells(i, j)
            Set b = h1.Columns("G").Find(cod, lookat:=xlWhole)
            If Not b Is Nothing Then
                fila = b.Row
                h3.Range("D4:F38").Copy h4.Cells(4, k)
                '
                h4.Cells(n, "A") = cant     'cantidad
                h4.Cells(n, "B") = cod      'codigo
                '
                h4.Cells(6, k + 1) = cod    'producto
                h4.Cells(7, k + 1) = ""     'edades
                h4.Cells(8, k + 1) = ""     'capacidad
                h4.Cells(9, k + 1) = ""     'precio
                '
                h4.Cells(13, k + 1) = ""                    'origen actual
                h4.Cells(14, k + 1) = h1.Cells(fila, "I")   'origen
                h4.Cells(15, k + 1) = h1.Cells(fila, "F")   'linea
                h4.Cells(16, k + 1) = h1.Cells(fila, "N")   'standard
                '
                h4.Cells(13, k + 1) = ""    'area de seguridad
                h4.Cells(14, k + 1) = ""    'dimensiones
                '
                k = k + 3
                n = n + 1
            End If
        Next
    Next
    h4.Cells.EntireColumn.AutoFit
    MsgBox "Fin"
End Sub

.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

.

Avísame cualquier duda

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas