Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2935 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Moyenne automatique suite à un tri [RESOLU]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Moyenne automatique suite à un tri [RESOLU]

n°1732223
Silarion
Posté le 15-05-2008 à 14:48:05  profilanswer
 

Bonjour,
 
Tout d'abord un grand merci à tous les membres actifs de ce forum, qui m'a énormément aidé dans mon expoloration du VBA (Excel) jusqu'à présent.
 
Mon objectif actuel :
J'ai plusieurs colonnes avec filtre automatique. (une dizaine de colonnes et plus de 800 lignes, d'où le tri)
ex :  
ColonneE (tri)          ColonneG
Côté                          9
Dessus                      10
Dessus                      16
Côté                          7
Dessous                     8
Dessus                      11
    ...
 
Lorsque j'effectue un tri (admettons "Dessus" ) je voudrais la moyenne (et à terme le mini et le maxi aussi) de toutes les lignes qui ont été gardées. (donc ici moyenne = 12.33)
Pour le moment le code m'en approchant le plus était celui-là :
 
Private Sub MoyenneMiniMaxi()
Dim plage As Variant
Set plage = Range(Cells(8, 7), Cells(8, 7).End(xlDown))              'Ligne 8 c'est un titre, et c'est là où se trouve la flèche de tri automatique
Range("G6" ) = Application.WorksheetFunction.Average(plage)      'mes valeurs commencent à la ligne 9, donc G6 est une cellule vide.
End Sub
 
Le souci de ce code, c'est que si le premier "dessus" qu'il trouve est en ligne 22, et que le dernier est en ligne 30, il fera la moyenne en intégrant toutes les valeurs de la ligne 9 à la ligne 30 sans prendre en compte uniquement les valeurs triées affichées à l'écran.
 
J'espère avoir été clair, merci par avance pour votre aide.


Message édité par Silarion le 21-05-2008 à 09:17:53
mood
Publicité
Posté le 15-05-2008 à 14:48:05  profilanswer
 

n°1732521
kiki29
Posté le 16-05-2008 à 03:31:23  profilanswer
 

Salut,solution bestiale : réécrire en ne prenant en compte que les cells(i,7).Height>0 avec une variable Total=Total +Cells(i,7) et un compteur pour au final faire Total/Compteur


Message édité par kiki29 le 16-05-2008 à 04:03:18
n°1732562
babasss
Posté le 16-05-2008 à 09:38:09  profilanswer
 

Y'a beaucoup mieux : la fonction SOUS.TOTAL() => http://office.microsoft.com/fr-fr/ [...] 31036.aspx


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
n°1733733
Silarion
Posté le 19-05-2008 à 14:28:05  profilanswer
 

Bonjour,
Merci de vos réponses ! Je vais les étudier attentivement. Mes excuses pour ma réponse tardive, j'étais en déplacement. Je placerai ds ce post le code final qd j'y parviendrai.   ;)  
Salutations

n°1735008
Silarion
Posté le 21-05-2008 à 09:16:18  profilanswer
 

Code résolvant mon problème :
 
Sub MoyenneMiniMaxiImport()
 
Range("G2" ) = Application.WorksheetFunction.Subtotal(102, Range("G8", [G65536].End(xlUp)))          'nombre de valeurs gardées dans la colonne
Range("G3" ) = Application.WorksheetFunction.Subtotal(105, Range("G8", [G65536].End(xlUp)))          'Valeur Min
Range("G4" ) = Application.WorksheetFunction.Subtotal(104, Range("G8", [G65536].End(xlUp)))          'Valeur Max
Range("G5" ) = Application.WorksheetFunction.Subtotal(101, Range("G8", [G65536].End(xlUp)))          'Valeur Moyenne
 
End Sub

n°1735012
babasss
Posté le 21-05-2008 à 09:25:49  profilanswer
 

Silarion a écrit :

Code résolvant mon problème :
 
Sub MoyenneMiniMaxiImport()
 
Range("G2" ) = Application.WorksheetFunction.Subtotal(102, Range("G8", [G65536].End(xlUp)))          'nombre de valeurs gardées dans la colonne
Range("G3" ) = Application.WorksheetFunction.Subtotal(105, Range("G8", [G65536].End(xlUp)))          'Valeur Min
Range("G4" ) = Application.WorksheetFunction.Subtotal(104, Range("G8", [G65536].End(xlUp)))          'Valeur Max
Range("G5" ) = Application.WorksheetFunction.Subtotal(101, Range("G8", [G65536].End(xlUp)))          'Valeur Moyenne
 
End Sub


Tu n'as pas besoin d'une  macro pour faire ca, c'est une perte de temps
Il suffit de mettre dans la cellule G2, la formule Subtotal(102, Range(G8:G65536)) et ainsi de suite....


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Moyenne automatique suite à un tri [RESOLU]

 

Sujets relatifs
Numerotation automatique[Wordpress][CSS]bug internet explorer : bug1 #1 bug #2 self-solved
[resolu]heure d'envoi d'un formulaire[Résolu] Fonction php déclencé par un bouton
[Résolu] Problème dans le menuSimple lecture de fichier... [ RESOLU ]
Un tableau qui agrandit les cases [Resolu]Aide code VBA -calcul Moyenne mobile-
Redirection automatique PHP pour différents navigateurs(Résolu) Erreur caractère
Plus de sujets relatifs à : Moyenne automatique suite à un tri [RESOLU]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR