¿Como separar datos por marca?

Para dante amor

Buenas estimado!

Quisiera hacerle una consulta, estoy trabajando con datos en una hoja de excel, y le asigne a una macro que mostraria los registros por marcas, pero tengo problemas, no puedo hacerlo bien,

Y el resultado es el siguiente

Como ve separa por marcas pero cortados! Espero pueda ayudarme!

Este es el código donde extraigo la información y la ordeno por marca!

Sheets("libro-mayor").Select
Columns("F:F").Select
Selection.Copy
Sheets("analisis_cuentas").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("B1").Select
Sheets("libro-mayor").Select
Columns("C:C").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("analisis_cuentas").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("C1").Select
Sheets("libro-mayor").Select
Columns("A:A").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("analisis_cuentas").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("D1").Select
Sheets("libro-mayor").Select
Columns("D:D").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("analisis_cuentas").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("E1").Select
Sheets("libro-mayor").Select
Columns("G:G").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("analisis_cuentas").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("F1").Select
Sheets("libro-mayor").Select
Columns("E:E").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("analisis_cuentas").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("libro-mayor").Select
Columns("J:J").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("analisis_cuentas").Select
Range("G1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Columns("D:D").Select
Application.CutCopyMode = False
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("D2").Select
ActiveCell.FormulaR1C1 = "=+RC[-2]&""-""&RC[-1]"
Range("D2").Select
Selection.AutoFill Destination:=Range("D2", Hoja1.Range("F3").Value)
Range("D2", Hoja1.Range("F3").Value).Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("D1").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "comprobante"
Columns("B:C").Select
Range("C1").Activate
Selection.Delete Shift:=xlToLeft
'FECHAS OK
Columns("A:A").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlFixedWidth, _
FieldInfo:=Array(0, 5), TrailingMinusNumbers:=True
'* PARA QUE FUNCIONE POR RANGO DE FECHAS
If MsgBox("¿DESEA BUSCAR POR PERIODOS DE FECHAS?", vbYesNo, "SELECCION FECHAS") = vbYes Then
Sheets("fx").Select
Columns("E:E").Select
Selection.NumberFormat = "dd/mm/yyyy;@"
Range("E1").Select
uf_fechas.Show
If Hoja1.Range("E3").Value <> "FALSO" Then
Sheets("analisis_cuentas").Select
Range("G1").Select
ActiveCell.FormulaR1C1 = "Rango_Fecha"
Range("G2").Select
ActiveCell.FormulaR1C1 = _
"=+IF(AND(RC[-6]>=fx!R1C5,analisis_cuentas!RC[-6]<=fx!R2C5),1,0)"
Range("G2").Select
Selection.AutoFill Destination:=Range("G2", Hoja1.Range("F4").Value)
Range("G2", Hoja1.Range("F4").Value).Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("G1").Select
Do While ActiveCell.Value <> ""
If ActiveCell.Value = 0 Then
Selection.EntireRow.Delete
Else
ActiveCell.Offset(1, 0).Select
End If
Loop
Else
'* PARA EL CASO QUE CANCELE EL INGRESO DE FECHAS, SE ELIMINAN LAS ACCIONES Y VUELVE A EXCEL
Sheets("analisis_cuentas").Select
Columns("A:G").Select
Selection.Delete Shift:=xlToLeft
Range("A1").Select
Exit Sub
End If
End If
'* ORDENAR POR MARCA
Sheets("analisis_cuentas").Select
Columns("A:F").Select
Range("F1").Activate
ActiveWorkbook.Worksheets("analisis_cuentas").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("analisis_cuentas").Sort.SortFields.Add Key:=Range( _
"F2:F25"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("analisis_cuentas").Sort
.SetRange Range("A1:F25")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("G1").Select

'* CREA FORMATO AC
Sheets("analisis_cuentas").Select
Range("F2").Select
Selection.EntireRow.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
Selection.EntireRow.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
Selection.EntireRow.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
ActiveCell.Offset(4, 0).Select
ActiveCell.Offset(-3, -3).Value = ActiveCell.Value
Do While ActiveCell.Value <> ""
If ActiveCell.Value = ActiveCell.Offset(1, 0).Value Then
ActiveCell.Offset(1, 0).Select
Else
ActiveCell.Offset(1, 0).Select
Selection.EntireRow.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
Selection.EntireRow.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
Selection.EntireRow.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
ActiveCell.Offset(3, 0).Select
ActiveCell.Offset(-2, -3).Value = ActiveCell.Value
End If
Loop

1 Respuesta

Respuesta
1

H o l a : Envíame un archivo con 2 hojas, en la hoja1 pones la información base, en la hoja2 pones el resultado que esperas. Me explicas con comentarios, colores e imágenes lo que quieres hacer. Reviso tus ejemplos y creo una nueva macro.

Mi correo [email protected]

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

correo enviado!!

con asunto "Marcos Gabriel "¿Como separar datos por marca?

desde ya muchas gracias!!

Te anexo la macro

Sub SepararPorMarca()
'Por.Dante Amor
    Set h1 = Sheets("Hoja1")
    Set h2 = Sheets("Hoja2")
    Set h3 = Sheets("temp")
    h2.Cells.Clear
    h1.Cells.Copy h3.[A1]
    h1.Range("A1:D1,H1").Copy h2.Cells(1, "A")
    '
    u3 = h3.Range("H" & Rows.Count).End(xlUp).Row
    With h3.Sort
        .SortFields.Clear
        .SortFields.Add Key:=h3.Range("H2:H" & u3)
        .SortFields.Add Key:=h3.Range("D2:D" & u3)
        .SetRange h3.Range("A1:H" & u3): .Header = xlYes: .MatchCase = False
        .Orientation = xlTopToBottom: .SortMethod = xlPinYin: .Apply
    End With
    '
    j = 2
    For i = 2 To u3
        If ant <> h3.Cells(i, "H") Then
            j = j + 2
            h2.Cells(j, "C") = h3.Cells(i, "H")
            j = j + 2
        End If
        h3.Range("A" & i & ":D" & i & ",H" & i).Copy h2.Cells(j, "A")
        j = j + 1
        ant = h3.Cells(i, "H")
    Next
    h2.Select
    MsgBox "Fin"
End Sub

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

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas