Comparer des cellules
papacricri64
-
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
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
Résumé de la discussion
Comparer des lignes entre feuille 1 et feuille 2 via les identifiants en colonne A et les dates en colonne I, en utilisant VBA, puis copier les résultats sur feuille 3, est le problème posé. Plusieurs interventions ont proposé une macro VBA qui croise les lignes selon A et compare les dates en I, puis colle le résultat sur feuille 3. Dans les exemples, la macro croise les lignes selon A et compare les dates en I, puis écrit l'écart et calcule les jours ouvrés via une fonction associée. En complément, il est conseillé de tester le code sur un fichier de test et de sécuriser les opérations d'écriture pour éviter d'écraser les données existantes.
-
Bonjour,
Où est la date dans votre feuille 1?
Où est la donnée Axx xxxx dans la feuille2?
Cordialement.-
-
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. -
-
-
-