Autres Regroupement de feuilles

  • Initiateur de la discussion Initiateur de la discussion chilo27
  • Date de début Date de début

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 souhaite regrouper les feuilles 135 136 137 etc dans une autre feuille
appelée regroupement

Sans la prise en compte des autres feuilles
Je précise que j'ai effectué des recherches, on en trouve mais malheureusement pas on le souhaite

En Vba si possible

En vous remerciant par avance
 

Pièces jointes

un premier jet copie des valeurs, sans écrasement des données et en partant du principe que la dernière ligne d'une feuille a toujours une valeur en colonne A !
VB:
Sub Regroupement_Données()
    Dim Address_Feuilles As String
    If Sheets("REGROUPEMENT").Range("A6").Value = "" Then
        With Sheets("135")
            If Not .Range("A2").Value = "" Then
                Address_Feuilles = .Range("A2:J" & .Range("A65536").End(xlUp).Row).Address
                Sheets("REGROUPEMENT").Range("A5").Range(Address_Feuilles).Value = .Range("A2:J" & .Range("A65536").End(xlUp).Row).Value
            End If
        End With
    Else
        With Sheets("135")
            If Not .Range("A2").Value = "" Then
                Address_Feuilles = .Range("A2:J" & .Range("A65536").End(xlUp).Row).Address
                Sheets("REGROUPEMENT").Range("A65536").End(xlUp).Range(Address_Feuilles).Value = .Range("A2:J" & .Range("A65536").End(xlUp).Row).Value
            End If
        End With
    End If
    If Sheets("REGROUPEMENT").Range("A6").Value = "" Then
        With Sheets("136")
            If Not .Range("A2").Value = "" Then
                Address_Feuilles = .Range("A2:J" & .Range("A65536").End(xlUp).Row).Address
                Sheets("REGROUPEMENT").Range("A5").Range(Address_Feuilles).Value = .Range("A2:J" & .Range("A65536").End(xlUp).Row).Value
            End If
        End With
    Else
        With Sheets("136")
            If Not .Range("A2").Value = "" Then
                Address_Feuilles = .Range("A2:J" & .Range("A65536").End(xlUp).Row).Address
                Sheets("REGROUPEMENT").Range("A65536").End(xlUp).Range(Address_Feuilles).Value = .Range("A2:J" & .Range("A65536").End(xlUp).Row).Value
            End If
        End With
    End If
    If Sheets("REGROUPEMENT").Range("A6").Value = "" Then
        With Sheets("137")
            If Not .Range("A2").Value = "" Then
                Address_Feuilles = .Range("A2:J" & .Range("A65536").End(xlUp).Row).Address
                Sheets("REGROUPEMENT").Range("A5").Range(Address_Feuilles).Value = .Range("A2:J" & .Range("A65536").End(xlUp).Row).Value
            End If
        End With
    Else
        With Sheets("137")
            If Not .Range("A2").Value = "" Then
                Address_Feuilles = .Range("A2:J" & .Range("A65536").End(xlUp).Row).Address
                Sheets("REGROUPEMENT").Range("A65536").End(xlUp).Range(Address_Feuilles).Value = .Range("A2:J" & .Range("A65536").End(xlUp).Row).Value
            End If
        End With
    End If
    
End Sub
 

Pièces jointes

Dernière édition:
Rebonjour le Forum, Yeahou

Cela Fonctionne après une personnalisation
Cela Comme j'aurai plusieurs de l'ordre d'une trentaine de feuilles
n'est il pas possible de regrouper les feuilles sans avoir à les énumérer et à condition qu'elles soient différentes, de création, information résumé se sont là des feuilles qui ne vont pas bouger
 
voili !
VB:
Sub Regroupement_Données()
    Dim Address_Feuilles As String, Compteur As Integer
    For Compteur = 135 To 137
        With Sheets(CStr(Compteur))
            If Sheets("REGROUPEMENT").Range("A6").Value = "" Then
                If Not .Range("A2").Value = "" Then
                    Address_Feuilles = .Range("A2:J" & .Range("A65536").End(xlUp).Row).Address
                    Sheets("REGROUPEMENT").Range("A5").Range(Address_Feuilles).Value = .Range("A2:J" & .Range("A65536").End(xlUp).Row).Value
                End If
            Else
                If Not .Range("A2").Value = "" Then
                    Address_Feuilles = .Range("A2:J" & .Range("A65536").End(xlUp).Row).Address
                    Sheets("REGROUPEMENT").Range("A65536").End(xlUp).Range(Address_Feuilles).Value = .Range("A2:J" & .Range("A65536").End(xlUp).Row).Value
                End If
            End If
        End With
    Next Compteur
End Sub
 
si tes noms de feuille sont formatés sur un nombre de caractères type 001
remplaces le code:
VB:
With Sheets(Right("00" & Compteur, 3))
et si tu identifies avec une chaine texte du type "Données001"
Code:
With Sheets("Données" & Right("00" & Compteur, 3))
 
ME voila de retour


Sub Regroupement_Données01()

Dim Address_Feuilles As String, Compteur As Long
For Compteur = 135 To 141 ---- j'ai ajouté des feuilles qui ne sont pas prises en compte


With Sheets(CStr(Compteur))-------------J'Obtiens le message n'appartient à la sélection
If Sheets("REGROUPEMENT").Range("A6").Value = "" Then
If Not .Range("A2").Value = "" Then
Address_Feuilles = .Range("A2:J" & .Range("A65536").End(xlUp).Row).Address
Sheets("REGROUPEMENT").Range("A5").Range(Address_Feuilles).Value = .Range("A2:J" & .Range("A65536").End(xlUp).Row).Value
End If
Else
If Not .Range("A2").Value = "" Then
Address_Feuilles = .Range("A2:J" & .Range("A65536").End(xlUp).Row).Address
Sheets("REGROUPEMENT").Range("A65536").End(xlUp).Range(Address_Feuilles).Value = .Range("A2:J" & .Range("A65536").End(xlUp).Row).Value
End If
End If
End With
Next Compteur
End Sub

autrement cela fonctionne avec les feuilles 135 à 137

Merci pour l'aide
 
ME voila de retour


Sub Regroupement_Données01()

Dim Address_Feuilles As String, Compteur As Long
For Compteur = 135 To 141 ---- j'ai ajouté des feuilles qui ne sont pas prises en compte


With Sheets(CStr(Compteur))-------------J'Obtiens le message n'appartient à la sélection
If Sheets("REGROUPEMENT").Range("A6").Value = "" Then
If Not .Range("A2").Value = "" Then
Address_Feuilles = .Range("A2:J" & .Range("A65536").End(xlUp).Row).Address
Sheets("REGROUPEMENT").Range("A5").Range(Address_Feuilles).Value = .Range("A2:J" & .Range("A65536").End(xlUp).Row).Value
End If
Else
If Not .Range("A2").Value = "" Then
Address_Feuilles = .Range("A2:J" & .Range("A65536").End(xlUp).Row).Address
Sheets("REGROUPEMENT").Range("A65536").End(xlUp).Range(Address_Feuilles).Value = .Range("A2:J" & .Range("A65536").End(xlUp).Row).Value
End If
End If
End With
Next Compteur
End Sub

autrement cela fonctionne avec les feuilles 135 à 137

Merci pour l'aide
cela veut dire que tes noms de feuilles ajoutées ne correspondent pas à 138, 139, 140, 141, que tu as laissé un espace dans le nom ou qu'il en manque 1
 
- 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
14
Affichages
471
Réponses
17
Affichages
592
Retour