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 :

[E-07] Problème moyenne, min, max


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5
    Points : 3
    Points
    3
    Par défaut [E-07] Problème moyenne, min, max
    Bonsoir !

    Eh oui, même à cette heure avancée je planche toujours sur mon projet excel

    J'en profite donc pour venir poser une petite question aux professionnels que vous êtes !!!

    Donc, ce que je cherche à faire est plutôt simple je pense, mais je n'ai pas trouvé de réponse !

    Le principe : je choisis le nom d'un groupe (A, B, C, ...) dans une liste déroulante, qui va me choisir des données dans un tableau à l'aide d'un filtre.

    J'ai écris un début de code pour que quand je clique sur un bouton, sous ces noms apparaissent dans des cellules le texte : "Moyenne", "Minimum", "Maximum".

    Ce qu'il me reste à faire, c'est afficher la moyenne, min et max de la colonne justement !!!

    Le code est le suivant :

    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
    32
    Private Sub CommandButton1_Click()
     
    Application.ScreenUpdating = False
     
    Range("D12").Select
     
    Do
    If ActiveCell = "" Then
    GoTo moyenne
    End If
     
    If ActiveCell <> "" Then
    ActiveCell.Offset(1, 0).Select
    End If
     
    Loop Until ActiveCell.Value = ""
     
    moyenne:
    ActiveCell.Offset(1, 1).Select
    ActiveCell.Value = "Note Minimum"
    ActiveCell.Offset(1, 0).Select
    ActiveCell.Value = "Note Maximum"
    ActiveCell.Offset(1, 0).Select
    ActiveCell.Value = "Note Moyenne"
    ActiveCell.Offset(0, 1).Select
     
     
     
     
    Application.ScreenUpdating = True
     
    End Sub
    Mon tableau est de la forme :

    Code(C11)/Elève/Groupe/Marketing/Finance/Economie/Droit/Statistiques/Comptabilité

    Je vous remercie !!!

  2. #2
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    Bonjour !

    J'espère que, dans ton école, les élèves sont meilleurs que moi, et/ou que les profs donnent de meilleures explications que les tiennes, car, personnellement, je n'ai pas compris grand-chose de ce que tu as écrit, ni même de ton code...

    Tu veux voir la moyenne/min/max de quoi (???) d'un groupe (un groupe d'élèves de ton tableau je suppose : colonne groupe)

  3. #3
    Membre éprouvé
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Points : 1 191
    Points
    1 191
    Par défaut
    Bonjour,

    pour compléter les questions à Maxence...:

    - Tu fais la moyenne de quoi ? toutes les colonnes : (Marketing/Finance/Economie/Droit/Statistiques/Comptabilité), une moyenne par matiére où une moyenne globale

    - Ton filtre : c'est le filtre de donnée automatique d'excel ? et ta liste de choix de groupe viens bien de la ?

    - Ton code ressemble à une utilisation abusive de l'enregistreur de macro, évite les select , activate ... ActiveCell , dis nous où tu met le résultat, toujours à partir de D12 ? + offset(1,1) => E13?
    par exemple , pour poser le titre de tes lignes.:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     Dim yaC As Range 'Cellule initiale
     Set yaC = Range("D12")
     yaC.Offset(1, 1) = "Note Minimun"
     yaC.Offset(2, 1) = "Note Maximum"
     yaC.Offset(3, 1) = "Note Moyenne"

    tu dis quoi..

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Bon, déja, pour remettre les choses dans le contexte, je suis un élève en école de commerce, pas d'informatique... J'ai commencé VBA il y a exactement 3 jours, donc bon, c'est peut être normal si j'en fais une utilisation étrange

    Ce que je cherche à faire est de calculer les moyennes des colonnes finance, marketing, etc. qui contiennent toutes des notes (au format nombre).

    Le filtre a été fait grâce au filtre automatique de Excel, que j'ai un peu bidouillé par la suite dans VBA.

    Mais comprenez bien que tout ce que je fais n'est QUE du bidouillage, pour l'instant je découvre !!!

    Donc, les moyennes, min et max de chaque colonne, doivent s'écrire dans la colonne en face de là où va s'écrire "Note Moyenne", "Note min", et "Note max", qui sont respectivement dans la Colonne "E", mais dans des lignes différentes suivant le nombre d'élèves affichés dans ma colonne "D".

    C'est pour cela que je lui demande de trouver une cellule vide, avant d'inscrire "Note Moyenne", etc.

    Ensuite, donc, je veux faire apparaitre en face de cela, les moyennes etc. de chaque matière, donc pour CHAQUE colonne (de F à K) en partant des premières données (ligne 12).

    Je ne sais pas si je suis plus clair...

    Un petit screenshot valant mieux qu'un long discours...




    Et là c'est ce qui se passe une fois cliqué sur le bouton "Informations complémentaires " :





    Désolé si c'est mal expliqué, j'ai vraiment du mal :/

  5. #5
    Membre éprouvé
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Points : 1 191
    Points
    1 191
    Par défaut
    Le forum permet de stocker des images voir Images & Albums à gauche...
    je n'ai pas accès à imageHAck... bloqué par mon firewal d'entreprise..



    Je n'ai pas vu une réponse, le nombre de ligne peu-t'il changer, ou les cellules E13 à E15 sont t'elles toujours libres pour le résultat ..?

  6. #6
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    Hello

    Alors, tu n'as pas besoin de macros ou de VBA pour cela
    Regardes donc du côté de la fonction SOUS.TOTAL
    Et surtout, va lire l'aide ! Tu verras qu'il y a certainement ta solution

Discussions similaires

  1. moyenne des notes, min, max
    Par abbaplatin dans le forum C++Builder
    Réponses: 4
    Dernier message: 31/12/2018, 14h35
  2. Problème algo min max IA Puissance 4
    Par sevann71 dans le forum C++
    Réponses: 2
    Dernier message: 11/01/2015, 13h22
  3. Réponses: 3
    Dernier message: 16/07/2013, 15h07
  4. Réponses: 1
    Dernier message: 28/11/2008, 16h21
  5. Fonctions statistiques (moyenne, min, max)
    Par mashu dans le forum Modules
    Réponses: 2
    Dernier message: 26/11/2008, 17h02

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