OVH Cloud OVH Cloud

InStrRev

5 réponses
Avatar
Green
Bonjour,

J'aimerais retirer les caractères d'une chaine à gauche d'un tiret:

Ex: M45678 - devrais me donner M45678
Donc je sais que je dois utiliser la fonction InStrRev mais je ne connais le
# de car() soit pour l'espace après le 8 ou bien le tiret.

Merci

5 réponses

Avatar
Eric
Bonjour,

Debug.Print Trim(Left("M45678 -", InStrRev("M45678 -", Chr(45)) - 1)) te
retournera M45678 sans l'espace derrière

ou plus généralement:
Debug.Print Trim(Left(LaChaine, InStrRev(LaChaine, Chr(45)) - 1)) sous
reserve que LaChaine ne soit pas de longueur nulle

Espace = 32
- = 45
PS:Pour trouver le code ASCII d'un caractère : Asc("caractere")

Bonjour,

J'aimerais retirer les caractères d'une chaine à gauche d'un tiret:

Ex: M45678 - devrais me donner M45678
Donc je sais que je dois utiliser la fonction InStrRev mais je ne connais le
# de car() soit pour l'espace après le 8 ou bien le tiret.

Merci


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Green
La fonction que j'avais indiqué dans ma requête est:
Gauche([sku];InStrRev("sku]";Car(45))) ... Elle m'a effacé le champs donc
une chaine vide a été retournée.

Alors je me suis tourné vers vous mais de ce que tu m'écris, je ne vois pas
ou est mon erreur dans la chaine


Bonjour,

Debug.Print Trim(Left("M45678 -", InStrRev("M45678 -", Chr(45)) - 1)) te
retournera M45678 sans l'espace derrière

ou plus généralement:
Debug.Print Trim(Left(LaChaine, InStrRev(LaChaine, Chr(45)) - 1)) sous
reserve que LaChaine ne soit pas de longueur nulle

Espace = 32
- = 45
PS:Pour trouver le code ASCII d'un caractère : Asc("caractere")

Bonjour,

J'aimerais retirer les caractères d'une chaine à gauche d'un tiret:

Ex: M45678 - devrais me donner M45678
Donc je sais que je dois utiliser la fonction InStrRev mais je ne connais le
# de car() soit pour l'espace après le 8 ou bien le tiret.

Merci


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr




Avatar
Eric
re,

Il faut mettre :
Gauche([sku];InStrRev([sku];Car(45))-1) pour supprimer le -
Trim() (ou SupprEspace()) supprime l'espace final avant le nombre
toi tu as mis des " autour de sku dans la fonction InStrRev et un
crochet fermant.

De plus il faut tester si le champ sku contient un tiret ou non dès lors
que tu veux le supprimer. Donc la formule serait sauf erreur :
VraiFaux(InStrRev([sku];Car(45))>0;SupprEspace(Gauche([sku];InStrRev([sku];Car(45))-1));[sku])


La fonction que j'avais indiqué dans ma requête est:
Gauche([sku];InStrRev("sku]";Car(45))) ... Elle m'a effacé le champs donc
une chaine vide a été retournée.

Alors je me suis tourné vers vous mais de ce que tu m'écris, je ne vois pas
ou est mon erreur dans la chaine




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Green
Bon sens,

J'ai fait un erreur dans ma formule (les " au SKU) . Désolée de t'avoir
dérangé. tu as raison. Voilà pourquoi ça ne fonctionnait pas. Après l'avoir
corrigé, tout a été ok.
encore désolée et merci Eric.



re,

Il faut mettre :
Gauche([sku];InStrRev([sku];Car(45))-1) pour supprimer le -
Trim() (ou SupprEspace()) supprime l'espace final avant le nombre
toi tu as mis des " autour de sku dans la fonction InStrRev et un
crochet fermant.

De plus il faut tester si le champ sku contient un tiret ou non dès lors
que tu veux le supprimer. Donc la formule serait sauf erreur :
VraiFaux(InStrRev([sku];Car(45))>0;SupprEspace(Gauche([sku];InStrRev([sku];Car(45))-1));[sku])


La fonction que j'avais indiqué dans ma requête est:
Gauche([sku];InStrRev("sku]";Car(45))) ... Elle m'a effacé le champs donc
une chaine vide a été retournée.

Alors je me suis tourné vers vous mais de ce que tu m'écris, je ne vois pas
ou est mon erreur dans la chaine




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr




Avatar
3stone
Salut,

"Green"
| J'aimerais retirer les caractères d'une chaine à gauche d'un tiret:
|
| Ex: M45678 - devrais me donner M45678
| Donc je sais que je dois utiliser la fonction InStrRev...



Ah oui ? pourquoi InStrRev ?
Tu n'as pas plusieurs "-" tirets dans ta chaîne, dont tu souhaiterai répérer le dernier ?

le simple Instr suffit donc :

Trim(Left(chaine,Instr(chaine,"-")-1))


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/