RechercheV VBA Boucle et Conditions

legenie

XLDnaute Nouveau
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":rolleyes: :)

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
[/code]
 

Pièces jointes

  • Recherchev_Spe.zip
    13.5 KB · Affichages: 73
Dernière édition:

Discussions similaires

Réponses
2
Affichages
172
Réponses
4
Affichages
231

Statistiques des forums

Discussions
312 413
Messages
2 088 201
Membres
103 763
dernier inscrit
p.michaux