[Excel VBA] Formater une cellule en texte [Résolu/Fermé]

Signaler
-
 holden -
Bonjour,

Tout d'abord merci de vous intéressé à mon petit problème ( de noob, il faut bien le dire...)

Je vous présente les faits. Je cherche désespèrément à formater une cellule d'une feuille excel pour recevoir des chaînes de caractères.

J'ai parcouru pas mal de discussions sur le net sans succès. De plus mon ami Google semble être parti en vacance...

J'explique pourquoi j'ai besoin de cela. Je dispose de nombres du type : 0000573763.
Malheureusement si je place bêtement ces nombres dans la cellule, je vois partir mes "0" sans même me dire au revoir....

Or en définissant les cellules au format texte, je peux garder l'intégralité de mes nombres. Alors j'ai pensé écrire un truc du genre : Cells(ligne, colonne).stringFormat = true;
(Après tout, on peut bien écrire : cells(ligne, colonne).numberFormat= ...)
Mais évidemment c'était trop beau pour fonctionner...

Donc voilà mon petit problème.
En espérant que quelqu'un veuille bien me prêter un cerveau! Merci d'avance :)

9 réponses


Bonjour,

Pour conserver la propriété texte de la cellule, utiliser :

Cells(ligne, colonne).NumberFormat = "@" ' Format Texte

exemple :

Sub CaptureDonnee()

    Dim Valeur As Variant, Donnee As String
    
    Cells(Ligne, colonne) = "@"   'Texte
    
    ' Si vous n'effectuer pas le contrôle
    Donnee = Cells(Ligne, colonne).Value
    
    ' Si vous effectuer le contrôle
    Valeur = Cells(Ligne, colonne).Value
    Donnee = CStr(Valeur)
    
End Sub
'

Lupin
25
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 63550 internautes nous ont dit merci ce mois-ci


slt!
suis très heureux de porter solution a votre problème sans complication.
procedure:
-selectionner la colone en question
-format
-cellule
-Personaliser
-selectionner 0
-Tapez "0" devant le 0
-ok
le problème est resolu
j'attend votre remerciement dans brabantakin@gmail.com
CHARLES NSALA
ADMINISTRATEUR RESEAU
Messages postés
4239
Date d'inscription
lundi 20 avril 2009
Statut
Contributeur
Dernière intervention
12 septembre 2014
1 290
Hum... espérons pour la personne qu'elle ait trouvé depuis 2 ans...

suis disposé pour autres questions
as-tu reçu des remerciement depuis ? lol
Merci pour la réponse, mais le problème c'est que çà affichera des "0" en trop
C'est à dire, je veux exactement le même nombre de "0" que j'ai passé en entrée. Mais évidemment ce nombre est variable. (ben ouais pourquoi faire simple quand on peut faire compliquer)

Donc les nombre suivant doivent apparaitre tel quel :

00000032165
006454
5422
04456
Comment sont entré tes nombres? Manuellement? Par un userform? Par une macro?
voici mon probleme (je debutes )
apres avoir confctionne un tableau , l'avoir mis enforme automatique (facultatif) l'avoir passé au tri croissant et,
utilisé RECHERCHE (x;y:z) jusque la tout va bien J'aimerai pouvoir actualiser la valeur selectionnee par la fonction
RECHERCHE , sans etre obligé de revenir au tableau
J'ai trouvé un debut de solution totalement insatisfaisant puisque il me plonge dans le piege des references
circulaires ; De plus la valeur de mise a jour s'applique quelque soit la valeur extraite par la fonction(c'est logique)
existe -t -il un procede qui non seulement "memorise" la nouvelle valeur du resultat RECHERCHE(..........)
et, de plus effacerai le contenu de la cellule de" mise à jour AUTOMATIQUEMENTa chaque changement de demande


j'ai essaye un tas de fonctions ,des macros ,format conditionnel
peut-on executer une macro sans obligatoirement passer par une commande (bouton.....)
merci de me permettre d'atterrir
Utilisateur anonyme
Fais un nouveau topic, personne ne viendra sur ce topic périmé de 1 an.
Euh je viens de réaliser que j'ai répondu un peu vite.
En fait ta solution fonctionne, puisque je connais la longueur de mon nombre, vu qu'il est stocké en tant que string (enfin bon les type en vba, c'et franchement pas très sérieux...). Mais bon çà m'oblige à faire du cas par cas et c'est franchement pas très beau au niveau code... le top serait de ne réécrire le mon nombre tel quel sans modification aucune... :s
Essaie avec cells(ligne,colonne).NumberFormat = "0000000000" ou le nombre de chiffres que tu veux conserver.

De cette façon, la cellule affichera toujours le nombre de chiffres que tu a spécifié. Dans mon exemple, 121 s'afficherait 0000000121. De plus, c'est toujours un nombre.

Si tu veux des chiffres après la virgule, écrit par exemple NumberFormat = "0000.000"

vb

re :

en fait, l'astuce est de toujours bien connaître le type de la donnée et le type du contenant.

Bonne continuité.

Lupin
Impeccable çà marche Lupin!
Grand Merci!
Fallait la connaitre celle-là...