OVH Cloud OVH Cloud

Zéro à gauche

11 réponses
Avatar
Daniel
Bonjour,

Pour laisser apparaître un zéro à gauche d'un chiffre, il suffit de
taper l'apostrophe avant. Par exemple, taper '09 affichera 09 alors que
taper 09 affichera 9 si le format de la cellule est Standart.
Cela fonctionne très bien.
Mais comment faire pour pouvoir effectuer ensuite des calculs ensuite
car l'expression est alors du texte et non plus un nombre ?

Ou sinon quelle possibilité y a t-il d'avoir un affichage de
systématique de 3 chiffres (001 ou 029 ou 304 ou...) et de pouvoir faire
des opérations avec ?

Merci de votre aide et bonne année 2007.

Daniel

10 réponses

1 2
Avatar
isabelle
bonjour Daniel,

mets les cellules au format personnalisé 000

isabelle

Bonjour,

Pour laisser apparaître un zéro à gauche d'un chiffre, il suffit de
taper l'apostrophe avant. Par exemple, taper '09 affichera 09 alors que
taper 09 affichera 9 si le format de la cellule est Standart.
Cela fonctionne très bien.
Mais comment faire pour pouvoir effectuer ensuite des calculs ensuite
car l'expression est alors du texte et non plus un nombre ?

Ou sinon quelle possibilité y a t-il d'avoir un affichage de
systématique de 3 chiffres (001 ou 029 ou 304 ou...) et de pouvoir faire
des opérations avec ?

Merci de votre aide et bonne année 2007.

Daniel


Avatar
pirot
bonjour,

j'ai un souci dans ce code:

---------------------------------
nomrep = Range("C17").Value
On Error Resume Next
MkDir nomrep
Err.Clear
On Error GoTo 0
etc ....
----------------------------------

il devrait créer un dossier si celui ci n'existe pas,
et passer outre si le dossier existe
si le dossier n'existe pas, il y a bien création
mais dans le second cas (si par exemple on relance la macro),
j'ai la fenêtre d'erreur d'execution 75.

Que faire ?
merci
Pierre L
Avatar
Garette
Bonjour,

Le code suivant ne créé le dossier que s'il n'existe pas

Sub test()
nomrep = Range("A1").Value
ChDir "C:"
If Dir(nomrep, vbDirectory) = "" Then MkDir nomrep
End Sub
Avatar
stac
Bonjour,

Content d'avoir trouvé ma question du jour déjà posée :)
Par contre :

mets les cellules au format personnalisé 000


dans les formats disponibles dans 'personnalisé, je n'ai pas de format
'000'. ma question doit être 'stupide', mais où trouver un tel format ? il
doit surement aussi être possible de rajouter des formats, non ?

Bonne journée !

Stac

Avatar
stac
euh oui ma question était stupide, je l'avoue... :(
j'ai trouvé qq secondes après avoir posté, sorry.


Par contre, par simple curiosité...
Avec un format '00', '8' apparaît comme '08', c'est ce que je veux.
comment faire pour que nbcar d'une cellule avec un tel format soit de 2, et
non de 1 ?
Avatar
isabelle
bonjour stac,

désolé pour le retard,
peut être avec une fonction personnalisé,
cette Function est à copier dans un module standard

Function M_NBCAR(cellule As Range) As Integer
Select Case cellule
Case Is < 10: M_NBCAR = 1
Case Is < 100: M_NBCAR = 2
Case Is < 1000: M_NBCAR = 3
Case Is < 10000: M_NBCAR = 4
Case Is < 100000: M_NBCAR = 5
Case Is < 1000000: M_NBCAR = 6
Case Is < 10000000: M_NBCAR = 7
Case Is < 100000000: M_NBCAR = 8
Case Is < 1000000000: M_NBCAR = 9
Case Is < 10000000000: M_NBCAR = 10
End Select
End Function

et utilise ceci sur la feuille de calcul
=M_NBCAR(A1)

isabelle

euh oui ma question était stupide, je l'avoue... :(
j'ai trouvé qq secondes après avoir posté, sorry.


Par contre, par simple curiosité...
Avec un format '00', '8' apparaît comme '08', c'est ce que je veux.
comment faire pour que nbcar d'une cellule avec un tel format soit de 2, et
non de 1 ?




Avatar
isabelle
ou plus court :

Function M_NBCAR(cellule As Range) As Integer
For i = 1 To 15
If cellule < (10 ^ i) Then
M_NBCAR = i
Exit Function
End If
Next
End Function

isabelle

bonjour stac,

désolé pour le retard,
peut être avec une fonction personnalisé,
cette Function est à copier dans un module standard

Function M_NBCAR(cellule As Range) As Integer
Select Case cellule
Case Is < 10: M_NBCAR = 1
Case Is < 100: M_NBCAR = 2
Case Is < 1000: M_NBCAR = 3
Case Is < 10000: M_NBCAR = 4
Case Is < 100000: M_NBCAR = 5
Case Is < 1000000: M_NBCAR = 6
Case Is < 10000000: M_NBCAR = 7
Case Is < 100000000: M_NBCAR = 8
Case Is < 1000000000: M_NBCAR = 9
Case Is < 10000000000: M_NBCAR = 10
End Select
End Function

et utilise ceci sur la feuille de calcul
=M_NBCAR(A1)

isabelle


euh oui ma question était stupide, je l'avoue... :(
j'ai trouvé qq secondes après avoir posté, sorry.


Par contre, par simple curiosité... Avec un format '00', '8' apparaît
comme '08', c'est ce que je veux.
comment faire pour que nbcar d'une cellule avec un tel format soit de
2, et non de 1 ?






Avatar
stac
Bonjour de Mars et merci pour les réponses !
j'avoue que je ne me suis plus trop penché sur le sujet, car j'ai une
solution moins élegante de faire...

mais bon pour raffiner, je voudrais donc si possible que :
- quand j'insere par ex. '32' dans une cellule, celle-ci indique '32' et
qu'une deuxieme cellule me donne 2 (nombre de caractere)
- quand j'insere par ex. '087' dans une cellule, la deuxieme cellule me
donne 3 (toujours nombre de caracteres rentrés); j'aimerai bien aussi que la
premiere cellule indique '087'. c'est possible si je mets le format '000'
(personnalisé), mais dans ce cas le '32' du premier cas apparait comme '032'.
Ce serait plus simple s'il n'y avait pas de différence entre 032 et 32, je
sais... mais il y en a une :-/

Si vous avez une idée, je suis preneur...


ou plus court :
Function M_NBCAR(cellule As Range) As Integer
For i = 1 To 15
If cellule < (10 ^ i) Then
M_NBCAR = i
Exit Function
End If
Next
End Function


Avatar
dunkelzahn
=NBCAR(A1)

S'il y a le tilde toujours, tu peux faire une soustraction de 1 dans
la formule


On 1 mar, 15:17, stac wrote:
Bonjour de Mars et merci pour les réponses !
j'avoue que je ne me suis plus trop penché sur le sujet, car j'ai une
solution moins élegante de faire...

mais bon pour raffiner, je voudrais donc si possible que :
- quand j'insere par ex. '32' dans une cellule, celle-ci indique '32' et
qu'une deuxieme cellule me donne 2 (nombre de caractere)
- quand j'insere par ex. '087' dans une cellule, la deuxieme cellule me
donne 3 (toujours nombre de caracteres rentrés); j'aimerai bien aussi q ue la
premiere cellule indique '087'. c'est possible si je mets le format '000'
(personnalisé), mais dans ce cas le '32' du premier cas apparait comme '032'.
Ce serait plus simple s'il n'y avait pas de différence entre 032 et 32 , je
sais... mais il y en a une :-/

Si vous avez une idée, je suis preneur...



ou plus court :
Function M_NBCAR(cellule As Range) As Integer
For i = 1 To 15
If cellule < (10 ^ i) Then
M_NBCAR = i
Exit Function
End If
Next
End Function- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -



Avatar
dunkelzahn
En mettant la personnalisation du format avec 000 et en faisant la
méthode ci-dessus, il supplante le 0 à gauche pour n'indiquer que le
nombre de chiffres réels.
donc 032 ou 32 = 2

On 1 mar, 15:17, stac wrote:
Bonjour de Mars et merci pour les réponses !
j'avoue que je ne me suis plus trop penché sur le sujet, car j'ai une
solution moins élegante de faire...

mais bon pour raffiner, je voudrais donc si possible que :
- quand j'insere par ex. '32' dans une cellule, celle-ci indique '32' et
qu'une deuxieme cellule me donne 2 (nombre de caractere)
- quand j'insere par ex. '087' dans une cellule, la deuxieme cellule me
donne 3 (toujours nombre de caracteres rentrés); j'aimerai bien aussi q ue la
premiere cellule indique '087'. c'est possible si je mets le format '000'
(personnalisé), mais dans ce cas le '32' du premier cas apparait comme '032'.
Ce serait plus simple s'il n'y avait pas de différence entre 032 et 32 , je
sais... mais il y en a une :-/

Si vous avez une idée, je suis preneur...



ou plus court :
Function M_NBCAR(cellule As Range) As Integer
For i = 1 To 15
If cellule < (10 ^ i) Then
M_NBCAR = i
Exit Function
End If
Next
End Function- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -



1 2