De l'aide pour une macro boucle

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 !

titi7500

XLDnaute Junior
Bonjour j'ai un petit soucis, ne sachant pas utiliser la fonction vba d'excel, je n'arrive pas à créer une macro répondant à mon problèmes.

Je vous explique rapidement.

J'ai un fichier excel avec dedans un onglet qui me sert d'extraction et j'ai plusieurs onglet . Chaque onglet porte le code que l'on peut trouver dans la colonne B de l'onglet extraction.

Ce que je souhaite c'est que les donnés de l'extraction se copie colle de la ligne A à la ligne D dans l'onglet en fonction de la colonne B et que la macro boucle se stop quand je n'ai plus rien dans la colonne B.

Il y a une extraction mensuelle on peut atteindre facilement les 10k lignes dans l'extraction

Ci joint un extrait de mon fichier excel.

Une petite aide de votre part serait très apprécié.

Merci par avance.
 

Pièces jointes

justement je voudrais que les données de l'extraction se colle via la macro boucle dans les autres onglets mais il faut que les données de longlet B de l'extraction soit la meme que le nom de longlet qui est crée.

j'ai apporté une petite modif au fichier

Merci.
 
Re,

Ton fichier en retour.
VB:
Sub Dispatch()
Dim WS As Worksheet, i As Integer, j As Integer
For Each WS In Sheets
    For i = 2 To Range("B" & Rows.Count).End(3).Row
        If Cells(i, 2) = WS.Name Then
            WS.Range("A" & Rows.Count).End(3).Rows(2) = Cells(i, 1)
                WS.Range("B" & Rows.Count).End(3).Rows(2) = Cells(i, 3)
            WS.Range("C" & Rows.Count).End(3).Rows(2) = Cells(i, 4)
        End If
    Next i
Next
End Sub
A+
 

Pièces jointes

justement je suis en train de faire un test, comment je peux modifier si par exemple j'ai besoin de prendre de la colonne A jusqu'a la Z et comment modifier si je veux que ca colle qu'a partir de la ligne 9 dans mes onglets ? et est -il possible d'incorporer un message qui apparait qui me dit "dispatch effectué" stp
 
VB:
Sub Dispatch()
Dim WS As Worksheet, i As Integer, j As Integer
For Each WS In Sheets    Pour chaque feuille

    For i = 2 To Range("B" & Rows.Count).End(3).Row  Pour i = 2 jusqu'à la dernière ligne

        If Cells(i, 2) = WS.Name Then   Si la cellule = nom de la feuille alors

            WS.Range("A" & Rows.Count).End(3).Rows(2) = Cells(i, 1)  Colonne A et dernière ligne = cellule x

                WS.Range("B" & Rows.Count).End(3).Rows(2) = Cells(i, 3)  etc
            WS.Range("C" & Rows.Count).End(3).Rows(2) = Cells(i, 4)  etc
        End If
    Next i   et on recommence pour la ligne suivante.
Next
End Sub

Donc pour la ligne 9 : For i = 9
Et range("Z") pour les colonnes.
 
y'a des messages qui s'entre croise.

- je ne vois pas de difference entre ton code d'avant et celui que tu viens de poster.
- voici les modifs que j'aimerais en plus :
Faire apparaitre le code lors du copier coller afin de verifier que sur 30k il y aura pas de soucis
Comment puis-je modifier la macro si par exemple je décider de faire le copier coller dans les onglets qu'a partir de la ligne 9
Comment puis-je modifier la macro si par exemple je décider de vouloir copier coller de la ligne A à la Z ?

Merci
 
Range("A") correspond à la colonne A.
Donc si tu veux copier les données de la colonne Z, il faut mettre Range("Z"), ou Range ("O") pour la colonne O et ainsi de suite.

Ça donnerait donc WS.Range("Z" & Rows.Count).End(3).Rows(2) = Cells(i, 4)
 
- 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
8
Affichages
469
  • Question Question
Microsoft 365 Macro VBA - Excel
Réponses
12
Affichages
624
Retour