Somme des montants d'un filtre

Résolu
cs_Achi Messages postés 128 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 17 mai 2008 - 22 août 2006 à 17:01
cs_Achi Messages postés 128 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 17 mai 2008 - 23 août 2006 à 12:01
salut à tous,

voilà j'ai (pour simplifié) 2 colonnes sur ma feuille excel:

DATE pour la colonne A et MONTANT pour la colonne B.

j'ai placé un filtre automatique sur ces 2 colonnes.

egalement je me sers d'un textbox pour afficher la somme de ma colonne montant.

jusque là tt beigne...

Mais mon intérêt ac ce filtre serait de pouvoir faire ds ce même textbox (ou a la rigueur ds un autre peu m'importe) la somme de ma colonne montant mais filtrée.

(précision je filtre en fonction de la date à l'aide d'un textbox).

le filtre masque simplement mes lignes non concernées, mais la somme de ma colonne montant me prends toute la colonne et ne tient pas compte du filtre... 

mon code pr la somme:
 (TextBox2.Text = WorksheetFunction.Sum(ActiveWorkbook.Worksheets(1).Columns("B:B")) 

je ne sais pas si je suis clair !?? mais merci pr votre coup de main..

@++ Achi.

4 réponses

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 17
22 août 2006 à 17:45
Salut,

essai ceci :

<small> Coloration syntaxique automatique </small>
Sub test() 
    Dim MaPlage As Range 
    Dim PLV As Long 


PLV = Columns(2).Find("", [B1], , , xlByRows, xlNext).Row 

Set MaPlage = Range(Cells(2, 2), Cells(PLV, 2)) 


TextBox1.Text = WorksheetFunction.Subtotal(9, MaPlage) 

End Sub 

<small> Coloration syntaxique automatique</small>

@++


  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
3
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 17
23 août 2006 à 09:36
Salut Achi,

pour mon code PLV, il y a plus simple mais c'est celui là quue je connais par coeur :

PLV --> abréviation pour Première Ligne VIde
Columns(2)  --> la recherche se fera dans la deuxième colonne
.Find(  --> fonction de recherche
"",   -->  ce que l'on recherche (ici, rien, une cellule vide)
[B1], , ,  --> à partir de où dans la 2ème colonne
xlByRows,   --> recherche par ligne (<> xlByColumns)
xlNext)  --> passe au prochain (si pas vide) par le bas ou la droite (<> xlPrevious)
.Row  --> ça me donne donc la ligne de cette cellule vide.
^^ ce code adapte ta plage a tes données !

Concernant le 9 de la fonction SubTotal, il me semble (mais je n'en suis pas sûr) que c'est ce critère qui dit que la somme se fera que pour les cellules visibles.

J'espère avoir répondu à tes demandes ! 

@++


  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
3
cs_Achi Messages postés 128 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 17 mai 2008
23 août 2006 à 09:23
salut Mortalino,

Ton code fonctionne très bien... j'ai réussi à l'adapté à mon projet...

Bon j'ai compris en général ton code ... mais si jamais tu avais 2 min à consacrer à l'apprentissage d'un débutant  je te serais reconnaissant de bien vouloir m'expliquer en littéraire par exemple :
PLV = Columns(2).Find("", [B1], , , xlByRows, xlNext).Row 

puis aussi:
 pourquoi le 9 dans :
TextBox1.Text = WorksheetFunction.Subtotal(9, MaPlage)

Merci beaucoup pour ton code... 
@++ Achi
0
cs_Achi Messages postés 128 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 17 mai 2008
23 août 2006 à 12:01
re,


parfait, tu as bien répondu à mes demandes, me voilà instruit d'un nouveau code... merci bien...

A bientôt sur le forum, @++ Achi.
0
Rejoignez-nous