pb sous-totaux jusqu'à nbcol + mise en forme

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 !

Batiscaf

XLDnaute Occasionnel
Bonjour tout le monde,

J'ai eu beau chercher dans le forum, je n'ai pas trouvé de réponses claires aux 2 questions qui suivent sur la base du code que je vous indique si dessous.

Voici le code :
nbcol2 = Range("IV1").End(xlToLeft).Column
Range("A1").CurrentRegion.Select
Selection.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(16, 17, 18 _
, 19, 20, 21, 22, 23, 24, 35, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76), _
Replace:=True, PageBreaks:=False, SummaryBelowData:=True
Selection.Subtotal GroupBy:=3, Function:=xlSum, TotalList:=Array(16, 17, 18 _
, 19, 20, 21, 22, 23, 24, 35, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76), _
Replace:=False, PageBreaks:=False, SummaryBelowData:=True


En fait, le numéro de ma dernière colonne est variable, ici il y en a 76 mais à partir de 66, je peux très bien aller jusqu'à 100 colonnes, voire +. Donc :

1) Je cherche le moyen de dire à la macro de faire le sous total à jusqu'à nbcol
2) De mettre ses 2 sous-totaux en gras et sur fond de cellule jaune, sur toute la largeur de la ligne.

Mrrci de votre aide.

Cordialement.

Batiscaf.
 
Re : pb sous-totaux jusqu'à nbcol + mise en forme

Bonjour,

Il est vraiment impossible d'introduire une variable dans la liste des colonnes à totaliser ?
Voyez-vous une autre piste qui arriverai au même résultat ?

Pour le point 2, j'ai réussi à biaiser.

Batiscaf.
 
Re : pb sous-totaux jusqu'à nbcol + mise en forme

bonjour,
à tester
Code:
Sub test()
Dim NbCol2 As Integer, i As Integer
Dim tablo As Variant
' pour compatibilité XL 2007
NbCol2 = Range(Cells(1, Application.Columns.Count).Address).End(xlToLeft).Column
tablo = Array()
'remplissage du tableau
For i = 0 To NbCol2 - 16 'si tu commence à 16
  ReDim Preserve tablo(UBound(tablo) + 1)
  tablo(UBound(tablo)) = i + 16  'si tu commence à 16
Next i
'remplace ensuite

'TotalList:=Array(16, 17, 18 _
, 19, 20, 21, 22, 23, 24, 35, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76)
'par

'TotalLst:= tablo
End Sub
cordialement
 
Dernière édition:
Re : pb sous-totaux jusqu'à nbcol + mise en forme

Bonsoir Fred, le forum,

Merci pour ton aide c'est vraiment pas loin de mon besoin.
Comme tu as pu le remarquer, je ne systématise pas les sous-totaux sur l'ensemble des colonnes à partir de la colonne 16, mais à partir de la 65ème colonne.

Y a t-il un moyen de modifier ton code pour :
- Soit supprimer les sous-totaux des colonnes 25 à 34 par exemple

- Soit commencer tablo à la colonne 65 pour arriver à un code du genre :
Selection.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(16, 17, 18 _
, 19, 20, 21, 22, 23, 24, 35, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 59, 62, 63, 64, tablo),
--> J'ai essayé de le faire en 2 fois (jusqu'à la colonne 64 puis sur la variable tablo) mais ça n'a pas fonctionné car l'instruction du sous-total est lancée 2 fois.
Selection.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(16, 17, 18 _
, 19, 20, 21, 22, 23, 24, 35, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 59, 62, 63, 64), _
Replace:=True, PageBreaks:=False, SummaryBelowData:=True
Selection.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=tablo, _
Replace:=False, PageBreaks:=False, SummaryBelowData:=True

Cordialement.

Batiscaf.
 
Re : pb sous-totaux jusqu'à nbcol + mise en forme

Bonjour tout le monde,

Laissez tomber ce post, j'ai finalement opté pour repasser (via des moyens très détournés) sur les sous-totaux du "tablo" de Fred65200 et supprimer ou mettre en forme ceux qui s'intéressaient.

Bonne journée.

A bientôt.

Batiscaf.
 
Re : pb sous-totaux jusqu'à nbcol + mise en forme

Bonsoir Fred,

Jusqu'à la colonne 64, les colonnes sous-totalisées sont fixes, ce sont toujours les mêmes quels que soient les libellés.
A partir de la 65ème colonne, je peux me retrouver à 1 ou n colonnes (potentiellement pas de limite). C'est pour cela qu'elles se retrouvent à la fin, pour être tranquille sur les 64 premières.

Les colonnes à partir de la 65è, peuvent avoir toutes sortent de libellés, ce sont les activités des personnes qui sont dans la liste de ma base. Je peux avoir 1 seule colonne, par exemple "participation soirée congrès", comme plein d'autres, par exemple, "Diner du 5/12" ou "atelier cardio" ou "pleinière"... bref pas de repère possible si ce n'est qu'elles sont à partir de la 65è colonne jusqu'à la dernière, de la base.

Cordialement.

Batiscaf.
 
Re : pb sous-totaux jusqu'à nbcol + mise en forme

bonsoir

pour les colonnes donc

je pense que c'est bon
Code:
Option Explicit

Sub test()
Dim NbCol2 As Integer, i As Integer
Dim tablo As Variant
' pour compatibilité XL 2007
NbCol2 = Range(Cells(1, Application.Columns.Count).Address).End(xlToLeft).Column
'initialisation du tableau
tablo = Array("16", "17", "18", "19", "20", "21", "22", "23", "24", "35", "48", _
   "49", "50", "51", "52", "53", "54", "55", "56", "57", "59", "62", "63", "64")

'contrôle du nombre de colonnes utilisées
If NbCol2 > tablo(UBound(tablo)) Then
   Dim Cpt
   Cpt = 64    ' Initialisation de  la variable.
   While Not Cpt = NbCol2  ' Test sur la valeur du compteur.
      ' Incrémentation du compteur.
      Cpt = Cpt + 1
      'remplissage du tableau
      ReDim Preserve tablo(UBound(tablo) + 1)
      tablo(UBound(tablo)) = Cpt
   Wend    ' Arrêt de la boucle End While quand Cpt = nbcol2
   
   'For i = 0 To UBound(tablo)
   '   Debug.Print tablo(i),
   'Next i
End If
'remplace ensuite

'TotalList:=Array(16, 17, 18 _
, 19, 20, 21, 22, 23, 24, 35, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76)
'par

'TotalLst:= tablo
End Sub
cordialement
 
Dernière édition:
Re : pb sous-totaux jusqu'à nbcol + mise en forme

Bonjour Fred, le forum,

Voici un super fil résolu par Fred.
Nous pouvons maintenant intégrer un nombre variable de colonnes dans nos sous-totaux.

Pour le cas qui me concerne, j'ai testé dans tous les sens, c'est nickel.

Merci encore, et bonjour à La Mongie de ma part si tu as l'occasion.

Batiscaf.
 
- 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

  • Question Question
XL 2021 Code Ascii
Réponses
14
Affichages
890
Réponses
1
Affichages
406
  • Question Question
Réponses
7
Affichages
1 K
  • Question Question
Réponses
3
Affichages
970
Réponses
2
Affichages
884
Réponses
11
Affichages
2 K
Réponses
9
Affichages
1 K
  • Question Question
XL 2013 Aide VBA
Réponses
4
Affichages
1 K
Retour