IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Grouper certaines feuilles d'un classeur sur une seule [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Chimiste
    Inscrit en
    Décembre 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Chimiste

    Informations forums :
    Inscription : Décembre 2014
    Messages : 13
    Par défaut Grouper certaines feuilles d'un classeur sur une seule
    Bonjour,

    J'ai un fichier excel contenant plusieurs feuilles différentes, avec des noms différents contenant du texte et des tableaux de données.
    J'ai trouvé une macro, comme suit, qui fonctionne bien pour regroupé toutes les feuilles d'un classeur sur une nouvelle feuille dans le même classeur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Option Explicit
    Sub test2()
    Dim ws As Worksheet
    For Each ws In Worksheets
    If ws.Name <> "recap" Then
    Application.ScreenUpdating = False
    ws.Activate
    Range("A1:" & [a1].SpecialCells(xlCellTypeLastCell).Address).Copy
    Sheets("Rapport_final").Activate
    Range("A65536").End(xlUp).Offset(1, 0).Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    End If
    Next ws
    End Sub
    Ce que j'aimerai, c'est la même chose MAIS avoir le choix dans les feuilles que je souhaite "fusionner".
    Savez vous si cela est envisageable?
    Merci d'avance pour votre aide.
    Cordialement

    NB : Je précise que mes notions en macro sont proche du néant

  2. #2
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, la réponse est oui. De façon triviale, il y a sans doute d'autres façons de procéder, par exemple en créant sur une feuille "Param" autant de checkboxes avec le nom des feuilles auxquelles elles se référent puis via une macro passer en revue l'état de ces checkboxes ?

  3. #3
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 169
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Si tes listes de données se trouvant sur plusieurs feuilles ont le même nombre de colonnes et les étiquettes de colonnes de même orthographe, une solution dans cette contribution Regrouper plusieurs feuilles sur une autre. (2003-2010)
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  4. #4
    Membre habitué
    Homme Profil pro
    Chimiste
    Inscrit en
    Décembre 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Chimiste

    Informations forums :
    Inscription : Décembre 2014
    Messages : 13
    Par défaut
    Merci pour vos réponses rapide

    @Philippe : Merci, j'avais vu le sujet. J'ai jeté un coup d'oeil au fichier démo, c'est vraiment super. Malheureusement, mon fichier n'est pas un tableau unique. Il faudrait que ca fasse la même chose pour la selection de feuille, mais qu'il fasse uniquement un copier/coller des feuilles les unes a la suite des autres.

    @Kiki29 : Je comprends dans le fonctionnement ce que tu veux dire. Par contre pour la réalisation, il va me falloir un peu d'aide

  5. #5
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,
    et si adaptais ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub test2()
    Dim ws As Worksheet
    Dim x As Integer
    Dim choixfeuil
    choixfeuil = Array(Sheets("Feuil1"), Sheets("Feuil3"), Sheets("Feuil6"))
    For x = 1 To UBound(choixfeuil)
      Set ws = choixfeuil(x)
      ws.Range("A1:" & [a1].SpecialCells(xlCellTypeLastCell).Address).Copy Sheets("Rapport_final").Range("A" & Sheets("Rapport_final").Rows.Count).End(xlUp).Offset(1, 0)
      Application.CutCopyMode = False
    Next x
    End Sub
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  6. #6
    Membre habitué
    Homme Profil pro
    Chimiste
    Inscrit en
    Décembre 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Chimiste

    Informations forums :
    Inscription : Décembre 2014
    Messages : 13
    Par défaut
    Bonjour casefayere,

    J'aimerai bien l'adapté, mais je n'ai pas de notion de VBA.

  7. #7
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    je ne suis plus chez moi et une fete se prépare, donc il va falloir être patiente, je renverrai le code avec ses explications, mais pas avant demain

    bonne soirée
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  8. #8
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, voir ici , le principe avec les CheckBoxes est le même ( impression de x feuilles parmi n en pdf )
    Code que tu pourras rapproché, pour sa partie création liste des feuilles sélectionnées, de celui de Dominique pour le copier/coller.

    Bref qqch comme ceci ( pas testé )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    Option Explicit
    Option Base 1
     
    Sub Recap()
    Dim ArWsh() As String
    Dim i As Long, n As Long
    Dim Coll As Collection
    Dim Ws As Worksheet
    Dim WsDest As Worksheet
     
        Application.ScreenUpdating = False
        Set Coll = New Collection
        With Sheets("Param")
            If .CheckBoxes("chkFeuil1").Value = 1 Then Coll.Add "Feuil1"
            If .CheckBoxes("chkFeuil2").Value = 1 Then Coll.Add "Feuil2"
            If .CheckBoxes("chkFeuil3").Value = 1 Then Coll.Add "Feuil3"
            If .CheckBoxes("chkFeuil4").Value = 1 Then Coll.Add "Feuil4"
            If .CheckBoxes("chkFeuil5").Value = 1 Then Coll.Add "Feuil5"
            If .CheckBoxes("chkFeuil6").Value = 1 Then Coll.Add "Feuil6"
            If .CheckBoxes("chkFeuil7").Value = 1 Then Coll.Add "Feuil7"
            If .CheckBoxes("chkFeuil8").Value = 1 Then Coll.Add "Feuil8"
            If .CheckBoxes("chkFeuil9").Value = 1 Then Coll.Add "Feuil9"
            If .CheckBoxes("chkFeuil10").Value = 1 Then Coll.Add "Feuil10"
        End With
     
        n = Coll.Count
        ReDim ArWsh(n)
        For i = 1 To n
            ArWsh(i) = Coll(i)
        Next i
     
    	'........ code de Dominique pour le copier/coller
        Set WsDest = Sheets("Rapport_final")
        WsDest.Cells.Clear
        For i = 1 To UBound(ArWsh)
            Set Ws = Worksheets(ArWsh(i))
            Ws.Range("A1:" & [A1].SpecialCells(xlCellTypeLastCell).Address).Copy _
                    WsDest.Range("A" & WsDest.Rows.Count).End(xlUp).Offset(1, 0)
            Application.CutCopyMode = False
        Next i
     
        Erase ArWsh
        Set Coll = Nothing
        Application.ScreenUpdating = True
    End Sub

  9. #9
    Membre habitué
    Homme Profil pro
    Chimiste
    Inscrit en
    Décembre 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Chimiste

    Informations forums :
    Inscription : Décembre 2014
    Messages : 13
    Par défaut
    Merci beaucoup kiki29, cela m'a l'air top.
    Je testerais tout cela, pas avant Lundi je pense. Je reviens vers toi pour tout problème.

    Passez tous un bon réveillon!! Et Bonne année 2015!!

  10. #10
    Membre habitué
    Homme Profil pro
    Chimiste
    Inscrit en
    Décembre 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Chimiste

    Informations forums :
    Inscription : Décembre 2014
    Messages : 13
    Par défaut
    Bonjour,

    Encore meilleurs vœux a tous pour cette nouvelle année.

    Si je comprends bien, je crée une feuille "Param" dans laquelle je met des checkbox (autant que j'ai de feuille).
    Ensuite j'aurais juste a les cocher et lancer la macro.

    Le souci c'est que je ne sais pas faire pour les checkbox. Que dois je faire quand j'en crée une? Je leur donne le nom chkFeuil1....?
    A la place de Feuil1 dans le code je met le nom de mes onglets?

    Désolé je suis vraiment novice......

    Merci d'avance

  11. #11
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, en PJ un échantillon.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Agir sur certaines feuilles d'un classeur
    Par capi81 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/03/2015, 10h55
  2. [XL-2007] Copier des données de plusieurs classeurs sur une feuille récap
    Par chipster008 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 09/08/2011, 11h12
  3. [XL-2007] rassembler plusieurs feuilles d'un classeur en une seule
    Par klash384 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 25/11/2009, 11h21
  4. [XL-2007] Ouvrir classeur sur une feuille en particulier
    Par anubis62 dans le forum Excel
    Réponses: 1
    Dernier message: 25/06/2009, 12h36
  5. Excel : consolidation de données sur une seule feuille
    Par aquamusic dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/01/2006, 18h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo