Macro para Microsoft excel para comparar dos valores

Estoy intentando hacer una macro para que me
compare una referencia y una fecha de una Hoja1, con la referencia y la fecha
de una Hoja2, y si los valores coinciden, que me copie la cantidad que le
corresponde en la Hoja1.
Os añado un ejemplo de mi tabla, y un ejemplo de
como debería ser el resultado final.
He intentado varias macros pero no consigo el
resultado que me gustaría.
Muchas gracias por adelantado!
Un saludo
HOJA 1
___________01/02___02/02___03/02___04/02___05/02
Referencia1
Referencia2
HOJA2
____________________FECHA________CANTIDAD
Referencia1_________01-02-2013__________4
Referencia1_________02-02-2013__________5
Referencia1_________04-02-2013__________6 *
Referencia 1_________04-02-2013__________6 *
Referencia 2_________05-02-2013__________7
* Si dos fechas coinciden sumar el valor
RESULTADO FINAL HOJA 1
____________01/02____02/02___03/02___04/02___05/02
Referencia1____ 4_______5_______0______12
Referencia2____________________________________7

1 Respuesta

Respuesta
1

Me puedes aclarar una duda, por lo que veo, en la hoja1 tienes como títulos las fechas, mi duda es estas fechas que tienes como títulos, ¿tienen formato de fecha? ¿O son textos?

Buenos dias,

las fechas son con formato de fecha

Un saludo y gracias!

Sigue las Instrucciones para un botón y ejecutar la macro
1. Abre tu libro de Excel
2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
3. En el menú elige Insertar / Módulo
4. En el panel del lado derecho copia la macro
5. Ahora para crear un botón, puedes hacer lo siguiente:
6. Inserta una imagen en tu libro, elige del menú Insertar / Imagen / Autoformas
7. Elige una imagen y con el Mouse, dentro de tu hoja, presiona click y arrastra el Mouse para hacer grande la imagen.
8. Una vez que insertaste la imagen en tu hoja, dale click derecho dentro de la imagen y selecciona Asignar macro / Selecciona: refer
9. Aceptar.
10. Para ejecutarla dale click a la imagen.

Sub refer()
'por.dam
Set h1 = Sheets("Hoja1")
Set h2 = Sheets("Hoja2")
cantidad = 0
h1.Select
Range(Cells(2, 2), Cells(h1.Range("A" & Rows.Count).End(xlUp).Row, h1.Cells(1, Columns.Count).End(xlToLeft).Column)).ClearContents
For i = 2 To h1.Range("A" & Rows.Count).End(xlUp).Row
    For j = 2 To h1.Cells(1, Columns.Count).End(xlToLeft).Column
        For k = 2 To h2.Range("A" & Rows.Count).End(xlUp).Row
            If h2.Cells(k, "A") = h1.Cells(i, "A") And _
               h2.Cells(k, "B") = h1.Cells(1, j) Then
                cantidad = cantidad + h2.Cells(k, "C")
            End If
        Next
        h1.Cells(i, j) = cantidad
        cantidad = 0
    Next
Next
End Sub

Te anexo el archivo con el que realicé la macro para que hagas tus pruebas.

También en el archivo creé una tabla dinámica, para que veas que de la hoja 2, puedes pasar, casi al mismo resultado que esperas en la hoja1, creando una tabla dinámica.

https://www.dropbox.com/s/1y3v3kqg1e8klu7/comp%20val.xls

Saludos. Dam
Si es lo que necesitas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas