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 :

Moyenne avec cellules variables


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2011
    Messages : 94
    Points : 72
    Points
    72
    Par défaut Moyenne avec cellules variables
    Bonjour à tous,

    J'aimerai savoir s'il est possible de faire la fonction moyenne avec des cellules paramétrés.
    Le code ci-dessous sera plus claire, cependant il ne fonctionne pas...

    Mercipour vos réponses

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sheets("test").Activate
    Dim i As Integer
    i = 13
    Cells(77, i) =Application.WorksheetFunction.Average((Cells(59, i), Cells(65, i), Cells(68, i), Cells(71, i), Cells(74, i))

  2. #2
    Membre émérite
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Points : 2 657
    Points
    2 657
    Par défaut
    En espérant que ça réponde à ta question :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub avrg()
    Dim i As Integer
     
    i = 1
     
    With Worksheets("test")
        Cells(6, i) = Application.WorksheetFunction.Average(Cells(1, i).Value, Cells(2, i).Value, Cells(3, i).Value, Cells(4, i).Value, Cells(5, i).Value)
    End With
     
    End Sub
    Tiens moi au courant !

  3. #3
    Membre éprouvé Avatar de issoram
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 665
    Points : 929
    Points
    929
    Par défaut
    Bonjour,

    Pourquoi utiliser Average?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim i as Integer
     
    i = 13
     
    With Sheets("test")
        .Cells(77, i) = (.Cells(59, i).Value + .Cells(65, i).Value + .Cells(68, i).Value +. Cells(71, i).Value + .Cells(74, i).Value)/5
    End With

  4. #4
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2011
    Messages : 94
    Points : 72
    Points
    72
    Par défaut
    Merci Kimy, le code marche bien cependant lorsqu'il y une cellule vide dans celles citées le code ne peut faire la moyenne. Y a t il un solution?

    Issoram, j'utilisé ce code avant, cependant il se peut que certaines des cellules citées soient vides du coup on ne peut divisé par 5

    Merci encore pour votre aide

  5. #5
    Membre émérite
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Points : 2 657
    Points
    2 657
    Par défaut
    Dirty fix :
    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
    Sub avrg()
    Dim i As Integer
    Dim nb As Integer
    Dim tot As Integer
    i = 13
     
    With Worksheets("test")
        nb = 0
        tot = 0
        For j = 0 To 5
            If j <> 1 Then
                If .Cells(59 + (3 * j), i) <> "" Then
                    tot = tot + .Cells(59 + (3 * j), i)
                    nb = nb + 1
                End If
            End If
        Next j
     
        If nb <> 0 then
            Cells(59 + (3 * j), i) = tot / nb
        End If
     
    End With
     
    End Sub
    En espérant que ça te convienne pour autant.

  6. #6
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2011
    Messages : 94
    Points : 72
    Points
    72
    Par défaut
    Bonjour,

    Merci pour ta réponse Kimy.
    Je viens de l'adapter et ca marche, je vais cependant essayer de voir s'il n'y a pas plus rapide.

    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
    Dim deno As Integer
    deno = 0
    If Cells(53, i) > 0 Then
    deno = deno + 1
    End If
    If Cells(56, i) > 0 Then
    deno = deno + 1
    End If
    If Cells(59, i) > 0 Then
    deno = deno + 1
    End If
    If Cells(62, i) > 0 Then
    deno = deno + 1
    End If
    If Cells(65, i) > 0 Then
    deno = deno + 1
    End If
    If Cells(68, i) > 0 Then
    deno = deno + 1
    End If
     
     
    Cells(71, i) = (Cells(53, i) + Cells(56, i) + Cells(59, i) + Cells(62, i) + Cells(65, i) + Cells(68, i)) / deno

  7. #7
    Membre émérite
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Points : 2 657
    Points
    2 657
    Par défaut
    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
    Sub avrg()
    Dim i As Integer
    Dim nb As Integer
    Dim tot As Integer
    i = 13
     
    With Worksheets("test")
        nb = 0
        tot = 0
        For j = 0 To 5
            If .Cells(53 + (3 * j), i) <> "" Then
                tot = tot + .Cells(53 + (3 * j), i)
                nb = nb + 1
            End If
        Next j
     
        If nb <> 0 then
            Cells(53 + (3 * j), i) = tot / nb
        End If
     
    End With
    End Sub
    Voila pour les cells que tu présentes !

Discussions similaires

  1. Ecriture matricielle avec cellule variable
    Par diego45 dans le forum Excel
    Réponses: 4
    Dernier message: 27/04/2015, 15h02
  2. Fonction somme avec cellules variables
    Par juxci dans le forum Excel
    Réponses: 5
    Dernier message: 11/02/2015, 17h16
  3. [XL-2010] Formule avec cellule variable
    Par Aurel51 dans le forum Excel
    Réponses: 5
    Dernier message: 29/11/2013, 17h44
  4. [XL-2007] Ecriture somme avec cellule variable
    Par toushusss dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/06/2011, 12h22
  5. Tb array avec cellules variables
    Par teddy72000 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 14/04/2011, 22h07

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