Boucle IF / condition sur un guillemet

Résolu
cs_Ptitelillou Messages postés 14 Date d'inscription mercredi 26 novembre 2008 Statut Membre Dernière intervention 27 novembre 2008 - 27 nov. 2008 à 15:44
cs_Ptitelillou Messages postés 14 Date d'inscription mercredi 26 novembre 2008 Statut Membre Dernière intervention 27 novembre 2008 - 27 nov. 2008 à 22:31
Bonjour!


Je voudrais tester une chaine de caractères avec les conditions suivantes;


Si le premier caractère est un " alors on supprime le premier et dernier caractère. Mon problème est dans ma boucle if pour tester le caractère.


Le soucis c'est que pour la condition du if je dois mettre un " entre 2 autres " et bien sur ça plante. Quelqu'un pourrait me trouver une 'tite astuce pour résoudre ce problème SVP

    test = ActiveCell.Value
    lg = Len(test)
    test1 = Mid(test, 1, 1)
    If test1 = "" Then
        ActiveCell.Value = Mid(test, 2, lg - 1)
    End If
 

5 réponses

cs_Ptitelillou Messages postés 14 Date d'inscription mercredi 26 novembre 2008 Statut Membre Dernière intervention 27 novembre 2008
27 nov. 2008 à 16:14
C'est bon j'ai réussi avec le code ascii


if test1=chr(34) then...
3
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
27 nov. 2008 à 16:05
Salut
Pour insérer un " dans une chaîne elle même délimitée par un ", il suffit de doubler le nombre de " :
   "dans ma ""chaine"", j'ai mis un "" visible"

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
27 nov. 2008 à 16:25
Oui, c'est une autre solution   
Il y a plus court d'isoler le caractère pour le tester : La comparaison LIKE :
   If maChaîne Like """*" Then
0
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
27 nov. 2008 à 16:29
PS : Par abus, le 3ème paramètre de la fonction MID est optionnel.
Si, comme dans ton cas, tu dois prendre tous les caractères se trouvant après le caractère X :
   maNouvelleChaine = Mid(maChaine, X)
Par défaut, il prendra tout se qu'il y a derrière

Voir aussi la fonction REPLACE qui permet de remplacer un (ou des) caractères par d'autres (ou par rien)
   maNouvelleChaineSansGuillemets = Replace(maChaine, """", "")   ' Supprime tous les " de ma chaine
0

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

Posez votre question
cs_Ptitelillou Messages postés 14 Date d'inscription mercredi 26 novembre 2008 Statut Membre Dernière intervention 27 novembre 2008
27 nov. 2008 à 22:31
Très bon ce plan de replace!!! je pense que je vais la replacer (hihi le jeu de mot) dans pas mal de mes macros!
0
Rejoignez-nous