PROBLEME Macro Comparaison et recopie

Voila j' ai créé une macro qui es censée comparer deux colonnes sur deux feuilles différentes j'ai donc sur une première feuille une colonne nom, une colonne prénom et une colonne identifiant qui sont toutes renseigné et dans une autre feuille les trois même colonne mais seul le nom et le prénom sont renseigné je voudrait donc grâce a une macro pouvoir comparé les nom et prénom des deux première colonne et si il est identique inscrire en face l'identifiant

voici donc le code de la macro que j'ai réaliser qui ne fonctionne pas:

Sub Macro1()
    Dim I As Integer
    Dim N As Integer
    N = 1
    I = 3
    While I < 2200
        N = 1
        Worksheets(9).Activate
        Sheets(9).Cells(I, 1).Select
        Selection.Copy
        While N < 2200

        If UCase(Sheets(2).Cells(I, 15).Value) = UCase(Sheets(9).Cells(N, 2).Value) Then
            If UCase(Sheets(2).Cells(I, 16).Value) = UCase(Sheets(9).Cells(N, 3).Value) Then
                Sheets(2).Cells(N, 18).Value = Selection.Value

            End If
            End If
            N = N + 1
            Wend
        I = I + 1
    Wend

Merci d'avance pour vos suggestion !

PS: C'est mon premier poste je connait pas encore toutes les règles.

Bonjour Damien, bonjour le forum,

Peut-être comme ça :

Public Sub Macro2()
Dim OS As Worksheet 'déclare la variable OS (Onglet Source)
Dim OD As Worksheet 'déclare la variable OD (Onglet Destination)
Dim TS As Variant 'déclare la variable TS (Tableau Source)
Dim TD As Variant 'déclare la variable TD (Tableau Destination)

Set OS = Sheets(9) 'définit l'onglet OS
Set OD = Sheets(2) 'définit l'onglet OD
TS = OS.Range("A1").CurrentRegion 'définit le tableau source TS
TD = OD.Range("A1").CurrentRegion 'définit le tableau destination TD
For I = 3 To UBound(TS, 1) 'boucle 1 : sur toutes les lignes I du tableau source (en partant de la troicième)
    For J = 1 To UBound(TD, 1) 'boucle 2 : sur toutes les lignes J du tableau destination
        'si la donnée ligne I colonne 2 de TS est égale à la donnée ligne J colonne 15 de TD et
        'si la donnée ligne I colonne 3 de TS et égale à la donnée ligne J colonne 16 de TD, alors
        'renvoie la valeur de la donnée ligne I, colonne 1 de TS dans le cellule ligne J colonne 18 de l'onglet OD
        If UCase(TS(I, 2)) = UCase(TD(J, 15)) And UCase(TS(I, 3)) = UCase(TD(J, 16)) Then _
           OD.Cells(J, 18).Value = TS(I, 1)
    Next J 'prochaine ligne de la boucle 2
Next I 'prochaine ligne de la boucle 1
End Sub

Bonjour à tous,

tu peux le faire sans macro... sauf si tu as bcp de lignes bien sur

P.

J'ai effectuer 2 changement pour une meilleur compréhension de mon fichier

sur les deux nom des feuilles.

Ton programmes semble correct pourtant il affiche quelque erreur es ce a cause du changement que j'ai effectuer sur le nom des feuille

    Public Sub Macro2()
    Dim OS As Worksheet 'déclare la variable OS (Onglet Source)
    Dim OD As Worksheet 'déclare la variable OD (Onglet Destination)
    Dim TS As Variant 'déclare la variable TS (Tableau Source)
    Dim TD As Variant 'déclare la variable TD (Tableau Destination)

    Set OS = Sheets("Recensement TAV-TSA-TGS") 'définit l'onglet OS
    Set OD = Sheets("locaux U RdC") 'définit l'onglet OD
    TS = OS.Range("A1").CurrentRegion 'définit le tableau source TS
    TD = OD.Range("A1").CurrentRegion 'définit le tableau destination TD
    For I = 3 To UBound(TS, 1) 'boucle 1 : sur toutes les lignes I du tableau source (en partant de la troicième)
       For J = 1 To UBound(TD, 1) 'boucle 2 : sur toutes les lignes J du tableau destination
           'si la donnée ligne I colonne 2 de TS est égale à la donnée ligne J colonne 15 de TD et
           'si la donnée ligne I colonne 3 de TS et égale à la donnée ligne J colonne 16 de TD, alors
           'renvoie la valeur de la donnée ligne I, colonne 1 de TS dans le cellule ligne J colonne 18 de l'onglet OD
           If UCase(TS(I, 2)) = UCase(TD(J, 15)) And UCase(TS(I, 3)) = UCase(TD(J, 16)) Then _
               OD.Cells(J, 18).Value = TS(I, 1)
        Next J 'prochaine ligne de la boucle 2
    Next I 'prochaine ligne de la boucle 1
    End Sub

L'erreur que j'ai rencontrée est en pièce joint

Merci d'avance pour le réponse

capture

re,

tu ne dis pas sur quelle ligne surlignée en jaune il bloque

P.

oui désolé voila:

capture

Bonjour le fil, bonjour le forum,

Il faut adapter le code. Où commence le tableau dans l'onglet source ?

Bonjour

Quelqu'un peut t il m'aider a faire ceci : https://forum.excel-pratique.com/post549904.html#p549904

merci

Rechercher des sujets similaires à "probleme macro comparaison recopie"