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

Autres Sous-total et array

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

michel1941

XLDnaute Nouveau
Bonjour à tous,

J'ai une partie de code VBA qui fonctionne pour créer les sous-totaux des colonnes 2 à 122.
Est-il possible de simplifier la liste en donnant le limites de celle.çi . Içi 3 et 122.
C'est juste pour simplifier l'écriture, sans changer la formule.
Merci d'avance de votre aide.
 

Pièces jointes

Bonjour Michel,
Un fichier texte ! Pourquoi pas le fichier XL directement avec une petite explication ?
Si c'est pour faire des sous totaux en passant par du VBA, pourquoi ne pas faire faire au VBA directement les calculs ?
Evidemment cela dépend du contexte, mais souvent c'est faisable facilement.
 
Réactions: cp4
Je pensais avoir été clair. Remplacer l'énumération des 120 colonnes avec quelque chose comme (3 to 122) dans mon exemple. Je ne veux rien changer d'autre dans ce qui fonctionne, juste simplifier l'écriture.
 
Pas vexé, mais stupéfait.
A tester :
VB:
    Dim Tablo(1 To 120)
    For i = 1 To 120
        Tablo(i) = i + 2
    Next i
et ensuite :
Code:
Selection.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(Tablo), Replace:=True, PageBreaks:=False, SummaryBelowData:=True
ou
Code:
Selection.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Tablo, Replace:=True, PageBreaks:=False, SummaryBelowData:=True
Pas pu tester hors contexte du fichier.
 
J'ai testé mais l'erreur suivante apparaît à l'exécution
la méthode subtotal de la classe range a échoué.
 
Comme de toute façon on n'aura aucun fichier test puisqu'à priori "Vous pensiez avoir été clair."
Un dernier essai en PJ pour clore mon intervention.
La macro proposée marche, à vous de mettre au point dans votre contexte.
VB:
Worksheets("Feuil1").Activate
Dim tablo(1 To 9)
For i = 1 To 9: tablo(i) = i: Next i
Range("1:10").Select
Selection.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=tablo, Replace:=True, PageBreaks:=False, SummaryBelowData:=True
 

Pièces jointes

 
- 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
12
Affichages
442
Réponses
5
Affichages
258
Réponses
5
Affichages
379
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…