Comparer des cellules dans une colonne

Résolu
papacricri64 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -  
Kuartz Messages postés 852 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,

je suis débutant en vba et je souhaiterai comparer des cellules dans des colonnes.Je m'explique pour votre compréhension.

Dans la colonne A de la feuille 1 j'ai un identifiant de type Axxx xxxx avec une date en colonne B ensuite dans la colonne A de la feuille 2 j'ai un identifiant de type Axxx xxxx et une date dans la colonne B.
Je souhaiterai chercher l'identifiant de la feuille 1 avec celui de la feuille 2 et recopier en feuille 3 l'identifiant de la feuille 2 avec la nouvelle date de la feuille 2.

J'espère avoir été très explicite.

Merci d'avance pour votre retour.
A voir également:

2 réponses

michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Bonjour

Les propositions peuvent être très différentes suivant le nombre de lignes

comme on a pas envie de passer du temps à refaire un classeur qui ne conviendrait certainement pas...

Mettre le classeur sans données confidentielles en pièce jointe sur https://www.cjoint.com/
et coller le raccourci proposé (clic droit) dans le message de réponse
Dans l'attente

0
papacricri64
 
Bonjour michel_m,

merci beaucoup pour vos conseils Mr Kuard a répondu à ma demande,merci à vous pour votre aide et conseils.

Je vous souhaite une bonne continuation.

Cordialement,

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

Ce genre de code devrait convenir :

Sub COMPARATIF()
Dim DLig As Long
Dim DLig2 As Long
DLig = Sheets(1).Range("A2").End(xlDown).Row
DLig2 = Sheets(2).Range("A2").End(xlDown).Row
x = 3
'boucle sur les lignes de Feuil2
For t = 4 To DLig2
' si identifiant existe en feuil 1 on recopie les colonnes en feuil3
If Application.WorksheetFunction.CountIf(Sheets(1).Range("A:A"), Sheets(2).Range("A" & t)) > 0 Then
    x = x + 1
        For k = 1 To 2
        Sheets(3).Cells(x, k) = Sheets(2).Cells(t, k)
        Next
    End If
Next t
'boucle sur les lignes de Feuil1
For t = 2 To DLig
' si identifiant existe en feuil 2  on recopie les colonnes en feuil3
If Application.WorksheetFunction.CountIf(Sheets(2).Range("A:A"), Sheets(1).Range("A" & t)) > 0 Then
    x = x + 1
 For k = 1 To 2
        Sheets(3).Cells(x, k) = Sheets(2).Cells(t, k)
        Next
    End If
Next t

End Sub
0
Kuartz Messages postés 852 Date d'inscription   Statut Membre Dernière intervention   61
 
Je rejoins michel_m, j'ai pris des cellules au hasard pour le début du tableau etc.
0
papacricri64
 
Merci beaucoup Kuartz tout fonctionne à merveille malgrés quelques modifications mais qui étaient à ma portées,effectivement je possède un fichier avec beaucoup de données et biensur très confidentiel .
Merci encore pour m'avoir aidé et je vous souhaite une bonne continuation.

Cordialement,

Christophe.
0
Kuartz Messages postés 852 Date d'inscription   Statut Membre Dernière intervention   61
 
Parfait. Merci de mettre le sujet en résolu.

Cordialement.
0