Bonjour à tous,
je développe actuellement une application excel pour saisir des données dans une base, et ensuite les extraire au moyen d'outils statistiques pré configurés en VBA (l'utilisateur n'a qu'à cliquer sur le type d'extraction qu'il souhaite).
Tout fonctionne parfaitement :
- identification de la plage dans la BDD
- extraction de la plage vers une autre feuille
- projection dans un listview mis en forme
Je voulais ajouter à la fin de la plage selectionnée une ligne contenant la somme (ou la moyenne... mais j'en ferai mon affaire dès que j'aurai une solution pour l'addition).
Ce qui me bloque : je ne sais pas comment transformer mon code pour dire que je veux la somme des cellules au dessus.
Voici mon code, j'arrive déjà à insérer le mot "test" dans cette fameuse dernière ligne, et je remercie par avance toute personne qui puisse m'indiquer comment changer cette chaine de caractère en "additionne l'ensemble des cellules du dessus" ==> les lignes du code qui me bloquent sont en rouge
Cordialement,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 Private Sub CommandButton11_Click() Dim i As Integer Dim j As Integer Dim MyCell As Range Sheets("feuil1").Cells.Clear Sheets(ComboBox3.Value).Activate ' on active la feuille portant le nom du gestionnaire qui a été sélectionné For i = 3 To 360 ' définition des paramètres de la boucle i (on commence en A3 et on prévoit jusqu'à 357 dates rentrées) If Range("A" & i).Value = CDate(ComboBox1.Value) Then ' cherche la cellule en A qui contient la date de début de l'extraction Range("A" & i).Select ' selectionne la cellule Set MyCell = Range("A" & i) ' cette cellule est maintenant appelée "MyCell" For j = 3 To 360 ' définition des paramètres de la boucle j (on commence en A3 et on prévoit jusqu'à 357 dates rentrées) If Range("A" & j).Value = CDate(ComboBox2.Value) Then ' si la cellule en colonne A portant le numéro j contient la date de fin de l'extraction Range("A" & j).Select ' alors on sélectionne la cellule (possibilité de l'appeler MyCell2 comme pour MyCell) Sheets("feuil1").Range("A3", "H" & (j - i) + 3).Value = Range(MyCell, ActiveCell.Offset(0, 7)).Value ' on transfère les données de la plage dynamique dans la feuil1 en "réservant" les deux premières lignes Sheets("feuil1").Range("A1", "H2").Value = Sheets(ComboBox3.Value).Range("A1", "H2").Value ' on rempli les deux premières lignes avec les titres du tableau de données Sheets("feuil1").Range("A65536").End(xlUp)(2) = "Total/Moyenne" ' on ajoute une dernière ligne avec ces valeurs Sheets("feuil1").Range("B65536").End(xlUp)(2) = "test" Sheets("feuil1").Range("C65536").End(xlUp)(2) = "test" Sheets("feuil1").Range("D65536").End(xlUp)(2) = "test" Sheets("feuil1").Range("E65536").End(xlUp)(2) = "test" Sheets("feuil1").Range("F65536").End(xlUp)(2) = "test" Sheets("feuil1").Range("G65536").End(xlUp)(2) = "test" Sheets("feuil1").Range("H65536").End(xlUp)(2) = "test" End If Next j End If Next i End Sub
joe.levrai
Partager