IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Calculer la moyenne d'une colonne en VBA. Fonction average? [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 87
    Points : 38
    Points
    38
    Par défaut Calculer la moyenne d'une colonne en VBA. Fonction average?
    Bonjour,

    J'ai une colonne qui se remplit avec un userform. Elle débute à la ligne 2 et se termine à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DerniereLigne=Range("A65536").End(xlUp).Row
    Je souhaite calculer la moyenne de cette colonne et la placer à la ligne 1.
    Je souhaite également que les lignes vides soient considérées comme ayant la valeur 0.

    J'ai fait une boucle for mais je ne suis pas sure que ça soit la solution. J'ai également lu un tutoriel sur la fonction Average mais n'arrive pas à l'appliquer à mon cas.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim i As Integer
    Dim tot As Variant
    Dim moyenne As Variant
    Dim DerniereLigne As Variant
    DerniereLigne = Range("A65536").End(xlUp).Row
     
    For i = 2 To DerniereLigne
    tot = tot + Range("A" & i)
    moyenne = tot / DerniereLigne
     
    Next i
    Range("A1").Value = moyenne
    Merci de m'aider. Je me sens un peu bête de poser cette question.

  2. #2
    Membre actif
    Inscrit en
    Août 2009
    Messages
    284
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Août 2009
    Messages : 284
    Points : 283
    Points
    283
    Par défaut
    moy1 ne tient pas compte des 0
    moyenne tient compte des 0

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub moy()
    Dim plage As Range
    Dim derligne As Integer
     
    derligne = Range("A65536").End(xlUp).Row
    Set plage = Range(Cells(2, 1), Cells(derligne, 1))
    moyenne1 = WorksheetFunction.Average(plage)
    somme = WorksheetFunction.Sum(plage)
    moyenne = somme / (derligne - 1)
    End Sub

  3. #3
    Membre émérite Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Points : 2 662
    Points
    2 662
    Par défaut
    Salut,
    D'après ce que tu explique, je crois qu'on peut utiliser SousTotal, voici l'exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Moyenne()
     
    'Défini la dernière ligne quelque soit la version Excel car XL2007 >65536 lignes
    DerniereLigne = Cells(Columns(1).cells.count,1).End(xlUp).Row
    'Affecte la moyenne calculée sur la plage de A2 à Ax à la variable MaMoy
    MaMoy = Application.Subtotal(1, Range(Cells(2, 1), Cells(DerniereLigne, 1)))
     
    End Sub
    A+

  4. #4
    Membre actif
    Inscrit en
    Août 2009
    Messages
    284
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Août 2009
    Messages : 284
    Points : 283
    Points
    283
    Par défaut
    Il faut préciser le type de sous total que l'on veut genre:
    xlsum ou xlaverage.
    Le problème de la prise en compte des champs vides ne sera pas résolu. Ils ne seront pas pris en compte.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 87
    Points : 38
    Points
    38
    Par défaut Impec
    Merci beaucoup! J'ai choisi ce que Diude54 me proposait car ça prend en compte les lignes vides comme étant égales à 0.

    Super, merci beaucoup!!!
    Bonne journée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 13/12/2014, 00h54
  2. Comment calculer la moyenne sur une colonne selon un critère
    Par Contact2012 dans le forum Requêtes
    Réponses: 3
    Dernier message: 18/06/2010, 16h07
  3. code pour calculer moyenne d'une colonne
    Par ti_angelo dans le forum VBA Access
    Réponses: 3
    Dernier message: 18/09/2008, 13h46
  4. Trouver le code VBA de la moyenne d'une colonne d'un tableau
    Par Valérie32 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/06/2008, 12h37
  5. comment modifier le nom d'une colonne via VBA?
    Par Invité dans le forum Access
    Réponses: 6
    Dernier message: 24/11/2005, 15h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo