Boucle IF / condition sur un guillemet [Résolu]

Signaler
Messages postés
14
Date d'inscription
mercredi 26 novembre 2008
Statut
Membre
Dernière intervention
27 novembre 2008
-
Messages postés
14
Date d'inscription
mercredi 26 novembre 2008
Statut
Membre
Dernière intervention
27 novembre 2008
-
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

Messages postés
14
Date d'inscription
mercredi 26 novembre 2008
Statut
Membre
Dernière intervention
27 novembre 2008

C'est bon j'ai réussi avec le code ascii


if test1=chr(34) then...
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
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)
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
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
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
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
Messages postés
14
Date d'inscription
mercredi 26 novembre 2008
Statut
Membre
Dernière intervention
27 novembre 2008

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!