VIVEZ LE
FOOTBALL !

Posez votre question Signaler

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

Thiby - Dernière réponse le 16 mai 2011 à 06:35
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 :)
Lire la suite 

[Excel VBA] Formater une cellule en texte »

13 réponses
Réponse
+9
moins plus
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
Ajouter un commentaire
Réponse
+1
moins plus
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
Ajouter un commentaire
Réponse
+1
moins plus
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
Ajouter un commentaire
Réponse
+1
moins plus
Comment sont entré tes nombres? Manuellement? Par un userform? Par une macro?
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
Impeccable çà marche Lupin!
Grand Merci!
Fallait la connaitre celle-là...
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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
-Shadow-- 16 mars 2008 à 20:15
Fais un nouveau topic, personne ne viendra sur ce topic périmé de 1 an.
Ajouter un commentaire
Réponse
+0
moins plus
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
chossette9- 16 juil. 2010 à 09:29
Hum... espérons pour la personne qu'elle ait trouvé depuis 2 ans...
CHARLESNSALA - 16 juil. 2010 à 09:42
suis disposé pour autres questions
holden - 16 mai 2011 à 06:35
as-tu reçu des remerciement depuis ? lol
Ajouter un commentaire
Ce document intitulé « [Excel VBA] Formater une cellule en texte » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?