Format personnalisé

[Résolu/Fermé]
Signaler
Messages postés
6
Date d'inscription
jeudi 8 janvier 2015
Statut
Membre
Dernière intervention
8 janvier 2015
-
Messages postés
17429
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
4 août 2021
-
Bonjour,

Je n'arrive pas à créer un format personnalisé sur EXCEL du style : la cellule doit comporter 6 chiffres maximum, quand je rentre par exemple 65 le reste se complète avec des 0 donc 650000. J'ai utilisé : #000000, mais les zéros se mettent devant.
Pouvez-vous m'aider ?
je trouve des solutions en insérant une virgule, mais je dois renseigner des nombres entiers.
Merci pour votre aide.

3 réponses

Messages postés
33214
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 août 2021
3 659
Bonsoir,

En général... on affiche les zéros DEVANT le nombre.. pas derrière....
Je ne suis pas sûr que tu puisses réaliser cela avec un format personnalisé.

Sachant que .. le "format" d'une cellule ne sert qu'à l' AFFICHAGE .. ça ne joue en rien sur la "valeur" réelle contenue dans la cellule.. et donc dans les calculs.
Et c'est bien pour ça.. qu'avec le FORMAT tu peux avoir : 65 .. qui est la même chose que 000065 ... mais qui ne serait en aucun cas pareil à 650000 ....



Messages postés
33214
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 août 2021
3 659 >
Messages postés
6
Date d'inscription
jeudi 8 janvier 2015
Statut
Membre
Dernière intervention
8 janvier 2015

Par macro (VBA) tu pourrais le faire...

Par exemple :
Sub formatNombre()
Dim Rng As Range
Dim Sh As Worksheet
Set Sh = Sheets("Feuil2")

Set Rng = Sh.Range("A1:A50")

For Each C In Rng
 If Len(C.Value) < 6 And C.Value <> "" Then
 newVal = C.Value
    For nbtoAdd = 1 To 6 - Len(C.Value)
     newVal = newVal & "0"
    Next
     C.Value = newVal
 End If

Next
End Sub
Messages postés
6
Date d'inscription
jeudi 8 janvier 2015
Statut
Membre
Dernière intervention
8 janvier 2015
>
Messages postés
33214
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 août 2021

Je vais essayer. Mais mon souci, c'est que c'est pour des stagiaires en comptabilité, et ils ne maitrisent pas le VBA.
Messages postés
33214
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 août 2021
3 659 >
Messages postés
6
Date d'inscription
jeudi 8 janvier 2015
Statut
Membre
Dernière intervention
8 janvier 2015

Il n'y a pas besoin de maitriser le VBA .. je t'ai écris le code...
Il n'y a plus qu'à l'utiliser ...

Par contre.. je persiste... Je n'ai jamais vu quelque part qu'on pouvait avoir besoin de rajouter des zéros DERRIÈRE....
Que le format d'un nombre soit de 6 chiffres obligatoirement ( et que donc on ajoute des zéros devant ).... ok... .. mais derrière ?????
Si tu le peux.. il faudra m'expliquer le pourquoi de ce "besoin".
Messages postés
6
Date d'inscription
jeudi 8 janvier 2015
Statut
Membre
Dernière intervention
8 janvier 2015
>
Messages postés
33214
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 août 2021

Pour renseigner des comptes du plan comptable. Le principe est de taper par exemple : 606 faire "entrée" et automatiquement se rajoute 000 derrière ou 60 et automatiquement 0000 derrière.
Messages postés
33214
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 août 2021
3 659 >
Messages postés
6
Date d'inscription
jeudi 8 janvier 2015
Statut
Membre
Dernière intervention
8 janvier 2015

Ah oui ok.
Dans ce cas c'est même encore mieux...
On pourrait déclencher la macro automatiquement lors du changement de cellule ....

Par exemple...
'Code à placer dans l'objet Feuil désiré.....
Private Sub Worksheet_Change(ByVal Target As Range)
Dim C As Range
Set C = Target
'On restreint l'execution du code à la colonne A
If C.Column = 1 Then
'Si il n'y a pas 6 chiffres ...
If Len(C.Value) < 6 And C.Value <> "" Then
 newVal = C.Value
    For nbtoAdd = 1 To 6 - Len(C.Value)
     newVal = newVal & "0"
    Next
     C.Value = newVal
 End If
End If
End Sub


NB : Penser à modifier la ligne de code
If C.Column = 1 Then
en mettant le NUMERO de colonne sur laquelle doit se faire l'exécution du code...
Messages postés
26122
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
30 juillet 2021
6 000
Bonsoir
à priori cela fonctionne avec un format personnalisé tout bête:
000000
sans dièse et sans macro
crdlmnt

Errare humanum est, perseverare diabolicum
Messages postés
26122
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
30 juillet 2021
6 000
Excat Jordane, j'ai lu le problème à l'envers.
Mea culpa
Messages postés
33214
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 août 2021
3 659 >
Messages postés
26122
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
30 juillet 2021

Tu n'es pas le seul.. Mike-31 a fait la même erreur et quand il s'en ai aperçu a supprimé son message .. ^^
Et puis en même temps.. je ne vois pas l'intérêt de faire ça...
Mais bon..; nous sommes là pour répondre aux questions.. aussi farfelues soient elles :-)
Messages postés
17429
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
4 août 2021
4 673 >
Messages postés
33214
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 août 2021

Bonsoir,

Oui j'étais sur le départ et en voulant répondre trop vite j'étais hors sujet, mais je vois que le problème est résolu.
Bonsoir à tous
Messages postés
33214
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 août 2021
3 659 >
Messages postés
17429
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
4 août 2021

Oui ben tu n'es pas le seul. .. moi aussi j'ai tendance à répondre trop vite ces derniers temps. ..
Mais ce n'est pas grave. .. nous ne sommes pas des machines.
;-)
Messages postés
17429
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
4 août 2021
4 673 >
Messages postés
33214
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 août 2021

Re,

Il est vrai que la demande était pertinente, mais je n'avais pas le temps de m'y pencher. je n'ai pas eu l'occasion de le faire avant, alors je te présente mes meilleurs voeux, il est encore temps

https://www.cjoint.com/c/DLFve0iz8TC

Mike-31
Messages postés
6
Date d'inscription
jeudi 8 janvier 2015
Statut
Membre
Dernière intervention
8 janvier 2015

J'ai essayé, les 0 se mettent toujours devant
Messages postés
33214
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 août 2021
3 659
Hein ??
Tu as essayé... mon code ?
Tu as "ajusté" les variables ?

'Nom de la feuille contenant les valeurs (pour mes tests.. j'ai mis la feuille  Feuil2 )
Set Sh = Sheets("Feuil2")

'Plage de cellule contenant les valeurs .. ici j'ai pris les cellules de  A1 à A50
Set Rng = Sh.Range("A1:A50")


Une fois ces ajustements faits pour correspondre à tes besoins... Tu lances la macro.
Messages postés
6
Date d'inscription
jeudi 8 janvier 2015
Statut
Membre
Dernière intervention
8 janvier 2015
>
Messages postés
33214
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 août 2021

Super ! ça marche. C'est ce que je voulais.
Merci beaucoup à tous
Messages postés
33214
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 août 2021
3 659 >
Messages postés
6
Date d'inscription
jeudi 8 janvier 2015
Statut
Membre
Dernière intervention
8 janvier 2015

Regarde aussi mon message précédent .https://forums.commentcamarche.net/forum/affich-31342898-format-personnalise#14..
. pour que le déclenchement se fasse automatiquement après avoir saisie une valeur ....

PS :
Si la question est résolue..
Merci de ne pas oublier de clôturer le sujet
(en cliquant sur le lien "Marquer comme résolu" qui se trouve sous le titre de la question)

Cordialement,
Jordane