Inserer ligne avec formule SOUS.TOTAL

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

KIM

XLDnaute Accro
Bonjour le forum,
1- J'ai inséré une ligne au debut du fichier par " Rows(1).Insert Shift:=xlDown ". Ensuite j'ai inséré la formule SOUS.TOTAL au dessus de chaque colonne souhaitée par :
Cells(i, 9).FormulaLocal = "=SOUS.TOTAL(9;I3:I65000)" pour une colonne
et Range(Cells(i, 12), Cells(i, 16)).FormulaLocal = "=SOUS.TOTAL(9;L3:L65000)" pour un ensemble de colonnes consécutives.
Ma question est : Si je définis l'ensemble des colonnes au dessus desquelles je souhaite insérer la formule dans un tableau : t = Array(6, 9, 12, 13, 14, 15) par exemple, comment intégrer la notion t(i) pour référencer une colonne de ca tableau dans l'écriture de la formule sous.total?
Car Cells(l, t(i)).FormulaLocal = "=SOUS.TOTAL(9;Range(t(i) & 3):Range(t(i) & 65000))" ne fonctionne pas.
2- Est-il possible de remplacer dynamiquement le nombre max de lignes 65000 par le nombre exacte selon la col A?
Voir fichier ci-joint et les macros inser1 et inser2
Merci de votre aide
KIM
 

Pièces jointes

Dernière édition:
Re : Inserer ligne avec formule SOUS.TOTAL

Bonsoir Kim

Lorsque tu inscrit ta formule tu inscrit un texte, il faut y penser 😉

Donc le code est
Code:
Sub Inser2()
  Dim l As Long, t() As Variant, i As Byte
  Dim DLig As Long
  Application.ScreenUpdating = False
  l = 1
  Rows(l).Insert Shift:=xlDown
  Cells(l, 1) = "SOUS TOTAL"
  t = Array(6, 9, 12, 13, 14, 15)
  For i = 0 To 5
    ' Trouver la dernière ligne de la colonne
    DLig = Cells(Rows.Count, t(i)).End(xlUp).Row
    ' Inscrire les formules
    Cells(l, t(i)).FormulaLocal = "=SOUS.TOTAL(9;" & Cells(3, t(i)).Address & ":" & Cells(DLig, t(i)).Address & ")"
    Columns(t(i)).AutoFit
  Next i
  Rows("2:2").Select
  Selection.AutoFilter
  Application.ScreenUpdating = True
End Sub

A+
 
- 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
5
Affichages
916
Réponses
2
Affichages
1 K
D
Réponses
2
Affichages
948
D
Réponses
8
Affichages
1 K
A
Réponses
11
Affichages
2 K
A
Retour