RechercheV VBA Boucle et Conditions

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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"🙄 🙂

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

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
153
Réponses
4
Affichages
461
Retour