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 :

Vérifier le format réel d'une cellule


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Juin 2008
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 11
    Par défaut Vérifier le format réel d'une cellule
    Bonjour je n'arrive pas a recuperer le format d'une cellule, je m'explique par un exemple

    créer une feuille excel,
    mettre la case A1
    le format de cellule "nombre"
    écrire 2 dedans

    ensuite créer une macro
    dedans mettre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim Frt As String
        Range("A").Select
        Frt = Selection.NumberFormat
        MsgBox "le format est : " & Frt

    ça affiche le format est 0.00
    maintenant on va forcer la cellule en texte en modifiant le 2
    remplacer 2 par '2

    l'apostrophe forcant le format texte

    relancer la macro, elle affiche toujours
    le format est 0.00
    le resultat attendu aurait du etre @ pour du texte non?

    merci de votre aide

  2. #2
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,

    Lorsque tu écris du texte dans une cellule dont le format est "nombre" ou n'importe quel autre format (monétaire, pourcentage, date, etc...), ce texte ne tient pas compte du format de la cellule et le format de la cellule ne change pas pour autant.

    Mettre un apostrophe devant un nombre ne veut pas dire "force la cellule au format texte" mais "ignore le format et considère le nombre comme un texte".

  3. #3
    Membre habitué
    Inscrit en
    Juin 2008
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 11
    Par défaut
    OK, mais alors petite question, je vais essayer d'être clair.

    je mets ma case A1 en nombre, dedans je rentre 1

    je mets ma case A5 en texte, dedans je rentre 1 (on voit que le nombre est stocké au format texte)

    dans ma case A2, je fais un rechercheV de A1 sur la case A5, normal il ne me trouve NA car A1 nombre et A5 texte.

    Je vais un clic droit sur A1, je change le format en texte, et cela, malgré le format texte le rechercheV ne retourne rien.

    pour que le rechercheV marche il faut que je mette '1 dans A1.

    pourrais tu m'expliquer cela?

  4. #4
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Que cherches tu à faire exactement ?

    Jette un oeil dans l'aide excel sur l'utilisation de la fonction RECHERCHEV, à première vue tu ne l'utilises pas correctement et pas à bon escient.

  5. #5
    Membre habitué
    Inscrit en
    Juin 2008
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 11
    Par défaut
    Bonjour,

    Je pense bien maitriser excel, je viens justement ici pour des questions assez techniques qui vont plus loin que l'utilisation d'un rechercheV.

    je pense qu'un exemple sera plus parlant, donc je te mets en pièce jointe le fichier.

    la colonne A est en format nombre
    la J en texte, et en B on a le rechercheV (qui est fonctionnel)

    ma question très simple est pourquoi le fait de mettre la case A1 en texte via clic droit, format, format texte, ne permet pas d'obtenir de valeur dans le rechercheV.

    mais que le fait de mettre une ' permet d'obtenir une valeur dans la colonne B

    merci de ton aide

    Cdt
    Fichiers attachés Fichiers attachés

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut amau96 et le forum
    A1 format standard, A5 format Texte => on met 1 dans A1 et A5
    Le contenu de A1 est défini en double (8 octets)
    Le contenu de A5 est défini en texte (2 octets) - les nombres d'octets ne sont pas forcément exacts, mais servent à faire comprendre
    si tu demandes une comparaison, même si tu vois la même chose en A1 et A5, Excel ne voit que 2 valeurs différentes.
    Si tu change le format de A1 (ou A5), tu ne changes pas la valeur des cellules, juste la manière dont tu affiches ces valeurs.
    Si Tu changes A1 en format texte et que tu rentres la valeurs 1, tu verras que la comparaison donne Vrai.

    Il faut toujours garder à l'esprit que la manière dont tu visualises une cellule depend d'une valeur et d'un format. Excel ne s'occupe que de la valeur et pas du format.
    A+

  7. #7
    Membre habitué
    Inscrit en
    Juin 2008
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 11
    Par défaut
    ok, ca commence a confirmer ce que je pensais.

    maintenant, on va prendre le cas concret d'un fichier excel que je récupère, j'ai 100000 lignes, ma première colonne est en nombre, je voudrais du texte, concrètement, le fait de mettre le format texte la colonne ne change rien, on est d'accord? le rechercheV ne marchera pas.

    c'est bien cela?

    Donc pour revenir à ma question d'ouverture du topic,

    vu comme tu le dis, changer le format de la case ne change pas la valeur, est il possible en VBA de tester une cellule pour savoir qu'elle est le réel format de la valeur et non pas le format de la cellule?

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Bien sûr on peut tester en VBA, mais comme au départ vous ne vouliez pas utiliser VBA, vous pouvez à priori utiliser une formule :

    -dans une colonne libre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(ESTNUM(A1);CTXT(A1;0;0);A1)
    après avoir copié cette formule sur toutes les lignes, il ne reste plus qu'à faire un "copier" puis "collage spécial", "valeurs" dans la colonne d'origine.

Discussions similaires

  1. Format conditionnel d'une cellule
    Par Xibalba dans le forum Excel
    Réponses: 6
    Dernier message: 14/11/2010, 20h38
  2. Réponses: 5
    Dernier message: 20/08/2010, 10h01
  3. [XL-2007] Comment vérifier la première lettre d'une cellule?
    Par mentat dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 31/01/2010, 21h28
  4. Format personalisé d'une cellule
    Par ddanie dans le forum Excel
    Réponses: 7
    Dernier message: 25/08/2007, 11h45
  5. format conditionnel d'une cellule
    Par hicham28 dans le forum Excel
    Réponses: 2
    Dernier message: 08/06/2007, 10h59

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