Macro para comparar dos archivos en excel

He estado leyendo tus respuestas y vi que respondiste una similar que es ¿cómo compara dos archivos en Excel con una macro?, yo tengo algo parecido en mi trabajo, cada semana se baja un archivo de un sistema el cual baja en hoja de Excel, cada semana se actualiza ya sea por que las áreas de la empresa eliminen datos o agreguen o modifique. Quisiera saber como hacer una macro que me muestre los nuevos los modificados y los eliminados.

2 Respuestas

Respuesta
1

Como puedes ver el valor del viernes debe de ir en lunes, domingo y sábado esta en 0.

Busco la fecha de rango a en rango r, es igual veo si esta en usd, si esta en usd busco el valor del dolar y lo escribo en b. Pero sábado y domingo no hay valor de USD así que se debe tomar el del día viernes. Siempre se debe tomar el valor del día anerior

Facturas lunes valor del día viernes

Facturas martes valor del día lunes

Factura miércoles valor del día martes

Factura jueves valor del día miércoles

Factura viernes valor del día jueves

Facturas lunes valor del día viernes

Y así es el ciclo.

Perdón en la imagen en la columna A esta con fecha 1-7-16, debiendo ser 29-7-16.

Estoy de acuerdo con Dante Amor, como ves en lo que yo necesitba, especifico las columnas que se necesita comparar, o en mi caso era actualizar el valor de un lado en otro.

Se necesita saber que datos hay que buscar de una hoja a otra o libro, y que resultado quieres que te arroje.

Respuesta
1

H o l a : Describe con ejemplos detallados lo que realizas y en qué parte necesitas la ayuda.

hola; el asunto es el siguiente, yo cada determinado numero de días descargo un archivo del un sistema y baja en un archivo de Excel, cada día las áreas de la empresa están actualizando el archivo que esta en el sistema, entonces cuando  lo descargo esta con datos nuevos, eliminados y/o modificados (cada vez que lo descargo). por ejemplo: hoy descargue un archivo con un numero de columnas y un numero de datos, supongamos que vuelvo y descargo el mismo archivo del sistema mañana, con las mimas columnas del archivo anterior pero NO con los mismos datos. mi pregunta es¿ cual seria una macro en la que me muestre los datos nuevos los modificados y los cambiados?

Pero, necesito la descripción detallada de los ejemplos, nombres de libros, de hojas, en qué columnas está la información, qué columna se tiene que comparar contra cuál columna, etc. etc.

En ese mismo ejemplo me tienes que explicar cuáles son para ti los "nuevos", los "modificados" y los "cambiados"; ¿Y en dónde quieres el resultado? En una nueva hoja, con colores o con descripciones en alguna celda.

En fin, tienes que explicar el ejemplo con datos reales y cómo lo haces actualmente.

Si es más fácil de explicar con los archivos, entonces envíame tus archivos y con imágenes, colores y comentarios me explicas cómo haces la comparación y el resultado que esperas.

Mi correo [email protected]

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

S a l u d o s . D a n t e   A m o r

Hola Dante Amor; acabo de enviarte el correo con la información detallada, gracias espero tu respuesta a mi correo.

H o l a : Te anexo la macro

Sub Sumar()
'Por.Dante Amor
    Application.ScreenUpdating = False
    u = Range("A" & Rows.Count).End(xlUp).Row + 1
    Range("E2:E" & u).ClearContents
    Range("F2:F" & u) = 0
    With ActiveSheet.Sort
        .SortFields.Clear
        .SortFields.Add Key:=Range("A2:A" & u), _
            SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortTextAsNumbers
        .SortFields.Add Key:=Range("B2:B" & u), _
            SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        .SortFields.Add Key:=Range("C2:C" & u), _
            SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        .SetRange Range("A1:F" & u): .Header = xlYes: .MatchCase = False
        .Orientation = xlTopToBottom: .SortMethod = xlPinYin: .Apply
    End With
    '
    ini = 2
    ant1 = IIf(IsNumeric(Cells(ini, "A")), Val(Cells(ini, "A")), Cells(ini, "A"))
    ant2 = Cells(ini, "B")
    ant3 = Cells(ini, "C")
    For i = 2 To u
        valor1 = IIf(IsNumeric(Cells(i, "A")), Val(Cells(i, "A")), Cells(i, "A"))
        If valor1 = ant1 And _
           Cells(i, "B") = ant2 And _
           Cells(i, "C") = ant3 Then
            vTotal = vTotal + Cells(i, "D")
        Else
            Cells(ini, "E") = vTotal
            Cells(ini, "F") = 1
            vTotal = Cells(i, "D")
            ini = i
        End If
        ant1 = IIf(IsNumeric(Cells(i, "A")), Val(Cells(i, "A")), Cells(i, "A"))
        ant2 = Cells(i, "B")
        ant3 = Cells(i, "C")
    Next
    Application.ScreenUpdating = True
    MsgBox "Fin"
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas