VBA recherche code nom = Onglet

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 !

bertrand1202

XLDnaute Occasionnel
Bonsoir à tous

J' ai entrepris une macro pour lire cellules de la colonne B du fichier A, si le nom trouvé est identique à celui figurant dans un onglet du fichier D, alors , la ligne lue dans le fichier A est recopiée dans le fichier D .
Quelqu' un connaitrait-il le code à utiliser pour faire cela .
Pas trouvé sur le forum malgré les recherches.

Merci d'avance , cela m'aidera à avancer vu que je ne suis pas génial en VBA;
Bonne soirée
Amicalement
 
Re : VBA recherche code nom = Onglet

Ta macro devrait ressembler à ça
Code:
Sub LaMacro()
Dim FL1 As Worksheet
Dim CL2 As Workbook
Dim FL2 As Worksheet
Dim NoLigne, Adres, c As Range, LaFeuille As Worksheet
    Set CL2 = Workbooks("Fichier B.xls")
    Set FL1 = Workbooks("Fichier A.xls").Worksheets("Feuil1")
    Set FL2 = CL2.Worksheets("Feuil1")
    NoLigne = 1
    For Each LaFeuille In CL2.Worksheets 'on parcourt le classeur B pour avoir leurs noms
         With FL1.Columns(1) 'On parcourt la colonne contenant des noms ds classer A
            Set c = .Find(LaFeuille.Name) 'on cherche le nom de la feuille de classeur B
            If Not c Is Nothing Then 'si on le trouve
                Do
                    Adres = c.Row ' on note le No de ligne correspondant
                    'Copie de la ligne trouée de Classeur A dans Classeur B
                    FL1.Range(c.Address).EntireRow.Copy FL2.Cells(NoLigne, 1)
                    'On incrémente ce N° de ligne afin que la copie suivante soit sur la ligne suivante
                    NoLigne = NoLigne + 1
                    Set c = .FindNext(c) 'on cherche la nouvelle occurence... si elle existe
                'on sort de la boucle s'il n'existe plus d'occurence (LaFeuille.Name)
                Loop While Not c Is Nothing And c.Row > Adres
            End If
         End With
    Next '... et on passe à la feuille suivante
    
End Sub
A adapter à tes noms de classeurs et de feuilles de calculs.
"Set CL2, FL1, FL2... = " servent à instancier classeur et feuilles de calculs afin de pouvoir utiliser les feuilles et le classeur B en tant qu'objets, et ainsi simplifier le code.
Bonne soirée

Edit
Code corrigé - J'avais commis une erreur de copie
 
Dernière édition:
Re : VBA recherche code nom = Onglet

Bonsoir

Merci à Epaf et à Skoobi , ma macro n'est pas assez avancée pour revenir vers vous.
Je m' arrache un peu les cheveux mais ça commence à venir.
Merci de votre aide et comme l'écrit skooby , il faut essayer d'aider quand on peut ( en formule c'est plus aisé) quand quelqu'un n' a pas déja donné une meilleure réponse.

Merci encore

Amicalement
 
- 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
5
Affichages
329
Réponses
3
Affichages
820
Retour