VBA: scinder un label?

VBA: scinder un label? - VB/VBA/VBS - Programmation

Marsh Posté le 11-07-2003 à 09:29:48    

Rebonjour,  
 
Voilà, mon problème du jour est le suivant:
Via une inpubox, je demande un numéro: mais je voudrais bien que ce même numéro apparaisse différement sur dans mon label.
 
Ex: label.caption = inputbox("Introduisez numéro" )
Le numéro étant par exemple 12345612312 (hé oué 11 chiffres)
je voudrais qu'il s'affiche 123456-123-12 dans mon label et pas simpelment 12345612312
Si vous pouviez aussi m'indiquer rapidement le code :)
 
Merci :)

Reply

Marsh Posté le 11-07-2003 à 09:29:48   

Reply

Marsh Posté le 12-07-2003 à 18:53:37    

c'est pas compliqué !  
 
 

Code :
  1. dim recup_num1 as integer
  2. dim recup_num as string
  3. dim découp_chaine_1, découp_chaine_2, découp_chaine_3 as string
  4. 'tu récupère le numéro dans une variable
  5. recup_num1 = inputboc("Votre numéro" )
  6. 'tu convertie en chaine de caractère le nombre
  7. recup_num = str(recup_num_1) 'convertir en string la chaine renvoyé
  8. 'tu récupère les morceaux
  9. découp_chaine_1 =  left(recup_num,6)
  10. découp_chaine_2 = right(recup_num,2)
  11. decoup_chaine_3 = mid(recup_num,7,2)
  12. label1.caption  = découp_chaine_1 & "-" & découp_chaine_3 & "-" & découp_chaine_2

 
 
il faut convertir la chaine en string, puisque c'est un entier. Aprés, avec les fonctions des traitement de caratère, tu découpe ta chaine en trois parties (il faut qu'elle soit impérativement de 11 caractère, du moins pour mon exemple). Une fois découper et dans des variables, tu les acroche en elles, avec au milieu le tiret...
 
Vérfie au passage la fonction "mid", je m'en souviens mal, je fais de tête. Tu devras faire attention à ce que le nombre retourné, soit égal à 11 carcatère et pas un de plus ou de moins, sinon, le code que je viens de mettre deviens faux !

Reply

Marsh Posté le 13-07-2003 à 13:15:30    

Sous VB6 il existe la fonction Format qui permet de mettre en forme des chaines de caractère ; je ne sais pas si cette fonction existe sous VBA... fais peut être une ptite recherche dessus :)

Reply

Marsh Posté le 13-07-2003 à 18:59:31    

Format() permettrait d'extraire des sous-chaînes ?  
Je crains qu'il doive passer par decoup_chaine_1, decoup_chaine_2, decoup_chaine_3 puis concaténer via des "-" ou un Format() contenant "-".  
 
C'est pour gérer un numéro de série ?
 

Reply

Marsh Posté le 13-07-2003 à 20:08:56    

Sous VB6, ceci fonctionne :
 
MyString = Format(MyNumber, "######-###-##" )
 
Sous VBA, aucune idée...

Reply

Sujets relatifs:

Leave a Replay

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