Sous totaux en VB
Résolu/Fermé
ab90
Messages postés
13
Date d'inscription
vendredi 27 août 2004
Statut
Membre
Dernière intervention
18 janvier 2006
-
6 mars 2005 à 18:44
tallix - 27 févr. 2012 à 16:11
tallix - 27 févr. 2012 à 16:11
A voir également:
- Sous totaux en VB
- Vb - Télécharger - Langages
- Vb cable - Télécharger - Audio & Musique
- Vb editor - Télécharger - Langages
- Vb runtime - Télécharger - Divers Utilitaires
- Tableau croisé dynamique sous-totaux personnalisés - Guide
2 réponses
Armojax
Messages postés
1860
Date d'inscription
mercredi 19 janvier 2005
Statut
Membre
Dernière intervention
2 octobre 2024
1 528
7 mars 2005 à 10:35
7 mars 2005 à 10:35
Bonjour ab90,
Je te propose la solution ci-dessous. Adapte-la à ton cas précis.
Elle suppose que ta zone de données ne comporte aucune ligne ou colonne entièrement vide.
Ma feuille de test comporte une ligne d'entête de colonnes.
J'ai supposé, comme j'ai cru le voir chez toi, que les sous-totaux ne commencent qu'à partir de la colonne 3.
Dans la commande TotalListe, je remplace Array(...) par un tableau défini sans dimension par Dim en début de procédure.
Ensuite, après avoir calculé le nombre de colonnes, je lui donne sa dimension définitive avec Redim.
Mettre en début de module "Option Base 1".
Voici le code :
En espérant que ça réponde à ton PB.
Armojax.
Je te propose la solution ci-dessous. Adapte-la à ton cas précis.
Elle suppose que ta zone de données ne comporte aucune ligne ou colonne entièrement vide.
Ma feuille de test comporte une ligne d'entête de colonnes.
J'ai supposé, comme j'ai cru le voir chez toi, que les sous-totaux ne commencent qu'à partir de la colonne 3.
Dans la commande TotalListe, je remplace Array(...) par un tableau défini sans dimension par Dim en début de procédure.
Ensuite, après avoir calculé le nombre de colonnes, je lui donne sa dimension définitive avec Redim.
Mettre en début de module "Option Base 1".
Voici le code :
Option Base 1 Sub SousTotaux() Dim I As Integer Dim NbLig As Integer Dim NbCol As Integer Dim Tablo() As Variant Worksheet("Nom-de-ta-feuille").Activate NbLig = Cells(1, 1).CurrentRegion.Rows.Count NbCol = Cells(1, 1).CurrentRegion.Columns.Count ReDim Tablo(NbCol - 2) For I = 1 To NbCol - 2 Tablo(I) = I + 2 Next Range(Cells(1, 1), Cells(NbLig, 1)).EntireRow.Select Selection.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Tablo _ , Replace:=True, PageBreaks:=False, SummaryBelowData:=True End Sub
En espérant que ça réponde à ton PB.
Armojax.
Modifié par tallix le 27/02/2012 à 16:12