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 :

Faire la moyenne de cellules (nombre variable de cellules) [Toutes versions]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    ingénieur CVC
    Inscrit en
    Octobre 2018
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : ingénieur CVC
    Secteur : Transports

    Informations forums :
    Inscription : Octobre 2018
    Messages : 9
    Par défaut Faire la moyenne de cellules (nombre variable de cellules)
    Bonjour,

    Je cherche à calculer la moyenne de cellules entre deux cellules vides (cf. fichier PJ).

    Etant débutant en VBA, je ne maîtrise pas encore tout ce qui est boucles while, with, etc. Mais je pense que la solution est quelque part dans ces boucles.

    Quelqu'un peut-il m'éclairer ?

    Merci d'avance.
    Fichiers attachés Fichiers attachés

  2. #2
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Bonjour le fil, bonjour le forum,

    Bennasr a été plus rapide mais comme je me suis aussi penché sur ton problème je me permets de te proposer mon code :

    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
    Sub Macro1()
    Dim O As Worksheet 'déclare la variable O (Onglet)
    Dim PLV As Long 'déclare la variable PLV (Première Ligne Vide)
    Dim TV As Variant 'déclare la variable TV (Tableau des valeurs)
    Dim I As Long 'déclare la variable I (Incrément)
    Dim J As Integer 'déclare la variable J (incrément)
    Dim S As Double 'déclare la variable S (Somme)
     
    Set O = Worksheets("Feuil1") 'définit l'onglet O
    PLV = O.Cells(Application.Rows.Count, "A").End(xlUp).Row + 1 'définit la première ligne vide PLV en fin de colonne A dans l'onglet O
    TV = O.Range("A1:B" & PLV) 'définit le tableau des valeurs TV (prévision de la colonne B pour inscrire les moyennes)
    On Error Resume Next 'gestion des erreurs, en cas d'erreur passe à la ligne suivante (deux lignes vides consécutives génèrent une erreur...)
    For I = 3 To PLV 'boucle sur les lignes 3 à DL
        If TV(I, 1) <> 0 Then 'condition : si la donnée ligne I colonne 1 n'est pas vide
            TV(I, 2) = "" 'définit la donnée ligne I colonne B (vide)
            S = S + TV(I, 1) 'définit la somme S
            J = J + 1 'incrémente la variable J
        Else 'sinon
            TV(I, 2) = S / J 'renvoie la moyenne S divisée par J dans la donnée ligne I colonne 2
     
            'ou si tu préfères une moyenne arrondie
            'TV(I, 2) = Round(S / J, 2) 'renvoie la moyenne (arrondie à deux chifres après la virgule) S divisée par J dans la donnée ligne I colonne 2
     
            S = 0: J = 0 'réinitialise les variable S et J
        End If 'fin de la condition
    Next I 'prochaine ligne de la boucle
    O.Range("A1").Resize(PLV, 2).Value = TV 'renvoie dans la cellule redimensionnée A1 de l'onglet O le tableau des valeurs TV
    End Sub

  3. #3
    Membre averti
    Homme Profil pro
    ingénieur CVC
    Inscrit en
    Octobre 2018
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : ingénieur CVC
    Secteur : Transports

    Informations forums :
    Inscription : Octobre 2018
    Messages : 9
    Par défaut
    Merci, ça marche nickel, merci pour tes explications en plus.
    Je vais me pencher dessus pour comprendre la logique.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 31/08/2014, 18h16
  2. [XL-2003] Récupérer dans une cellule des caractères à nombre variable
    Par crizelle dans le forum Excel
    Réponses: 2
    Dernier message: 21/02/2014, 17h57
  3. Réponses: 24
    Dernier message: 24/06/2010, 11h48
  4. Somme sur nombre variable de cellule
    Par Aulanh dans le forum Excel
    Réponses: 4
    Dernier message: 28/04/2009, 16h16
  5. [VBA-E] faire la moyenne et afficher dans une cellule
    Par tibss dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 15/05/2006, 17h03

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