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 :

Boucle pour comptage [Débutant(e)]


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    233
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 233
    Par défaut Boucle pour comptage
    Bonjour,

    J'ai un tableau excel que je sélectionner et nomme dans ma fonction. Ce tableau contient des valeurs entre 50 et 150.

    Il y a 20 colonnes correspondant à 20 entreprises et 10 lignes correspondant à t=1, t=2 etc.

    Je souhaite savoir si la valeur de l'entreprise est en deçà de 100 ou 80 ou 60 à un moment donné. Je nomme le seuil dans ma fonction y. y est écrit dans une cellule que je sélectionne.

    Pour faire cela, j'ai codé la fonction suivante: elle compile mais le résultat n'est pas escompté.. Elle me compte toutes les entreprises

    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
    Function classeBrownien(x As Range, y As Integer)
     
    'déclaration des variables
    Dim i As Integer
    Dim j As Integer
    Dim somme As Integer
     
    'comptage du nombre de ligne
    N = x.Rows.Count
     
    'comptage du nombre de colonne
    M = x.Columns.Count
     
    'boucle sur les colonnes pour chaque entreprise
    For j = 1 To M
        For i = 1 To N
            If Cells(i, j) < y Then
            somme = somme + 1
            GoTo suite
            Else
            End If
        Next
     
    suite:
     
    Next
     
    classeBrownien = somme
     
    End Function
    Quelqu'un pour me filer un coup de main svp?

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut.

    1. Est-ce un exercice scolaire?
    2. Peux-tu reformuler plus précisément ce que tu souhaites obtenir? C'est quoi la valeur de l'entreprise?

    Dans ta boucle, tu ajoutes 1 chaque fois qu'une cellule est supérieure à y, mais pour toutes les entreprises...

    De plus, il n'est pas nécessaire de boucler pour compter les cellules qui correspondent à la condition (=> d'où ma question sur l'exercice).

    Donc, merci de préciser ce que tu souhaites, éventuellement avec une image jointe.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    233
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 233
    Par défaut
    Bonjour,

    C'est un exercice scolaire car c'est une anticipation d'un exercice d'u exam! Je joins un fichier excel où vous pouvez voir comment le tableau se présente. Il y a 21 entreprises.On simule leur capital réglementaire pendant 10 périodes.

    Ensuite, on souhaite attribuer la note AAA à celle dont le capital reste au dessus de 100 (= valeur initiale), BBB à celle dont le capital ne tombe pas en dessous de 80 etc...

    Ce que je souhaite calculer est le nombre de AAA puis de BBB etc dans l'échantillon.

    Dans ta boucle, tu ajoutes 1 chaque fois qu'une cellule est supérieure à y, mais pour toutes les entreprises...
    C'est pas lorsque une cellule est inférieure à y plutôt?

    N'hésitez pas à me redemander des explications si je ne suis toujours pas clair!

    Merci d'avance!

    Par rapport à ce que tu as ajouté, je viens de voir NB.SI!

    Mais peux-tu quand même m'expliquer ce qui ne va pas dans le code stp?
    Fichiers attachés Fichiers attachés

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Si tu comptes les valeurs <100, tu comptes aussi toutes les valeurs <80, etc...

    Si ta cote est attribuée par rapport à un plancher et un plafond, tu dois tester que la valeur se trouve entre ces deux bornes...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    233
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 233
    Par défaut
    Merci Pierre Fauconnier!
    Je pensais à la base faire des différences mais tu as raison c'est pas top! Par contre, j'ai le même problème avec ce code dans lequel j'ai rajouté un plafond et un plancher:

    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
    Function classeBrownien(x As Range, y As Integer, z As Integer)
     
    'déclaration des variables
    Dim i As Integer
    Dim j As Integer
    Dim somme As Integer
     
    'comptage du nombre de ligne
    N = x.Rows.Count
     
    'comptage du nombre de colonne
    M = x.Columns.Count
     
    'boucle sur les colonnes pour chaque entreprise
    For j = 1 To M
        For i = 1 To N
            If y < Cells(i, j) < z Then
            somme = somme + 1
            GoTo suite
            Else
            End If
        Next i
     
    suite:
     
    Next j
     
    classeBrownien = somme
     
    End Function
    Je trouve 21 entreprises AAA (entre 100 et 150), 21 BBB (entre 80 et 100) et 21 CCC (entre 50 et 80)...

    Je pense que c'est ma somme qui a un pb mais j'arrive pas à voir lequel...

Discussions similaires

  1. [ImageMagick] Une boucle pour ImageLine ?
    Par isa150183 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 26/11/2005, 18h41
  2. Boucle : pour chaque élément d'un ensemble ?
    Par monstroplante dans le forum Langage
    Réponses: 7
    Dernier message: 07/11/2005, 15h45
  3. [MySQL] Boucle pour récuperer les images de la base
    Par tchoukapi dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 06/11/2005, 16h04
  4. boucle pour insérer des enregistrements
    Par roots_man dans le forum ASP
    Réponses: 7
    Dernier message: 05/10/2004, 09h28
  5. Réponses: 2
    Dernier message: 29/05/2002, 20h43

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