Une question rapide

Bonjour à tous,

J'ai préparé une macro qui me permet de copier une ligne d'un fichier à un autre avec la condition suivante:

Si le numéro du client existe déjà dans le fichier récepteur => remplacer la ligne

Si le numéro du client n'existe pas => copier la ligne dans la dernière ligne vide.

j'utilise la formule suivante pour la condition:

For i = 3 To dlmv1

Set rrm = wsrm.Range("B3:B" & dlrm).Find(wsmv1.Cells(i, 2))

If rrm Is Nothing Then

dlrm = dlrm + 1

wsmv1.Rows(i).Copy wsrm.Range("A" & dlrm)

Else

wsmv1.Rows(i).Copy wsrm.Range("A" & rrm.Row)

End If

Next i

Le problème: le numéro du client contient 5 chiffres, donc :en recherchant du numéro 00012 , cela va remplacer une ligne dont le numéro de série est 01215

Comment puis-je éviter cette anomalie ??

Merci beaucoup d'avance!

Cordialement

Bonsoir,

essaie en ajoutant le paramètre lookat:=xlwhole dans ton instruction find

For i = 3 To dlmv1
Set rrm = wsrm.Range("B3:B" & dlrm).Find(wsmv1.Cells(i, 2),lookat:=xlwhole)
If rrm Is Nothing Then
 dlrm = dlrm + 1
 wsmv1.Rows(i).Copy wsrm.Range("A" & dlrm)
Else
 wsmv1.Rows(i).Copy wsrm.Range("A" & rrm.Row)
End If
Next i

Bonsoir H2so4,

Merci beaucoup pour tes lumières.

cordialement

Rechercher des sujets similaires à "question rapide"