Supprimer un caractère d'une chaîne

Résolu
melinette35
Messages postés
68
Date d'inscription
mercredi 23 mai 2012
Statut
Membre
Dernière intervention
27 juillet 2012
- 27 juin 2012 à 20:31
ucfoutu
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
- 27 juin 2012 à 21:30
Bonjour,

après avoir recherché pas mal d'info sur les manipulations de chaîne de caractères je viens ici.

Voici la question:

Comment supprimer un seul et unique caractère en fonction de sa position dans une chaine de caractère.

Par exemple supprimer le 3e caractère de la chaîne en partant de la droite.

Merci de votre aide.

7 réponses

ucfoutu
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
237
27 juin 2012 à 21:02
Ce que je t('ai dit plus haut est simple.
Si tu veux t'amuser, par contre ===>> regarde du plus "tortueux" ===>>
toto = "123456789"
pos = 3
Mid(toto, Len(toto) - pos + 1, 1) = Chr(1)
MsgBox Replace(toto, Chr(1), "")

Mais uniquement pour s'amuser à sodomiser les coléoptères !


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
3
melinette35
Messages postés
68
Date d'inscription
mercredi 23 mai 2012
Statut
Membre
Dernière intervention
27 juillet 2012

27 juin 2012 à 21:19
toto = "123456789"
pos = 3
Mid(toto, Len(toto) - pos + 1, 1) = Chr(1)
MsgBox Replace(toto, Chr(1), "")



C'est exactement ce que je cherchais. Ca marche nickel. Merci

(je ne peux pas mettre en réponse acceptée car ça bug )
3
ucfoutu
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
237
27 juin 2012 à 20:51
Bonjour,
dans ton exemple : to résultat est simplement la concaténation de tout ce qui se trouve avant ce caractère avec tout ce qui se trouve après ce caractère.
==>> left et mid sont les deux seules fonctions qu'il te faut donc utiliser et elles sont clairement (avec exemple) exposées dans ton aide VBA.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
melinette35
Messages postés
68
Date d'inscription
mercredi 23 mai 2012
Statut
Membre
Dernière intervention
27 juillet 2012

27 juin 2012 à 21:08
C'est la solution que j'ai envisagé en effet.

Mais il n'existe pas une fonction qui permet de le faire directement ?

J'ai trouvé la fonction replace qui se rapproche de ce que je veux.
Exemple
[i]B=toto
B = Replace(B, "o","p")/i

On obtient alors tptp.Moi ce que j'aimerai, c'est pouvoir lui dire de ne remplacer que le deuxième caractère en partant de la gauche afin d'obtenir tpto.

Merci d'avance
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ucfoutu
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
237
27 juin 2012 à 21:10
Et en voilà une autre, de méthode, pour s'amuser avec les coléoptères (elle est démesurée) :
toto = "123456789"
pos = 3
titi = Split(StrConv(toto, vbUnicode), Chr(0))
titi(UBound(titi) - pos) = ""
MsgBox Join(titi, "")

Voilà ! Je te conseille de suivre les indications de mon tout premier message. Elles me paraissent plus sages et mieux adaptées à un débutant.

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
ucfoutu
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
237
27 juin 2012 à 21:12
Ah bé ...
Avant :
Par exemple supprimer le 3e caractère de la chaîne en partant de la droite

Moi ce que j'aimerai, c'est pouvoir lui dire de ne remplacer que le deuxième caractère en partant de la gauche

Ben ... tu te décides et tu reviens, hein ...
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
ucfoutu
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
237
27 juin 2012 à 21:30
Donc suppression du 3ème caractère à partir de la droite. ===>>
J'aurais préféré de voir écrire alors ceci :
toto = "123456789"
pos = 3
MsgBox Left(toto, Len(toto) - pos) & Right(toto, pos - 1)

En résumé : mille et une manière (on pourrait en inventer d'autres) de procéder, en matière de traitement de chaînes de caractères. A chacun ses goûts et ses manies.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0