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 :

Stocker un nombre sous format text en vba


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 302
    Par défaut Stocker un nombre sous format text en vba
    Bonjour,

    Je travail sur des BDD de questionnaire de satisfaction.
    Afin de vérifier les codes de chaque question (ici colonne), j'ai fait une macro qui fait une liste exhaustive (La casse prise en compte) de chaque colonne dans une nouvelle feuille avec leur effectifs (Dédoublonnage par colonne et comptage).

    Ma macro fonctionne parfaitement sauf pour les nombres stocké sous format txt.
    En faite elle marche puisque si dans une colonne j'ai le nombre 6 (stocké en nombre) et 06 (stocké en txt), je me retrouve dans ma liste exhaustive avec deux 6. L'un avec les effectifs de celui stocké en nombre et l'autre avec celui stocké en txt.
    Moi je voudrai que le 6 stocké en txt reste dans ma liste exhaustive stocké en txt et donc qu'il s'affiche 06 au lieu de 6.

    Comment je peux faire?

    Il faudrait que j'arrive a savoir si la valeur de la cellule est un nombre (ca facile) stocké en txt (ca je ne sais pas).
    Et si oui, faire en sorte que ma la valeur dans ma liste exaustive soit un nombre stocké en txt.

    Merci de votre aide.

  2. #2
    Membre Expert
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Par défaut
    Bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub tt()
    Set c = Cells(1, 1)
    c.NumberFormat = "@"
     
    c.Value = "06"
     
    If IsNumeric(c.Value) Then
     If TypeName(c.Value) = "String" Then
      MsgBox "Stocke en Texte " & c.Value
     End If
    End If
    End Sub

  3. #3
    Membre chevronné
    Homme Profil pro
    Ingénieur Industrialisation
    Inscrit en
    Mai 2015
    Messages
    222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Industrialisation
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2015
    Messages : 222
    Par défaut
    Je ne sais pas si tu connais les fonctions de conversion de données :
    Celles qui pourraient t'intéresser :

    →CStr(valeur) (convertit une valeur (nombre, booléen, date) en texte)
    →CInt(string) (convertit une string en nombre entier. Voir CSng pour single, CDbl pour double, CLng pour long, etc)
    Bien sûr, il faut dans le cas des CInt et autres que la string puisse être acceptée en tant que nombre ! Sinon erreur N'hésite pas du coup à faire quelque chose comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim StringExemple As String
    Dim Nombre As Integer
     
    StringExemple = "06"
     
    If IsNumeric(StringExemple) Then
        Nombre = CInt(StringExemple)
    Else
        Msgbox "La valeur " & StringExemple & " ne peut pas être convertie en nombre entier."
    End If
    N'hésite pas non plus à jouer avec le format, exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim ValeurTest
    ValeurTest = 6 'donc ici ce sera bien un nombre
    If IsNumeric(ValeurTest) Then ValeurTest = Format(ValeurTest,"00") 'ici ValeurTest devient une string : "06"
    MsgBox ValeurTest 'juste pour vérifier...
    Je ne sais pas si ça peut t'aider, je dis ça comme ça

  4. #4
    Membre Expert
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Par défaut
    Lorsque tu transf'ères une donnée dans une autre cellule, il est important, pour que la donnée ne soit pas modifiée par Excel, d'utiliser la fonction COPY ou, sinon, il faut bien définir la propriété NumberFormat de la cellule destination avant d'y écrire la valeur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub tt()
     Set c = Cells(1, 1)
     
    If IsNumeric(c.Value) Then
     If TypeName(c.Value) = "String" Then
     Cells(1, 2).NumberFormat = "@"
    Else
     Cells(1, 2).NumberFormat = "General"
    End If
      Cells(1, 2).Value = c.Value
     End If
     
    End Sub

Discussions similaires

  1. [XL-2007] Nombre stocké sous format texte
    Par locosr dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 17/05/2011, 22h17
  2. Nombre stocké sous format texte
    Par oliver75 dans le forum Macros et VBA Excel
    Réponses: 28
    Dernier message: 22/07/2009, 13h40
  3. Probleme complexe nombre au format texte
    Par goodsayan dans le forum Excel
    Réponses: 2
    Dernier message: 08/11/2007, 11h52
  4. Réponses: 5
    Dernier message: 10/07/2007, 09h43
  5. afficher un nombre sous format binaire?
    Par sofiane44 dans le forum C++
    Réponses: 2
    Dernier message: 20/01/2006, 18h47

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