Bonjour le forum, ça fait zizir que même un 30 Décembre on ait plus de 300 xceliens dans le forum
Voila mon casse-tête :
J'ai 3 onglets : "Ref", "Master" et "BDD".
Je voudrai que la macro remplace le contenu de l'onglet "Master" par celui qu'elle trouvera dans "BDD" uniquement sur les refs listées dans "Ref"
Les onglets "master" et "bdd" n'ont pas le même nb de lignes expressement. "bdd" en a plus.
Il n'y a pas de message d'erreur mais la macro ne respecte pas le cahier de charges : surement parce que le code est mal fait
Pouvez-vous y jeter un coup d'oeil svp ?
Merci à vous et excellentes fêtes et sinon à l'année prochaine !
le code:
[highlight]
[/code]
Voila mon casse-tête :
J'ai 3 onglets : "Ref", "Master" et "BDD".
Je voudrai que la macro remplace le contenu de l'onglet "Master" par celui qu'elle trouvera dans "BDD" uniquement sur les refs listées dans "Ref"
Les onglets "master" et "bdd" n'ont pas le même nb de lignes expressement. "bdd" en a plus.
Il n'y a pas de message d'erreur mais la macro ne respecte pas le cahier de charges : surement parce que le code est mal fait
Pouvez-vous y jeter un coup d'oeil svp ?
Merci à vous et excellentes fêtes et sinon à l'année prochaine !
le code:
[highlight]
Code:
Sub RECH()
Application.ScreenUpdating = False
Set aw = ActiveWorkbook
Set ws = ThisWorkbook
With ActiveWorkbook.Sheets("BDD")
m = Sheets("BDD").Range("A65536").End(xlUp).Row 'On repère la dernière réf en colonne A en "BDD"
n = Sheets("Master").Range("A65536").End(xlUp).Row 'On repère la dernière réf en colonne A en "Master"
For i = 2 To m
'On recherche uniquement les réfs de l'onglet "Ref" dans l'onglet "BDD" et on met le résultat dans "c".
Set c = ws.Sheets("Ref").Columns("A").Find(Sheets("BDD").Range("A" & i), LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then 'Si la ref existe bien dans l'onglet "BDD"
For j = 2 To n
'On recherche cette ref dans l'onglet "Master" et on met le résultat dans "x".
Set x = c.Find(Sheets("Master").Range("A" & j), LookIn:=xlValues, lookat:=xlWhole)
If Not x Is Nothing Then
For p = 2 To 7 '1ere colonne à la 7eme colonne
'On remplace le contenu de l'onglet "Master" par celui de "BDD" sur les 7 colonnes de la ref trouvée
Sheets("Master").Cells(x.Row, p) = Sheets("BDD").Cells(c.Row, p)
Next p
End If
Next j
End If
Next
End With
End Sub
Pièces jointes
Dernière édition: