Macro : comparer 2 tableau sur 2 feilles et MAJ conditionnel

Bonjour,

je suis un utilisateur de niveau moyen d'excel, et je cherche à réaliser un tableau dont la mise à jour serait automatique (via macro) partir d'un autre fichier et qui me permettrait de faire des statistiques. j'arrive à ouvrir le 2nd fichier, importer les données, réaliser les statistiques automatiquement, mais je bloque sur la mise à jour du tableau.

j'ai donc créé le fichier joint (exemple.xls) pour que vous puissiez m'aider :

j'aimerais une macro qui complète le tableau de la feuille "feuille à compléter" à partir du tableau "feuille référente". Seules les lignes contenant "OK" en colonne D doivent être copiées (soit les rang 77,78,80,81,82).

Pour les lignes présente sur la feuille "feuille à compléter", il faudrait mettre à jour les dates (colonnes C et E) lorsqu'elles sont vides selon la "feuille référente" (dans l'exemple, les dates des rang 23 à 26 et 48 à 50) si celles-ci ne sont pas vides.

Enfin, il faudrait remplir d'une couleur les cases qui ont été mises à jour afin que je puisse rapidement les repérer.

(bien sûr, je n'ai créé le fichier joint que pour le post, mais le fichier initial contient des milliers de lignes, et la MAJ manuelle serait fastidieuse....)

Merci d'avance à tous ceux qui pourront m'aider

81exemple.zip (6.77 Ko)

Bonsoir

A vérifier

Bonsoir

Autre code

Sub MAJ_Tableau_A_COMPLETER()
Application.ScreenUpdating = False
 Dim Lig As Long, NbrLig As Long, NumLig As Long, i As Integer

With Sheets(1)
    NumLig = 1
    NbrLig = .Cells(65536, 2).End(xlUp).Row

    For Lig = 2 To NbrLig
        If .Cells(Lig, 4).Value = "OK" Then
        .Range("A" & Lig & ":E" & Lig).Copy Sheets(2).Cells(Rows.Count, "A").End(xlUp)(2)
        NumLig = NumLig + 1
        End If
    Next
End With

With Sheets(2)
    .Activate
    .Range("A2:E" & .UsedRange.Rows.Count).Interior.Color = xlNone
    .UsedRange.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess

    For i = .Range("A65536").End(xlUp).Row + 1 To 2 Step -1

        If .Range("A" & i) = .Range("A" & i + 1) Then
            If .Range("C" & i) <> .Range("C" & i + 1) Then
            Range("C" & i) = Range("C" & i + 1)
            Range("C" & i).Interior.ColorIndex = 3
            End If
            If .Range("E" & i) <> .Range("E" & i + 1) Then
            Range("E" & i).Interior.ColorIndex = 3
            Range("E" & i) = Range("E" & i + 1)
            End If
           .Range("A" & i + 1).EntireRow.Delete
           End If
    Next

End With
End Sub

Amicalement

Nad

Parfait, merci à vous, les 2 possibilités fonctionnent!!

Je retiens le code de Banzaï64 qui colorie bien toutes les lignes mises à jour, alors que dans le code de Nad, les nouvelles lignes ne l'étaient pas (je pense que ce n'était pas trop difficile à modifier si j'avais dû le faire).

Encore merci à vous 2 car je n'était encore arrivé à rien de concluant de mon coté avec un code beaucoup plus long.

Bonne journée

Rechercher des sujets similaires à "macro comparer tableau feilles maj conditionnel"