Remplacer valeur cellule par rapport à une liste

Bonjour,

Voici mon problème, j'ai une liste de noms en colonne O que je viens extraire sans doublons en colonne DD. Jusque là pas de problème.

Ensuite je viens rajouter en colonne O noms et prénoms depuis un autre fichier excel.

J'ai créé un code pour comparer les noms présents en colonne O et en colonne DD. Si les noms rajoutés ressemblent aux noms présents dans la liste alors on remplace les remplacent par ceux de la colonne DD.

Voici mon code en question :

Dim O As Range 
Dim DD As Range
Dim Trouve As Boolean
Dim ODerlig As Double
Dim DDDerlig As Double

ODerlig = Worksheets("STL").Range("O" & Rows.Count).End(xlUp).Row
DDDerlig = Worksheets("STL").Range("DD" & Rows.Count).End(xlUp).Row

Set O = Range("O3:O" & ODerlig)
Set DD = Range("DD1:DD" & DDDerlig)

For Each C in O
     Trouve = False
          For Each D in DD
               If C.Value = D.Value Then
                    Trouve = True
                    Goto suite
               End If
          Next D

          If (Not Trouve) Then
               If C.Value & "*" Like D.Value Then
                    C = D.Value
               End if
          End if

suite:
     Next C

Mon code bloque quand je fais la ressemblance entre C.Value & "*" Like D.Value

Avez des idées pourquoi mon code bloque ici ou une autre solution pour contourner le problème ?

Merci d'avance

GuiGui8731

Bonjour, Manque la déclaration de C en début

Dim C as range

Et personnellement j'écrirai la condition dans l'autre sens :

If D.Value Like C.Value & "*" Then

Bonjour Xmenpl,

J'ai bien rajouté la déclaration de variable et écrit la condition comme tu l'as dit.

Mais en lançant la macro j'ai un bug sur la condition. J'ai donc rajouté la déclaration : Dim D As Range, mais j'ai toujours une erreur : Variable objet ou variable de bloc with non définie.

En passant le curseur de la souris sur la condition D.Value j'ai le même message que le rapport d'erreur VBA.

Saurais tu d'où viens l'erreur ?

GuiGui8731

Bonjour,

Je joins un fichier pour expliquer mon problème.

Dans la colonne A j'ai plusieurs noms en doublons. Dans la colonne D je réalise à l'aide d'une autre macro une liste sans doublons des noms.

Une autre macro vient rajouter à partir d'un autre fichier des Noms avec des prénoms.

Ma macro doit analyser les noms présents en A avec ceux en D. Si les noms rajoutés ressemblent à ceux présents dans la liste D alors on prend le nom de la colonne D et on remplace celui de la colonne A.

Ma macro bloque sur le remplacement sur la fin avec un message d'erreur.

GuiGui8731

5test.xlsm (15.11 Ko)
Rechercher des sujets similaires à "remplacer valeur rapport liste"