Ejemplo con foto para que vea como es la hoja

Señor kike, como podrá darse cuenta, en la siguiente imagen, la columna Z es la de los pedidos, podrá notar que en el articulo que pedí tiene algún monto y los que no elegí no tienen nada, yo quiero crear una hoja aparte en la que me aparezcan solo los artículos con todas sus celdas, de los ordene, para hacer una lista final de pedido para imprimir.

1 Respuesta

Respuesta

Enterado, dame unos minutos lo reviso.

Ya lo revisé y te elaboré la macro correspondiente, ¿sólo una duda sabes agregar macros a Excel?

¡Gracias! 

No mucho señor kike. Vi unas instrucciones pero no las entendí muy bien

Este es el código que hay que agregar a un módulo de macros.

Te comento que soy relativamente novato con esto, así que espero te sirva. Sin embargo lo probé y me funcionó.

Proporcióname un correo al cual pueda mandarte una pequeña instrucción para que instales la macro y cómo la puedas ejecutar.

Saludos.

Option Explicit
Dim filaFinal As Integer
Dim celdaFinal As String
Dim rangoBorrado As String
Dim filaCopiado As Integer
Dim rangoCopiado As String
Dim celdaDisponible As String
Dim celdaSiguiente As String
Sub crearPedido()
    ' Proceso para crear el pedido de artículos
        Call borraPedidoAnterior
        Worksheets("Hoja1"). Activate
        Range("A1").Activate
'        Range("A1:I1").Copy
        Range("A1:Z1").Copy
        Worksheets("Hoja2").Range("A1").PasteSpecial xlPasteAll
        Application.CutCopyMode = False
        Range("A2").Activate
        Call determinaUltimaCeldaDatos
'        Range("I2").Activate
        Range("Z2").Activate
        Do While ActiveCell.Row <= filaFinal
            If Not IsEmpty(ActiveCell) Then
                If ActiveCell.Value > 0 Then
                    filaCopiado = ActiveCell.Row
'                    rangoCopiado = Replace("A" & Str(filaCopiado) & ":I" & Str(filaCopiado), " ", "")
                    rangoCopiado = Replace("A" & Str(filaCopiado) & ":Z" & Str(filaCopiado), " ", "")
'                    celdaSiguiente = Replace("I" & Str(filaCopiado), " ", "")
                    celdaSiguiente = Replace("Z" & Str(filaCopiado), " ", "")
                    Range(rangoCopiado).Copy
                    Call siguienteFilaDisponible
                    Worksheets("Hoja2").Range(celdaDisponible).PasteSpecial xlPasteAll
                    Application.CutCopyMode = False
                    Worksheets("Hoja1").Activate
                    Range(celdaSiguiente).Activate
                End If
            End If
            ActiveCell.Offset(1, 0).Activate
        Loop
End Sub
Sub borraPedidoAnterior()
    ' Proceso para borrar el pedido anterior
        Worksheets("Hoja2").Activate
        Range("A1").Activate
        Do While Not IsEmpty(ActiveCell)
            ActiveCell.Offset(1, 0).Activate
        Loop
        filaFinal = ActiveCell.Row
'        celdaFinal = "I" & Str(filaFinal)
        celdaFinal = "Z" & Str(filaFinal)
        rangoBorrado = Replace("A1:" & celdaFinal, " ", "")
        Range(rangoBorrado).Clear
End Sub
Sub siguienteFilaDisponible()
    ' Proceso para determinar la siguiente fila disponible para copiado
    Worksheets("Hoja2").Activate
    Range("A1").Activate
    Do While Not IsEmpty(ActiveCell)
        ActiveCell.Offset(1, 0).Activate
    Loop
    celdaDisponible = ActiveCell.Address
End Sub
Sub determinaUltimaCeldaDatos()
    ' Proceso para determinar la última celda con datos de origen
    Do While Not IsEmpty(ActiveCell)
        ActiveCell.Offset(1, 0).Activate
    Loop
    filaFinal = ActiveCell.Row
End Sub

Enterado te mando la instrucción en la tarde, dame oportunidad termino aquí unos pendientes.

Ya te mandé la Instrucción, favor de valorar la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas