[Débutant] Garder les zéros à gauche d'un chiffre

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

hobotalker

XLDnaute Nouveau
Bonjour à tous,

La fonction recherche et la FAQ ne m'ayant rien appris, je me décide à poster mon pb.

Je développe un logiciel exportant des données vers Excel. Une de ces données est une chaine de caractères représentant ce qu'on pourrait assimiler à un compteur. Ex : "001", "0012", etc ... (le nombre de caractères n'est pas fixe)

Malheureusement, lorsque j'édite le classeur, cette chaine de caractère s'est vue transformée en chiffre (justifié à droite). Ex : 1, 12, etc ...

J'exporte mes données sous forme de chaine de caractères du type "\nInfo1\tInfo2\tInfo3". Les \t permettent de changer de cellule et les \n de sauter une ligne. Par quoi faudrait il changer mon information "001\t" pour qu'elle soit considérée comme une chaine de caractères?

Je tiens à préciser qu'aucune action ne doit être faite sous Excel même (sinon Format de cellule et c'est réglé 😱).

Merci d'avance pour vos lumières.

Edit : l'apostrophe en début de cellule fonctionne sous Excel même, mais pas lorsqu'elle fait partie de ma chaine d'exportation ... Bizarre.
 
Dernière édition:
Re : [Débutant] Garder les zéros à gauche d'un chiffre

Bonjour,

Merci pour ta réponse rapide.

J'avais édité mon message pour parler de l'apostrophe : sous Excel, "à la main" dans la cellule, pas de pb, ca marche.

Par contre, lorsque le texte est collé du presse-papier (ce que je fais par programmation), ca ne fonctionne plus.

Le test est très simple : copier le texte " '001 " d'un fichier texte quelconque et le coller dans une cellule Excel. L'apostrophe sera visible. Pour le moins étrange.

Quelqu'un a une idée? 😕
 
Dernière édition:
Re : [Débutant] Garder les zéros à gauche d'un chiffre

Bonjour Hobotalker, Staple1600,

Si les valeurs que désires sont toujours sur 4 caracteres, tu peux essayer la formule suivante:

En supposant que ta valeur soit en "A2" (Ex. 12)

= droite((1000+A2);4)

Qui te donnera 0012 (en format texte sans ' ) dans tous les cas.

A+
 
Re : [Débutant] Garder les zéros à gauche d'un chiffre

Bonjour Hobotalker, celullevide, re Jean-Marie

pas sur d'avoir toutes les données, mais regarde peut être le code ci dessous, si cela peut t'aider ou te mettre sur une piste:

Code:
Sub test()
Dim chaine As String, t, c As Byte
chaine = "001\t002\t003"
t = Split(chaine, "\t")
For c = LBound(t) To UBound(t)
    Cells(1, c + 1).NumberFormat = "@"
    Cells(1, c + 1).Value = t(c)
Next c
End Sub

bon après midi
@+
 
Re : [Débutant] Garder les zéros à gauche d'un chiffre

Re/Bonjour à tous,

@CelluleVide : j'ai appliqué à la lettre ce que tu décris. Ma cellule affiche 1012...

@Pierrot93 : merci mais je ne code pas en VB et je n'ai accès à aucune librairie Excel que ce soit. Mon logiciel se contente d'ajouter une chaine de caractères dans le presse-papier pour pouvoir la coller dans un classeur Excel.

@Staple1600 : pourquoi passer par un fichier texte? Quel intérêt? Ces données doivent être collées dans un tableau Excel. J'ai peut-être manqué qqchose 🙂

Par contre, la proposition de CelluleVide me donne une idée : existe-t-il une fonction permettant de sélectionner une sous-chaine d'un paramètre? (substr pour les amateurs de C). Je connais la longueur de la chaine que je veux afficher, on pourrait imaginer un truc du genre (à traduire avec une fonction Excel que j'ignore) :

substr('00000012', 4);

qui sélectionnerait les 4 derniers caractères '0012' et renverrait, à priori, une chaine de caractères et non un chiffre.

Encore une fois merci de votre aide, je sens qu'on y est presque 😛

Edit : je viens de comprendre l'idée de CelluleVide qui était de prendre les 4 derniers caractères de la chaine (fonction droite). =DROITE(000012, 4) affiche malheureusement 12 et non pas 0012.
 
Dernière édition:
Re : [Débutant] Garder les zéros à gauche d'un chiffre

Je viens de trouver une solution absolument dégueulasse mais qui remplit son rôle :

=droite((1000000000+12);4)

Merci CelluleVide et désolé de n'avoir rien compris de prime abord (il fallait tout de même un 0 de plus 😉).

Encore une fois merci à tous 😀
 
Re : [Débutant] Garder les zéros à gauche d'un chiffre

Re,

Non, mais au lieu d'ajouter la chaine de caratères

001\t0012\t

dans mon presse-papier, j'y ajoute la chaine de caratères

=droite((1000000000,001);3)\t=droite((1000000000,0012);4)\t

Donc je peux tout à fait utiliser n'importe quelle fonction d'Excel. Par contre à terme, mon appli devra être multilangue, bonjour le mal de crâne 🙂 : j'imagine bien que la fonction droite n'existe que sur les install Excel français !
 
Dernière édition:
Re : [Débutant] Garder les zéros à gauche d'un chiffre

Re


Excel les traduira en français de lui-même.

ActiveCell.FormulaR1C1 = "=RIGHT(RC[-1],3)"

ou
Code:
X = "A1"
ActiveCell.Formula = "=RIGHT(" & X & ",3" & ")"
 
Dernière édition:
Re : [Débutant] Garder les zéros à gauche d'un chiffre

C'est bizarre, quand je tape =RIGHT((100000+12);4) dans une cellule, il ne réussit pas à solutionner la formule.

A la place, il m'écrit : #NOM?

Celà est dû à quoi?

Edit : apparemment, il ne connait pas la méthode RIGHT ...
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour