Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Fusionner requêtes PQ

  • Initiateur de la discussion Initiateur de la discussion Etoto
  • 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 !

Etoto

XLDnaute Barbatruc
Supporter XLD
Bonjour,

Dans ce fichier ci-joint, j'ai le calendrier de Raiffeisen Super League et j'aimerais fusionner mes trois requêtes en une seule pour un seul tableau avec les trois mois dedans.

Merci d'avance
 

Pièces jointes

Bonjour ETOTO,
Voici ton fichier en retour.
Je n'ai pas pu le faire via PQ car et d'une, je ne m'y connais pas assez et de deux, ma version excel est incompatible avec
Donc voici une solution via macro (qui à mon avis peut être largement amélioré) si j'ai bien compris la demande.
@+ Lolote83
 

Pièces jointes

C'est parafait, merci. Et si je rajoute d'autres mois, que dois-je modifier au code ?
 
Re bonjour,
C'est la ou mon code n'est pas au top.
Voici donc le code commenté, cela te donnera une marche à suivre
Maintenant, si tes prochains tableaux sont bien notés comme les précédents, je vais voir pour améliorer la chose. Je m'y penche cet après midi.
VB:
Sub Regroupement()
    Application.ScreenUpdating = False
    Range("Tab_Groupe").Delete                                                  'Effacement du tableau
  
    For F = 1 To 3                                                              'On tourne sur 3 valeurs car 3 mois
        Select Case F
            Case Is = 1
                Set xPlage = Range("janvier_2021")                              'F=1 donc on prend le tableau JANVIER
            Case Is = 2
                Set xPlage = Range("février_2021")                              'F=2 donc on prend le tableau FEVRIER
            Case Is = 3
                Set xPlage = Range("mars_2021")                                 'F=3 donc on prend le tableau MARS
        End Select
        xNewLig = [Tab_Groupe].ListObject.ListRows.Add.Index                    'On rajoute une ligne sur tableau structuré TAB_CLIENT
  
        For Each xCell In xPlage
            Range("Tab_Groupe")(xNewLig - 2 + xCell.Row, xCell.Column) = xCell  'On inscrit dans le tableau les données
        Next xCell
    Next F
    Application.ScreenUpdating = True
End Sub
@+ Lolote83
 
Re,

Et si je faisais :

VB:
Sub Regroupement()
    Application.ScreenUpdating = False
    Range("Tab_Groupe").Delete                                                  'Effacement du tableau
  
    For F = 1 To 4                                                              'On tourne sur 3 valeurs car 3 mois
        Select Case F
            Case Is = 1
                Set xPlage = Range("janvier_2021")                              'F=1 donc on prend le tableau JANVIER
            Case Is = 2
                Set xPlage = Range("février_2021")                              'F=2 donc on prend le tableau FEVRIER
            Case Is = 3
                Set xPlage = Range("mars_2021")                                 'F=3 donc on prend le tableau MARS
            Case Is = 4
                Set xPlage = Range("avril_2021")
        End Select
        xNewLig = [Tab_Groupe].ListObject.ListRows.Add.Index                    'On rajoute une ligne sur tableau structuré TAB_CLIENT
  
        For Each xCell In xPlage
            Range("Tab_Groupe")(xNewLig - 2 + xCell.Row, xCell.Column) = xCell  'On inscrit dans le tableau les données
        Next xCell
    Next F
    Application.ScreenUpdating = True
End Sub

Cela fonctionnerait ?
 
Re bonjour ETOTO,
Voici donc un nouveau code qui prend en compte directement le nombre d'onglet du classeur.
Attention cependant à l'orthographe des noms de tableaux mais cela devrait fonctionner directement
Pour répondre à ta question ci-dessus : OUI
Voici donc le nouveau code
Code:
Sub Regroupement2()
    Application.ScreenUpdating = False
    Range("Tab_Groupe").Delete                                                  'Effacement du tableau
   
    xNbrOng = ThisWorkbook.Sheets.Count - 1                                     'On détermine le nombre d'onglet total du classeur
   
    For F = 1 To xNbrOng                                                        'On tourne sur nombre onglet total-1
        xMois1 = CDate("01/" & F & "/2021")                                     'On trouve le 01 du mois en fonction de F
        xMois2 = Format(xMois1, "mmmm")                                         'On transforme le mois (chiffre 01, 02, 03 ... en lettre Janvier, Février, Mars ....)
        Set xPlage = Range(xMois2 & "_2021")                                    'On affecte à variable xPlage
        xNewLig = [Tab_Groupe].ListObject.ListRows.Add.Index                    'On rajoute une ligne sur tableau structuré TAB_CLIENT
   
        For Each xCell In xPlage
            Range("Tab_Groupe")(xNewLig - 2 + xCell.Row, xCell.Column) = xCell  'On inscrit dans le tableau les données
        Next xCell
    Next F
    Application.ScreenUpdating = True
End Sub
Hé ho, tu vas devenir un AS du VBA a force ....
@+ Lolote83
 
Merci, je le place aussi dans la feuille "GROUPE" ou dans un module ?
Hé ho, tu vas devenir un AS du VBA a force ....
Et ça m'étonnerait que je devienne un as.
 
Re,

Malheureusement cela me renvoie l'erreur 1004

Et la ligne ne surbrillance et
VB:
Set xPlage = Range(xMois2 & "_2021")

Arriverais-tu à créer une exception pour les deux dernières feuilles ?

Merci d'avance.
 
- 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
1
Affichages
109
Réponses
3
Affichages
185
  • Résolu(e)
Microsoft 365 DateDif()
Réponses
5
Affichages
170
  • Résolu(e)
Microsoft 365 DATEDIF
Réponses
11
Affichages
184
Réponses
40
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…