Fonction Mid [Résolu]

Signaler
Messages postés
51
Date d'inscription
mardi 6 février 2007
Statut
Membre
Dernière intervention
25 mars 2008
-
LIBRE_MAX
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
-
J'utilise la fonction Mid sur un nombre mais il ne me prends pas le 0 si il y en a 1 par exemple si je fais Mid(015,1,2) 015 étant ma varibale il va me donner 1 alors que je voudrai récupérer 01

11 réponses

Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
d' ou:
Mid(Forma$(xVar,"000"), 1, 2)
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
ton premier argument doit être une chaine...
essayes avec ça (en dur)

Mid("015",1,2)
Messages postés
51
Date d'inscription
mardi 6 février 2007
Statut
Membre
Dernière intervention
25 mars 2008

Le probleme c'est que ma variable va changer à chaque fois il s'agit d'un code ou je ne dois prendre que les 2 premiers chiffres!
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
je sais qu' il s' agit d' une variable . c' est juste pour le test .
En tout cas ta variable doit être string.
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
18
MsgBox Format(Mid(015, 1, 2), "000")
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
le problème c' est que si sa variable est numérique, elle ne prendera jamais la forme 015 mais bien 15
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
je veux dire
Mid(15, 1, 2) et non Mid(015, 1, 2)
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
18
Tu as essayé ?
MsgBox Format(Mid(15, 1, 2), "000") te donnera également la chaîne "015"

Il est maintenant bien clair que si cette chaîne est ensuite reprise dans un format numérique, elle redeviendra 15 !!! (car 015 n'est pas un nombre ...)
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
le but est d' avoir 01 et non 015 :-)

d' ou, (encore une fois )
MsgBox Mid(Forma$(15,"000"), 1, 2)
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
18
Ouais :

Alors :
1) si ta variable de départ est un numérique, elle ne peut être 015, par définition !
si tu pars donc du numérique 15, rien ne t'indertit de le transformer en chaîne "015" avant de traiter
donc :====>>>   Mid(Format(15, "000"), 1, 2)
2) si ta variable est une chaîne de caractère (donc "015") le mid (sans format) te permet d'en extraire les deux 1ers caractères, donc "01"
 Mid("015", 1, 2)

Voilà ! Mais tu ne peux avoir un pied sur un bateau et l'autre sur l'autre !!!
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
tu veux dire l' autre bateau sur l' autre pierd ? ;-)