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 !

chilo27

XLDnaute Occasionnel
Bonjour LE FORUM

Je viens vers vous pour simplefier ce que je souhaite si possible obtenir

Mon soucis est de regrouper les dernières lignes de chaque feuille du classeur dans une feuille appelée regroupement en vba
En créent une macro je parviens mais c'est long
Serait il donc possible de simplifier la macro
pour prendre en compte quelque soit le nombre de feuilles dans le classeur
et éventuellement sans tenir des noms des feuilles
Pour que se soit opérationnelle sur n'importe quel classeur
Par avance de vous remercie
 

Pièces jointes

Bonjour
VB:
Sub Regroupement2()
    For Each sh In Worksheets
        ligne = Application.Max(Sheets("REGROUPEMENT").Cells(Rows.Count, 1).End(xlUp).Offset(1).Row, 6)
        If sh.Name <> "REGROUPEMENT" Then
            sh.Cells(sh.Rows.Count, 1).End(xlUp).Resize(, 10).Copy Sheets("REGROUPEMENT").Cells(ligne, 1)
        End If
    Next
End Sub
 
Rebonjour

Merci patricktoulon pour la réponse
Cela fonctionne à merveille, toutefois, je me suis aperçu que toutes les feuilles du classeur sont pris en compte
Dans ce classeur j'ai une feuille nommée Bd et Archive que je ne souhaite pas traité
 
Sub Regroupement2()
VB:
For Each sh In Worksheets
ligne = Application.Max(Sheets("REGROUPEMENT").Cells(Rows.Count, 1).End(xlUp).Offset(1).Row, 6)
If instr(1; " REGROUPEMENT  toto titi "," "& sh.name &" ")=0 Then
sh.Cells(sh.Rows.Count, 1).End(xlUp).Resize(, 10).Copy Sheets("REGROUPEMENT").Cells(ligne, 1)
End If
Next
End Sub

entre les parenthèses tu met tout les noms que tu ne veux pas séparés par un espace
espace nom1 espace nom2 espace
et terminé c'est réglé 😉
 
re
erreur loufoque et incompréhensible
ma conclusion première :
tu a certainement une librairie manquante qui te provoque des erreurs insensées

outils/référence/décocher les référence manquantes

après peut être qu'un fichier exemple anonymisé serait de mise afin que l'on puisse voir ce qui ne vas pas
chez moi j'ai testé le fichier du post #1 et ça fonctionne
 
autant pour moi
c'est pas ";" mais "," après le "1"

VB:
Sub REGROUPEMENT2()
    For Each sh In Worksheets
        ligne = Application.Max(Sheets("REGROUPEMENT").Cells(Rows.Count, 1).End(xlUp).Offset(1).Row, 6)
        If InStr(1, " REGROUPEMENT  toto titi ", " " & sh.Name & " ") = 0 Then
            sh.Cells(sh.Rows.Count, 1).End(xlUp).Resize(, 10).Copy Sheets("REGROUPEMENT").Cells(ligne, 1)
        End If
    Next
End Sub
 
For Each sh In Worksheets
ligne = Application.Max(Sheets("REGROUPEMENT").Cells(Rows.Count, 1).End(xlUp).Offset(1).Row, 6)
If InStr(1, " REGROUPEMENT BD ARCHIVE", " " & sh.Name & " ") = 0 Then
sh.Cells(sh.Rows.Count, 1).End(xlUp).Resize(, 10).Copy Sheets("REGROUPEMENT").Cells(ligne, 1)
End If

cela ne fonctionne pas
 
je n'en vois pas la raison
testons voir avec le fichier que tu a donné en exemple en y ajoutant cette feuille et avec un msgbox témoins
demo.gif
 
- 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
20
Affichages
890
T
  • Résolu(e)
Microsoft 365 pb effacement macro
Réponses
8
Affichages
587
Themax
T
Réponses
5
Affichages
294
Réponses
9
Affichages
652
Retour