comparaison/évolution de données entre 2 jours

Niquido

XLDnaute Junior
Bonjour à tous,

J'ai un petit soucis je doit mettre à jour un fichier en comparant les données de la veille et voir si il y a des changements, si il y en ail faut que je les rajoute à notre suivi.

Plus d'explications avec le fichiers joint :

Dans mon tableau 1 de la fiche suivis il y a les références que l'on sui car il doit y avoir des modifications à aporter.
Le tableau jour J est actualiser tout les matin pour renvoyer plusieur informations dans le tableau suivi.

Mais avant de le mettre à jours il faudrait que je rajoute une macro qui passe le tableau jours J à J-1, le soucis n'est pas la.

Et il faut surtout que lorsque j'ai mes 2 tableau jour J et J-1 je balaye toutes les références pour voir si leur issues est différente d'un jour à l'autre ==> puis si elle est différente il faut que je recherche si cette référence est dans mon tableau de suivis ==> si cette dernière est abscente il faut que je la rajoute à ce dernier, sinon je passe à la référence suivante.

Pour info mon tableau de base fait 40000 ligne et si on peut optimiser la rapidité d'execution cela me serai bien utile.

Par avance Merci
 

Pièces jointes

  • test.xlsx
    13.3 KB · Affichages: 47
  • test.xlsx
    13.3 KB · Affichages: 52
  • test.xlsx
    13.3 KB · Affichages: 50

Jack2

XLDnaute Occasionnel
Re : comparaison/évolution de données entre 2 jours

Bonjour Niquido,

Un début de solution :
Code:
Sub Modif()
Dim Lig As Long, i As Long
Dim Der, DerT1 As Variant

Application.ScreenUpdating = False
Application.Calculation = xlmanual
Worksheets("données jours J").Activate

Der = Range("Tableau2")
Columns("B:B").Insert Shift:=xlToRight
Range("B2").FormulaR1C1 = "=Tableau3[[#This Row],[issue]]"
Range("D2").FormulaR1C1 = "=IF(Tableau2[[#This Row],[issue]]<>Tableau2[[#This Row],[Colonne1]],1,"""")"

For i = 2 To UBound(Der) + 1
    If Cells(i, 4) = 1 Then
       With Sheets("suivi")
        DerT1 = .Range("Tableau1")
        Lig = UBound(DerT1) + 1
        .Rows(Lig & ":" & Lig).Insert Shift:=xlDown
        .Cells(Lig, 1) = Cells(i, 1)
        .Cells(Lig, 2) = Cells(i, 2)
        .Cells(Lig, 3) = Cells(i, 3)
       End With
    End If
Next i
Columns("D:D").Delete Shift:=xlToLeft
Columns("B:B").Delete Shift:=xlToLeft
Application.Calculation xlautomatic
Application.ScreenUpdating = True
End Sub
Par contre, dans le tableau de suivi après macro, il faut chercher si la colonne B n'est pas vide (issue précédente différente de actuelle) ? Puis, dans ton exemple, vérifier que A5 + B5 existe ou n'existe pas avant de remplir la colonne B.
Ou vérifier uniquement s'il existe déjà la même référence dans la colonne A pour remplir la colonne B.

A+ Jack2
 
Dernière édition:

Discussions similaires

Réponses
9
Affichages
549
Réponses
14
Affichages
733

Statistiques des forums

Discussions
312 214
Messages
2 086 311
Membres
103 175
dernier inscrit
abcc