Necesito seleccionar y pegar un rango de filas que varia.

Tengo en una celda el código de la orden de compra, esta orden de compra puede tener uno o más productos (esto es variable para cada orden).

Quiero realizar una macro que seleccione las celdas que contienen códigos (id de producto), que se encuentran en una misma fila (a partir F65) y ademas hay celdas vacías en el rango variable de filas.

Luego necesito copiar los id asociados a la orden en la fila G y el código de la orden en la fila B (el codigo se encuentra en la fila B1), en una hoja llamada Datos. Esto necesito hacerlo varias veces por ende debo ir pegando los datos de cada orden debajo de la ultima fila con datos.

Cualquier ayuda es bienvenida.

1

1 Respuesta

3.642.925 pts. Si me amas, siempre voy a estar en tu corazón; si me...

H o l a : Envíame tu archivo con ejemplos.

Explícame con comentarios, imágenes y con colores qué necesitas copiar y en dónde lo quieres pegar. Entre más claro sea el ejemplo, más práctica será la solución.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Sebastian Leiva Mardones” y el título de esta pregunta.

¡Gracias! 

Te acabo de enviar el correo.

Gracias nuevamente.

Te anexo el código

Private Sub CommandButton4_Click()
'Por.Dante Amor
    'Visualizar orde de compra en el listbox
    Set h1 = Sheets("Hoja1")
    Set h2 = Sheets("Datos")
    Set h3 = Sheets("Codigo")
    Set h4 = Sheets("Temp")
    '
    ListBox1.RowSource = ""
    h4.Cells.ClearContents
    h2.Rows(1).Copy h4.Rows(1)
    u = h4.Range("B" & Rows.Count).End(xlUp).Row + 1
    n = 1
    For i = 65 To h1.Range("A" & Rows.Count).End(xlUp).Row
        If h1.Cells(i, "C") <> "" Then
            h4.Cells(u, "A") = n                        'n°
            h4.Cells(u, "C") = h1.[B31]                 'nombre
            h4.Cells(u, "D") = h1.[B33]                 'tel
            h4.Cells(u, "B") = h1.[A1]                  'orden
            h4.Cells(u, "F") = h1.Cells(i, "C")         'cantidad
            h4.Cells(u, "K") = h1.Cells(i, "G")         'precio
            codigo = Mid(h1.Cells(i, "E"), 2, 7)
            If IsNumeric(codigo) Then codigo = Val(codigo)
            h4.Cells(u, "G") = codigo                   'codigo
            Set b = h3.Columns("A").Find(codigo, lookat:=xlWhole)
            If Not b Is Nothing Then
                h4.Cells(u, "E") = h3.Cells(b.Row, "B") 'categoría
                h4.Cells(u, "H") = h3.Cells(b.Row, "D") 'medida
                h4.Cells(u, "I") = h3.Cells(b.Row, "E") 'modelo
                h4.Cells(u, "J") = h3.Cells(b.Row, "C") 'marca
            Else
                h4.Cells(u, "E") = "no existe el código"
            End If
            n = n + 1
            u = u + 1
        End If
    Next
    u = h4.Range("B" & Rows.Count).End(xlUp).Row
    If u = 1 Then
        MsgBox "No hay registros"
    Else
        ListBox1.RowSource = h4.Name & "!A2:L" & u
        h4.Cells.EntireColumn.AutoFit
        For i = 1 To h4.Cells(1, Columns.Count).End(xlToLeft).Column
            cad = cad & Int(h4.Cells(1, i).Width) + 3 & "; "
        Next
        ListBox1.ColumnWidths = cad
    End If
End Sub

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

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas