XL 2013 Récapitulatif tableaux (objets)

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

maan

XLDnaute Nouveau
Bonjour et merci d'avance pour votre aide !

J'ai un fichier avec un nombre variable d'onglet et dans chaque onglet j'ai un tableau (sous forme d'objet Excel), je dois créer un nouvel onglet pour afficher le récapitulatif des onglets, le problème c'est pour faire une somme j'utilise SOUS.TOTAL(109;Tableau1[Entete]) mais je pourrais faire un For pour effectuer un recap en incrémentant le nom Tableau mais mes entêtes sont différents pour chaque tableau. Du coup je n'arrive pas à trouver une solution.

N'est-il pas possible de remplacer cet entête dans la formule par l'index de la colonne (A ou bien via son numéro?)

Je vous joins mon fichier pour que vous puissiez mieux comprendre ma situation
Encore merci d'avance !
 

Pièces jointes

Re : Récapitulatif tableaux (objets)

Bonjour,

une petite fonction perso :
Code:
Function Cumul(c As Integer) As Double
  Dim ws As Worksheet
  Dim lo As ListObject
  For Each ws In ThisWorkbook.Worksheets
    For Each lo In ws.ListObjects
      Cumul = Cumul + Intersect(lo.TotalsRowRange, ws.Cells(1, c).EntireColumn)
    Next lo
  Next ws
End Function

qui s'utilise comme suit :
Dans une autre feuille : =Cumul(2) totalise les totaux des deuxièmes colonnes de tous les tableaux, quelque soit leur intitulé
 
Re : Récapitulatif tableaux (objets)

Merci pour ta réponse !

le souci je pense c'est que j'ai dans chaque onglet, une ligne de somme, donc avec ta fonction ça va me prendre la somme de la colonne + la ligne de somme non ?

Est-il possible de faire cela mais juste d'un tableau ? car ce qui m'intéresse c'est d'avoir la somme de la colonne C par exemple du tableau 1, mais avec la fonction SOUS.TOTAL je suis obligé d'utiliser l'entête (sauf que ce ne sont pas les mêmes entre les différents tableaux)

Mon onglet recap ça serait simplement d'afficher la ligne des sommes de tous les tableaux (mais ligne par ligne)
Par exemple, sur la ligne 1, j'ai les sommes des différentes colonnes du tableau 1
Ligne 2, la même chose mais du tableau 2.

Les soucis sont : les entetes fixes, que je ne sais pas combien j'ai de tableaux dans mon fichier (car cela changera)
 
Re : Récapitulatif tableaux (objets)

Bonjour,

Voici la solution que j'ai adoptée pour ceux que ça intéresse (mieux vaut tard que jamais 😉


Code:
Sheets(1).Select

WS_Count = ActiveWorkbook.Worksheets.Count
WS_Count = WS_Count - 1
For Y = 1 To WS_Count

Sheets(Y).Select
Sheets(Y).ListObjects("Tableau" & Y).ShowTotals = True
Tableau = "Tableau" & Y
Nom = Sheets(Y).Name
Entete = Range("C1").Value

Sheets("Recap").Select

 

Entete = Split(Entete, "_")(1)

A = A + 1
Range("C" & A).FormulaR1C1 = _
"=SUBTOTAL(109," + Tableau + "[Lignfac_" + Entete + "_201510])"
Range("D" & A).FormulaR1C1 = _
"=SUBTOTAL(109," + Tableau + "[Hono_" + Entete + "_201511]) + SUBTOTAL(109," + Tableau + "[Nonabo_" + Entete + "_201511])"
Range("E" & A).FormulaR1C1 = _
"=SUBTOTAL(109," + Tableau + "[Hono_" + Entete + "_201512]) + SUBTOTAL(109," + Tableau + "[Nonabo_" + Entete + "_201601])"
Range("F" & A).FormulaR1C1 = _
"=SUBTOTAL(109," + Tableau + "[Hono_" + Entete + "_201601]) + SUBTOTAL(109," + Tableau + "[Nonabo_" + Entete + "_201602])"
Range("G" & A).FormulaR1C1 = _
"=SUBTOTAL(109," + Tableau + "[Hono_" + Entete + "_201602]) + SUBTOTAL(109," + Tableau + "[Nonabo_" + Entete + "_201603])"
Range("H" & A).FormulaR1C1 = _
"=SUBTOTAL(109," + Tableau + "[Hono_" + Entete + "_201603]) + SUBTOTAL(109," + Tableau + "[Nonabo_" + Entete + "_201604])"
Range("I" & A).FormulaR1C1 = _
"=SUBTOTAL(109," + Tableau + "[Hono_" + Entete + "_201604]) + SUBTOTAL(109," + Tableau + "[Nonabo_" + Entete + "_201605])"
Range("J" & A).FormulaR1C1 = _
"=SUBTOTAL(109," + Tableau + "[Hono_" + Entete + "_201605]) + SUBTOTAL(109," + Tableau + "[Nonabo_" + Entete + "_201606])"
Range("K" & A).FormulaR1C1 = _
"=SUBTOTAL(109," + Tableau + "[Hono_" + Entete + "_201606]) + SUBTOTAL(109," + Tableau + "[Nonabo_" + Entete + "_201607])"
Range("L" & A).FormulaR1C1 = _
"=SUBTOTAL(109," + Tableau + "[Hono_" + Entete + "_201607]) + SUBTOTAL(109," + Tableau + "[Nonabo_" + Entete + "_201608])"
Range("M" & A).FormulaR1C1 = _
"=SUBTOTAL(109," + Tableau + "[Hono_" + Entete + "_201608]) + SUBTOTAL(109," + Tableau + "[Nonabo_" + Entete + "_201609])"
Range("N" & A).FormulaR1C1 = _
"=SUBTOTAL(109," + Tableau + "[Hono_" + Entete + "_201609]) + SUBTOTAL(109," + Tableau + "[Nonabo_" + Entete + "_201609])"
Range("O" & A).FormulaR1C1 = "=SUM(RC[-12]:RC[-1])"


Range("B" & A).FormulaR1C1 = Nom

Sheets(Y).Select


Next Y
 
- 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
10
Affichages
661
Retour