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 :

[VBA-E] problème de calcul de moyenne


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 179
    Points : 58
    Points
    58
    Par défaut [VBA-E] problème de calcul de moyenne
    Bonjour, j'ai un tableau qui se présente ainsi :
    - colonne A : les horaires avec un intervalle de 30 minutes entre chaque valeur ;
    - colonne B : des valeurs mesurées correspondantes.

    Je cherche à réaliser des moyennes sur 30 minutes sachant que dans certains cas des valeurs n'ont pas été mesurées.

    par exemple, si dans une série de 30 minutes, aucune valeur n'a été mesurée en 26, 27, 28, 29, 30, 31 et 32 èmes minutes, on fait la moyenne sur les 25 premières minutes puis on cherche la prochaine valeur mesurée et on cherche à faire une moyenne sur 30 minutes ainsi de suite jusqu'à la fin de la colonne A.

    A la fin cela me permet d'avoir un tableau de synthèse du type :
    - moyenne sur xxx minutes de ... à ... = yyy
    - moyenne sur xxx minutes de ... à ... = yyy

    etc...

    Mais là j'avoue que je suis franchement perdu

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 137
    Points : 130
    Points
    130
    Par défaut
    Personnellement, je suis aussi perdue, je n'ai rien compris.
    Tu n'aurais pas une exemple concret avec des données car je n'arrive pas à visualiser ton tableau...

  3. #3
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Il est vrai qu'il y a contradiction entre:
    - colonne A : les horaires avec un intervalle de 30 minutes entre chaque valeur
    et
    par exemple, si dans une série de 30 minutes, aucune valeur n'a été mesurée en 26, 27, 28, 29, 30, 31 et 32 èmes minutes,
    L'intervalle est-il de 30 minutes ou d'une minute (même s'il y a des trous)?
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  4. #4
    Membre éclairé
    Inscrit en
    Septembre 2005
    Messages
    617
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 617
    Points : 733
    Points
    733
    Par défaut
    tu fais :

    Et la ca ne tient compte que des valeurs non nulles

    ex:
    2
    2


    3

    4
    4

    !moyenne donnera 3
    N'oubliez pas de mettre le

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 179
    Points : 58
    Points
    58
    Par défaut
    Merci Vesta, en effet c'est tout le plus simple.

    Néanmoins petite question, en VBA je vais lui demander de faire cela toutes les 30 minutes à l'aide d'ne boucle Pour.

    Mais comment lui faire comprendre qu'il s'agit d'heures.
    Exemple : valeur de la première cellule + 30 minutes

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Si tu peux tirer quelque chose de ça... avec 35 dans cell(1,1)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MsgBox TimeSerial(0, Cells(1, 1).Value + 30, 0) '=> 01:05:00
    A+

  7. #7
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Comme je n'ai rien à faire, je reprends pour délayer un peu...

    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
    29
    30
    31
     
    Sub Démarrer()
    Dim i as double, ok as integer
        Cells(1, 2).Select
        LancerLesMesures
        'ici la procédure continue et ne sera interrompue que dans 30 mn
        '... alors si tu as aut'chose à faire ^^
    End Sub
     
    Sub LancerLesMesures()
     
        'Simulation des mesures ***********
        Randomize
        For i = 1 To 32
            Cells(i, 1) = Int(Rnd * 32) + 1
        Next
        '*****************************
     
        Cells(ActiveCell.Row, 2).FormulaLocal = "=Moyenne(A2:A32)"
        Cells(ActiveCell.Row, 2).Value = Cells(ActiveCell.Row, 2).Value ' Colle la valeur
        'pour conserver la valeur à un instant T, la formule doit être remplacée par cette valeur
        Cells(ActiveCell.Row, 3).Value = Format(Now, "hh:nn:ss") 'insère l'heure de la mesure
        If MsgBox("Si tu réponds assez vite, la prochaine mesure aura lieu à " & TimeValue(Now) + TimeValue("00:30:00") & _
            vbCrLf & "Arrêter les mesures ?", vbYesNo, "") = vbYes Then
                End
            Else
                'Lecture et insertion des mesures
                Application.OnTime Now + TimeValue("00:30:00"), "LancerLesMesures"
        End If
        Cells(ActiveCell.Row + 1, 2).Select
    End Sub
    A+

Discussions similaires

  1. [XL-2007] Calculer la moyenne d'une colonne en VBA. Fonction average?
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 18/08/2009, 10h15
  2. Vba et calcul de moyennes
    Par saneex1984 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/06/2007, 09h00
  3. VBA SQL proble de requete ajout
    Par darkspoilt dans le forum VBA Access
    Réponses: 2
    Dernier message: 21/05/2007, 16h56
  4. Réponses: 3
    Dernier message: 30/06/2006, 09h41
  5. [VBA-E] Copier une formule de calcul dans toute la ligne
    Par kernel57 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/12/2005, 18h18

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