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 :

compter le nombre d'arguments [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Homme Profil pro
    Restaurateur
    Inscrit en
    Juin 2008
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Restaurateur
    Secteur : Alimentation

    Informations forums :
    Inscription : Juin 2008
    Messages : 316
    Billets dans le blog
    1
    Par défaut compter le nombre d'arguments
    Bonjour,
    j'aimerai pouvoir compter le nombre d'argument dans une cellule excel..
    du type (+12+12+14) donnerai le resultat de 3 puisque 3 chiffres sont additionés..
    et ensuite pouvoir avoir comme données : nombre de 12 2,
    nombre de 14 1
    puisque le chiffre 12 est utilisé 2 fois et le chiffre 14 une seule fois..

    est ce possible,
    vers quel fonction, il faut que j'aille...
    merci enormement..

    Julien

  2. #2
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour,

    Dans l'éditeur vba, tu fais affichage, Explorateur d'objets, dans la colonne Classes, tu descend pour cliquer sur Strings, dans les membres de strings tu as tout ce qu'il faut, tu surlignes un élément et tu appuies sur F1 => l'aide jaillit.

    vois en particulier InStr et InStrRev, Len, Mid , right left.

    tu auras peut-être intérêt à te construire des fonctions à partir de ça, il y tout ce qu'il faut dans les tutos Excel du forum

    Il existe peut-être des fonctions natives plus proches, mais ça ne me vient pas à l'esprit..

    cordialement,

    Didier

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 102
    Par défaut
    Bonsoir

    Un exemple de code pour compter le nombre de valeurs numériques.

    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
     
    Function compter(cellule_avec_valeur As Range)
    If cellule_avec_valeur = "" Then
        compter = 0
        Exit Function
    End If
    Dim i As Integer
    Dim i1 As Byte
    Dim premier As Boolean
    Dim suivant As Boolean
    Dim val1 As String
     
    val1 = CStr(cellule_avec_valeur.Value)
    For i = 1 To Len(CStr(cellule_avec_valeur.Value))
        ' on recherche la première position
        If IsNumeric(Mid(val1, i, 1)) Then
        ElseIf premier = True Then ' la valeur n'est pas numérique
            i1 = i1 + 1
            premier = False
            suivant = True ' pour sauter le test suivant
        End If
     
        If IsNumeric(Mid(val1, i, 1)) And premier = False And premier = False Then premier = True
     
        suivant = False
    Next i
    If premier = True Then i1 = i1 + 1
    compter = i1
    End Function
    A tester

    JP014

  4. #4
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour,

    Selon le contexte exact de djoumusic, perso, je me baserai plus sur la détection de ses séparateurs (le + dans son exemple, mais ça peut varier) pour isoler ce qu'il y a entre les deux (d'où InStr)...

    Si, ce qui n'est pas précisé ici, il y a un nombre à virgule, ta fonction jp014 va décompter un item de plus etc...


    cordialement,

    Didier

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 102
    Par défaut
    Bonsoir

    Citation Envoyé par Ormonth Voir le message
    Bonjour,

    Selon le contexte exact de djoumusic, perso, je me baserai plus sur la détection de ses séparateurs (le + dans son exemple, mais ça peut varier) pour isoler ce qu'il y a entre les deux (d'où InStr)...

    Si, ce qui n'est pas précisé ici, il y a un nombre à virgule, ta fonction jp014 va décompter un item de plus etc...


    cordialement,

    Didier
    Le problème est de savoir si une virgule est un séparateur de valeur ou si elle fait partie de la valeur numérique.

    Bon Week end
    JP

  6. #6
    Membre éclairé

    Homme Profil pro
    Restaurateur
    Inscrit en
    Juin 2008
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Restaurateur
    Secteur : Alimentation

    Informations forums :
    Inscription : Juin 2008
    Messages : 316
    Billets dans le blog
    1
    Par défaut
    merci a vous gtous,
    je vais essayer vos exemples..
    les chiffres a virgules, ne represente qu'un nombre..
    2,65 = 1

    cdt

    le message et surtout le code de mercatog, est le bon...
    c'est super !
    il ne me manque plus qu'a detailler l'interieur de ma celle...
    j'entend par là
    pour voir dire si dans ma cellule le calcul est +9+9+6+6+3
    que j'ai
    nombre de 9 = 2
    nombre de 6 = 2
    nombre de 3 = 1

    vous avez une idée ??

  7. #7
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    combien d'arguments donnera 4.5+6.12 ?

    ma proposition pour trouver le nombre d'arguments
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Public Function NbNum(Rng As Range) As Integer
    Dim Tablo, Sign, Contenu
    Dim i As Byte
    Sign = Array("=", "+", "-", "*", "/")
    Contenu = CStr(Rng.Formula)
    If IsNumeric(Left(Contenu, 1)) Then NbNum = 1
    For i = 0 To UBound(Sign)
        If InStr(Contenu, Sign(i)) > 0 Then
            Tablo = Split(Contenu, Sign(i))
            NbNum = NbNum + UBound(Tablo)
        End If
    Next i
    End Function

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

Discussions similaires

  1. Comment compter le nombre de lettre identique ?
    Par divableue dans le forum ASP
    Réponses: 3
    Dernier message: 07/11/2003, 15h01
  2. Compter le nombre de page d'un report
    Par ToYonos dans le forum C++Builder
    Réponses: 4
    Dernier message: 17/06/2003, 09h36
  3. compter le nombre de record
    Par pram dans le forum XMLRAD
    Réponses: 2
    Dernier message: 12/03/2003, 09h53
  4. [TListView] Compter le nombre de lignes
    Par agh dans le forum Composants VCL
    Réponses: 2
    Dernier message: 30/09/2002, 20h25
  5. Compter le nombre ligne listée (COUNT) ?
    Par StouffR dans le forum Langage SQL
    Réponses: 7
    Dernier message: 02/09/2002, 09h41

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