Ecriture d'un nombre [RESOLU]

Ecriture d'un nombre [RESOLU] - VB/VBA/VBS - Programmation

Marsh Posté le 27-08-2008 à 14:57:17    

Bonjour a tous,
 
Je souhaiterai faire une verification d'une cellule sous VBA ou je dois un rentrer un nombre de longueur 7 uniquement.
Si je rentre un nombre tel que 1234567, c'est pris en compte et aucune erreur est affichee. Par contre, si je veux entrer 0123456 comme valeur, le zero n'est pas pris en compte et alors j'ai un message d'erreur qui s'affiche.
Comment puis-je faire pour que le zero soit pris en compte?
Merci d'avance.


Message édité par fufu33 le 30-08-2008 à 15:16:06
Reply

Marsh Posté le 27-08-2008 à 14:57:17   

Reply

Marsh Posté le 27-08-2008 à 15:04:50    

Bonjour, te sers-tu de ce nombre pour un calcul directement sur excel ensuite?
Si ce n'est pas le cas, il suffit que tu ajoutes une quote juste avant : 0123456 te donne 123456, mais '0123456 te donne 0123456... Le probleme étant juste qu'il ne considere plus ce nombre comme un nombre, mais comme un texte...
(Si tu en as besoin, la commande cells(ligne, colonne).value dans une macro prends la valeur comme un nombre, malgré la quote ;) )

Reply

Marsh Posté le 27-08-2008 à 18:41:13    

je te remercie
ce que j'ai fait aussi c'est que j'ai mis ma cellule en format text comme ca quelque soit le nombre que tu mets il sera automatiquement pris comme text et non comme nombre.
J'avais pensé à utiliser une quote mais le soucis c'est qu'il faut que la personne qui rentre ce nombre rentre également la quote et je pense qu'il aurait oublié plus d'une fois.
A moins que tu connaisses le moyen pour que cette étape (mettre une quote en début) soit faite automatiquement et que l'utiliateur n'est plus qu'à rentrer le nombre?

Reply

Marsh Posté le 27-08-2008 à 19:10:43    

Je pense que tu as trouvé la bonne solution, c'est plus simple que de mettre des quotes... J'essayerai demain au travail (oui bah faut bien s'occuper) de voir s'il y a un moyen de verifier la presence d'un 0, et dans ce cas, de rajouter une quote...
Je te tiens au courant demain dans la journée, si personne d'autre ne t'a aidé entre temps.


---------------
Si Le Travail C'est La Santé, Donnez Le Mien A Quelqu'un De Malade
Reply

Marsh Posté le 28-08-2008 à 09:21:27    

J'ai trouvé une autre solution, j'espere qu'elle sera bonne pour ce que tu recherches (j't'avais dis que je testerai au travail...). En fait, il faut utiliser l'evenement worksheet_change et le fait que s'il enleve le 0, ton chiffre ne fait pu que ...

Code :
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. If Mid(Target.Value, 7, 1) = "" Then
  3.     Target.Value = "'0" & Target.Value
  4. End If
  5. End Sub


Par contre, ce code marche juste pour un seul 0...


---------------
Si Le Travail C'est La Santé, Donnez Le Mien A Quelqu'un De Malade
Reply

Marsh Posté le 28-08-2008 à 16:47:32    

cells(x, y).numberformat = "0000000"
 
et y'aura toujours 7 chiffres, avec les leading 0, que l'utilisateur tape plus de 7 chiffres ou moins de 7 chiffres

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed