Comparer des cellules

papacricri64 -  
 papacricri64 -
Bonjour,
je suis novice en vba et je souhaiterai comparer deux cellules dans des colonnes.
Je m'explique:
J'ai des données dans les colonnes de A à I dans la feuille 1
Dans la colonne A j'ai une cellule de type Axx xxxx et colonne I une date.Chaque mois j'effectue une extraction pour voir l'état d'avancement qui se trouve en feuille 2 avec toujours le même principe,même nombre de colonne et même données.
Mon but est de comparer la date de la colonne I (feuille 2) par rapport à Axx xxxx avec la feuille 1 et mesurer l'écart entre les deux dates par rapport à Axx xxxx et copier toutes les données sur la feuille 3.

Merci d'avance à la personne qui souhaite m'aider.

Christophe


1 réponse

Kuartz Messages postés 852 Date d'inscription   Statut Membre Dernière intervention   61
 
Bonjour,

Où est la date dans votre feuille 1?

Où est la donnée Axx xxxx dans la feuille2?

Cordialement.
0
papacricri64
 
Bonjour ,
la date est en colonne I et la donnée Axxx xxxx est dans la colonne A idem sur feuille 1 et 2

ex:
Feuille 1:
colonne A:Axxx xxxx ,de B à H j'ai d'autres données, et en I, la date.

Feuille 2 idem feuille 1.

En espérant que je me suis bien fait comprendre.

Merci encore!!

Christophe.
0
Kuartz Messages postés 852 Date d'inscription   Statut Membre Dernière intervention   61
 
Bonjour,

Je vous propose un code :

Sub COMPARATIF()

Dim DLig As Long, DLig2 As Long

DLig = Sheets(1).Range("A2").End(xlDown).Row 'Si les données à comparer commencent en A2 de la feuille 1

DLig2 = Sheets(2).Range("A2").End(xlDown).Row 'Si les données à comparer commencent en A2 de la feuille 2

' boucle sur lignes en Feuil 1 et sur lignes en feuil2
For n = 2 To DLig 'si les données à comparer commencent en ligne 2 feuille 1
For t = 2 To DLig2 'si les données à comparer commencent en ligne 2 feuille 2

If CStr(Sheets(1).Range("A" & n).Value) = CStr(Sheets(2).Range("A" & t).Value) Then

    If CDate(Sheets(1).Range("I" & n)) <>  If CDate(Sheets(1).Range("I" & t))
         x = x + 1
        For k = 1 To 9
        Sheets(3).Cells(x, k) = Sheets(1).Cells(t, k)
        Next
        Sheets(3).Range("J" & x) = "Ecart de date"
        Sheets(3).Range("K" & x) = CDate(Sheets(1).Range("I" & n)) - CDate(Sheets(2).Range("I" & t))
    End If
End If

Next t
Next n
End Sub


Ce code récapitule en feuille 3 les lignes dont les dates ne sont pas les mêmes et fait la différence. Je sais pas si c'est ce que vous vouliez.

Cordialement.
0
papacricri64 > Kuartz Messages postés 852 Date d'inscription   Statut Membre Dernière intervention  
 
oui c'est tout à fait ça,je vais tester au retour de mon repas.

merci encore pour votre aide
0
papacricri64 > Kuartz Messages postés 852 Date d'inscription   Statut Membre Dernière intervention  
 
ça ne fonctionne pas il faut dire que j'ai fait une adaptation entre votre code et mon extraction.
Ci-après le problème!!
If CDate(bdd_xls.Range("I" & n)) <> If CDate(Bilan.Range("I" & t))
0
Kuartz Messages postés 852 Date d'inscription   Statut Membre Dernière intervention   61
 
Et bdd_xls et Bilan sont des feuilles ou des fichier excel séparés ou bien?
0