¿Cómo unir varias columnas que contienen fechas en una sola columna, que no se dupliquen y que estén ordenados?

Para Dante Amor!

Hola! Espero me pueda ayudar. Estoy creando un excel que tiene 4 hojas llamadas "compras", "ventas", "costos" y "resumen diario", en donde la hoja "resumen diario" es un consolidado de las otras 3 hojas, la idea es que en esta última aparezca en una sola columna todos los días ingresados en las otras tres hojas (es importante señalar que en un día puede solo haber compras y no ventas, etc.), además me
quite las fechas duplicadas y el primer registro de la columna sea la ultima fecha ingresada, he tratado de millones de formas, te reconozco que no soy experta en macros pero de a poco en Internet y vídeos he
logrado aprender algunas cosas. Favor dame una luz o un camino para poder terminar esto que sería lo último que le faltaría a mi documento.

Respuesta
1

H o l  a :

En un correo nuevo me envías tu archivo de excel con 5 hojas: "compras", "ventas", "costos" y "resumen diario"; en la hoja5, llamada "resultado", me pones cómo quedarían las hojas "compras", "ventas" y "costos" consolidadas. Cada ejemplo que pongas en la hoja "resultado" me lo explicas de qué hoja viene, en cuáles celdas está, qué datos originales tiene y cómo quieres que finalmente quede como consolidado. Mínimo envíame 6 ejemplos, 2 por cada hoja.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Ana Rojas Zambrano” y el título de esta pregunta.

Hola Dante Amor,

Muchas gracias, ya envié el correo con las cosas que me solicitaste.

Gracias!!!!

Anexo la macro

Sub Resumen_Diario()
'Por.Dante Amor
    Dim fecha As Date
    Set h1 = Sheets("Resumen diario")
    '
    u = h1.Range("C" & Rows.Count).End(xlUp).Row + 1
    h1.Range("A2:G" & u).ClearContents
    '
    hojas = Array("Compras", "Ventas", "Costos")
    colfs = Array("B", "B", "B")                    'Columnas de fechas
    colts = Array("G", "F", "D")                    'Columnas de Totales
    colds = Array("E", "D", "F")                    'Columnas destino
    '
    For h = LBound(hojas) To UBound(hojas)
        i = 2
        Set h2 = Sheets(hojas(h))
        Do While h2.Cells(i, colfs(h)) <> ""
            fecha = h2.Cells(i, colfs(h))
            impor = h2.Cells(i, colts(h))
            Set b = h1.Columns("C").Find(fecha, lookat:=xlWhole)
            If Not b Is Nothing Then
                h1.Cells(b.Row, colds(h)) = h1.Cells(b.Row, colds(h)) + impor
            Else
                u = h1.Range("C" & Rows.Count).End(xlUp).Row + 1
                h1.Cells(u, "C") = fecha
                h1.Cells(u, colds(h)) = impor
            End If
            i = i + 1
        Loop
    Next
    With h1.Sort
        .SortFields.Clear
        .SortFields.Add Key:=h1.Range("C2:C" & u), _
            SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        .SetRange h1.Range("C1:G" & u): .Header = xlYes: .MatchCase = False: _
        .Orientation = xlTopToBottom: .SortMethod = xlPinYin: .Apply
    End With
    '
    With h1.Range("G2:G" & u)
        .FormulaR1C1 = _
            "=IF(ISNUMBER(R[-1]C),R[-1]C,R1C12)+RC[-3]-RC[-2]-RC[-1]"
        .Value = .Value
    End With
    MsgBox "Resumen actualizado", vbInformation, "RESUMEN DIARIO"
End Sub

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

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas