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 :

nombre de caractères dans une chaine (Len)


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Technicien Qualité Logiciel
    Inscrit en
    Janvier 2010
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien Qualité Logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 44
    Points : 45
    Points
    45
    Par défaut nombre de caractères dans une chaine (Len)
    Bonjours à tous,

    J'ai un petit soucis ce matin.
    Je suis entrain de créer une macro, mais j'ai du mal à me servir de la fonction "Len"

    Pour tout vous expliquer, je voudrais connaitre le nombre de caractère dans ma variable.
    Donc je me suis dirigé vers le tuto (Manipuler les chaines de caractères en VB6 et VBA) et j'ai trouvé la fonction "Len" qui pouvait répondre à mon attente ^^

    Mais celle-ci me renvoie toujours la même valeur : 2

    Comme ma variable est de type Integer, je les converti en String, mais toujours pareil, donc là je sais plus où chercher :-)
    Je me débrouille peut être mal ^^

    Voilà une partie du code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    'Convertion du n° de scénarion en string
        iNumScenario = CStr(iNumScenario)
     
        'Vérifier la longeur du n° du scénario
        If Len(iNumScenario) = 1 Then
            iLongeurScenario = 1
        ElseIf Len(iNumScenario) = 2 Then
            iLongeurScenario = 2
        ElseIf Len(iNumScenario) = 3 Then
            iLongeurScenario = 3
        End If
    La variable iNumScenario est donc de type Integer (elle reprend le numéro d'un scénario) et je voudrais savoir le nombre de caractère.

    En espérant avoir été précis de mon explication, je vous remercie d'avance pour votre aide.

    Bonne journée.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Rajoute cette ligne

    avant de faire le test pour voir le résultat, de plus est-ce que cette variable est bien déclarée en String ?

    Philippe

  3. #3
    Membre du Club
    Homme Profil pro
    Technicien Qualité Logiciel
    Inscrit en
    Janvier 2010
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien Qualité Logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 44
    Points : 45
    Points
    45
    Par défaut
    Merci pour votre réponse.

    Donc si je mets ma variable dans une msgbox, elle me renvoi bien le numéro de mon scénario.

    A titre d'exemple :
    si ma variable iNumScenario = 5 quand je fais Len(iNumScenario) = 2
    si ma variable iNumScenario = 65 quand je fais Len(iNumScenario) = 2
    si ma variable iNumScenario = 781 quand je fais Len(iNumScenario) = 2

    Pourtant le nombre de caractère est différent :-(
    Pour mettre ma variable iNumScenario en string, je peux faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    iNumScenario = CStr(iNumScenario)

  4. #4
    Invité
    Invité(e)
    Par défaut
    Re

    Cela est bizarre, as-tu déclaré ta variable

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim iNumScenario as String
    Philippe

  5. #5
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    Bjr

    Citation Envoyé par CryoCid Voir le message
    Mais celle-ci me renvoie toujours la même valeur : 2

    Comme ma variable est de type Integer, je les converti en String

    2 est la taille en octet d'un integer

    tu ne convertis pas vraiment en string vu que tu remets la valeur dans la variable de type integer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    iNumScenario = CStr(iNumScenario)
    Cstr converti bien en string, mais c'est reconverti ensuite en integer pour le remettre dans iNumScenario

    plutôt que des if, pourquoi ne pas directement affecter le résultat du len à la variable de longueur?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    iLongeurScenario = Len(CStr(iNumScenario))

  6. #6
    Membre du Club
    Homme Profil pro
    Technicien Qualité Logiciel
    Inscrit en
    Janvier 2010
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien Qualité Logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 44
    Points : 45
    Points
    45
    Par défaut
    Bonjour Arkham46

    Ok je viens de comprendre l'erreur, je te remercie pour la précision au niveau de la conversion ^^

    Ça fonctionne nikel sinon, c'est vrai qu'il n'y avait pas besoin de tout les "If"... :-)

    Si je mets une variable en string ça fonctionne aussi.

    Je vous remercie tous les deux pour votre aide.

    Bonne journée!!!

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

Discussions similaires

  1. [SQL] Compter le nombre de caractères dans une chaine
    Par VuVietHai dans le forum SAS Base
    Réponses: 3
    Dernier message: 08/09/2014, 13h48
  2. Compter le nombre de caractères dans une chaine
    Par Delabrfi dans le forum Langage
    Réponses: 2
    Dernier message: 11/03/2014, 21h28
  3. [WD10] connaitre le nombre de caractères dans une chaine
    Par elscorpio dans le forum WinDev
    Réponses: 3
    Dernier message: 27/07/2010, 09h36
  4. [ksh]Nombre de caractères dans une chaine
    Par tizilfin dans le forum Linux
    Réponses: 3
    Dernier message: 14/10/2007, 12h51
  5. Réponses: 10
    Dernier message: 31/12/2006, 12h35

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