XL 2016 Consolider onglet sauf 1,2,ou 3

Scorpio

XLDnaute Impliqué
Bonjour à tous,
J'ai un classeur et j'aimerais bien l'utiliser, mais j'aimerais faire une petite modification, ce que je ne suis pas capable de faire.

En fait, j'aimerais consolider ou regrouper la feuille: Filiale1, Filiale2, Filiale3
Et, j'aimerais éviter de consolider ou regrouper la feuille: Feuil1, Perso, Conso.

Est-ce que un membre pourrais me donner un petit coup de pouce, s'il vous plaît, je le remercie d'avance.
A++++
 

Pièces jointes

  • 102_ConsoliderPlusieursOnglets.xlsm
    30.8 KB · Affichages: 22

chris

XLDnaute Barbatruc
Bonjour

Tu as 2016 pas Excel 5 alors autant utiliser les possibilités de 2016 à savoir PowerQuery... et les tableaux structurés

Exemple ci-joint : pas de code : une simple actualisation suffit
 

Pièces jointes

  • ConsoliderPlusieursOnglets2.xlsx
    33.9 KB · Affichages: 21

chris

XLDnaute Barbatruc
Re

Pour commencer mettre les tableaux à consolider sous forme de tableaux et les nommer :
J'ai mis T_Filiale1 etc et pour les autres à ne pas consolider TA_Nom.

La requête PowerQuery que tu peux voir en allant dans l'éditeur est une requête un peu plus complexe que ce qu'on fait habituellement (PowerQuery permet plein de choses incroyables en quelques clics)

Ici il faut
  • lancer l'éditeur PowerQuery depuis l'onglet Données
  • aller dans l'éditeur avancé à partir d'une requête vide et mettre
    Code:
    let
            Source = Excel.CurrentWorkbook(),
            myTable = Table.AddColumn(Source, "Colonnes", each Table.ColumnNames([Content]))
        in
            myTable
    pour avoir la liste des tableaux structurés du classeur
  • ensuite via la liste déroulante de la colonne Name, filtrer ce qui ne commence pas par TA
  • puis cliquer sur la double flèche en haut de la colonne Content et décocher "Utiliser le nom de la colonne d'origine..." pour lister la consolidation
  • supprimer les deux dernières colonnes
  • Sortir par le bouton en haut à gauche : Fermer et charger dans, choisir Table et nouvel onglet
  • On est de retour dans Excel. Et il y a des lignes vides dans le tableau obtenu : renommer ce tableau TA_Conso (ou autre nom commençant par TA de façon à ne pas consolider la consolidation puis actualiser.
  • Modifier la requête pour classer selon la colonne Nom (on ne peut le faire avant en raison de la consolidation de consolidation faite tant qu'on n'a pas renommé)
Ensuite tout tableau ajouté et dont le nom ne commence pas par TA sera automatiquement consolidé et tout tableau dont le nom commence par TA sera ignoré...
 
Dernière édition:

Scorpio

XLDnaute Impliqué
RE,
Ho, super, Merci d'avoir pris un peut de ton temps pour m'expliquer toute la marche à suivre.
Apparemment tu en a l'expérience du Power Query.
Je te remercie, je vais faire des tests, et on vas voir.
Merci encore à toi Chris.
A++++
 

zebanx

XLDnaute Accro
Bonsoir à tous.

On se retrouve avec Chris sur un cheminement identique (Power Query / VBA boucle recap) sur un post de cette semaine.;)
Proposition par VBA pour consolider les feuilles qui contiennent le mot "Filiale".

Bonne soirée
zebanx

Code:
Sub conso()
Sheets("CONSO").[A1].CurrentRegion.Offset(1, 0).Clear
For s = 2 To Sheets.Count
If Sheets(s).Name Like "*Filiale*" Then
   Range(Sheets(s).[A2], Sheets(s).[A65000].End(3).Offset(1, 0).End(2)).Copy [A65000].End(3).Offset(1, 0)
End If
Next s
On Error Resume Next
[A:A].SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub
 

Pièces jointes

  • fichier conso.xls
    59.5 KB · Affichages: 19

Scorpio

XLDnaute Impliqué
Bonsoir zebanx,
Je dois dire, je nage avec ce Power Query, cela ne dois pas être très compliqué, mais pour moi, c'est la première, et là, je nage.
J'ai juste une question si tu me permet:
La feuille "CONSO" je peux la déplacer ou je veux dans la barre des onglets, puis consolider, puisque seul les onglets contenant le mot "Filiale" seront consolider.
Si j'ai bien compris :D
 

zebanx

XLDnaute Accro
Re-

Oui, j'ai juste modifié "2" par "1" sur la boucle for.
Ca devrait être ok.

@+

Code:
Sub conso()
Sheets("CONSO").[A1].CurrentRegion.Offset(1, 0).Clear
For s = 1 To Sheets.Count
If Sheets(s).Name Like "*Filiale*" Then
   Range(Sheets(s).[A2], Sheets(s).[A65000].End(3).Offset(1, 0).End(2)).Copy [A65000].End(3).Offset(1, 0)
End If
Next s
On Error Resume Next
[A:A].SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub
 

Pièces jointes

  • fichier conso.xls
    61 KB · Affichages: 13

zebanx

XLDnaute Accro
Re-

Ca ne change rien... L'important c'est que tu ne mettes pas "Conso Filiales" comme nom d'onglet.
Je rajoute un Lcase pour ne pas être embêter par la casse du nom des onglets comme tu le verras.

@+

Code:
Sub conso()
Sheets("CONSO").[A1].CurrentRegion.Offset(1, 0).Clear
For s = 1 To Sheets.Count
If LCase(Sheets(s).Name) Like "*filiale*" Then
   Range(Sheets(s).[A2], Sheets(s).[A65000].End(3).Offset(1, 0).End(2)).Copy [A65000].End(3).Offset(1, 0)
End If
Next s
On Error Resume Next
[A:A].SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub
 

Pièces jointes

  • fichier conso.xls
    65.5 KB · Affichages: 21

chris

XLDnaute Barbatruc
RE
...
On se retrouve avec Chris sur un cheminement identique (Power Query / VBA boucle recap) sur un post de cette semaine.;)
Proposition par VBA pour consolider les feuilles qui contiennent le mot "Filiale".
Dommage avec 2003 tu ne sais pas ce que tu perds à ne pas pouvoir découvrir et utiliser PowerQuery.
Tu aimerais sûrement ;).
J'utilise majoritairement 2010 (avec les add on) et occasionnellement 2016 : pour rien au monde je ne reviendrais à 2003....
J'espère que tu as gardé Win7 car avec Win10, 2002 et 2003 ne marchent plus depuis les dernières MAJ.
(On peut bidouiller certaines mises à jour mais cela ne tiendra pas longtemps comme avec Windows mail qui saute à chaque MAJ...)
 

Discussions similaires

Réponses
7
Affichages
954

Statistiques des forums

Discussions
314 017
Messages
2 104 566
Membres
109 080
dernier inscrit
Merilien