Rechercher : dans
Par :

[Excel VBA] Formater une cellule en texte

Dernière réponse le 16 mar 2008 à 20:15:26 Thiby, le 18 jui 2007 à 18:21:08 
 Signaler ce message aux modérateurs

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 :)

Configuration: Windows XP
Firefox 2.0.0.5

Meilleures réponses pour « [Excel VBA] Formater une cellule en texte » dans :
[Excel] Colorer des cellules sur conditions VoirIl existe dans Excel des fonctions très pratiques mais peu connues et peu utilisées. Exemple : vous souhaitez qu'une cellule se colore automatiquement en rouge (ou autre mise en forme de police, de bordure, de trame) selon une condition : un...
Sélection de cellules VoirSélection de cellules Un tableur est un formidable outil de manipulation de données. Qu’il s’agisse toutefois de référencer des cellules isolées ou des plages de cellules, que ce soit pour les besoins d’une formule, pour leur attribuer un format de...

1

vb, le 18 jui 2007 à 18:55:44
  • +1

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

Répondre à vb

2

Thiby, le 18 jui 2007 à 19:08:05

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

Répondre à Thiby

3

Thiby, le 18 jui 2007 à 19:11:53

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

Répondre à Thiby

4

vb, le 18 jui 2007 à 19:56:41

Comment sont entré tes nombres? Manuellement? Par un userform? Par une macro?

Répondre à vb

5

Lupin.A, le 18 jui 2007 à 21:29:21
  • +3

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

Répondre à Lupin.A

6

Thiby, le 18 jui 2007 à 22:40:39

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

Répondre à Thiby

7

Lupin.A, le 18 jui 2007 à 23:26:50

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

Répondre à Lupin.A

8

stocks, le 13 mar 2008 à 15:54:26

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

Répondre à stocks

9

 -Shadow-, le 16 mar 2008 à 20:15:26
  • +2

Fais un nouveau topic, personne ne viendra sur ce topic périmé de 1 an.

Répondre à -Shadow-