Find "*"

gribouillex Messages postés 172 Date d'inscription lundi 10 octobre 2005 Statut Membre Dernière intervention 16 mai 2011 - 22 sept. 2006 à 09:55
gribouillex Messages postés 172 Date d'inscription lundi 10 octobre 2005 Statut Membre Dernière intervention 16 mai 2011 - 22 sept. 2006 à 12:40
Bonjour, j'ai écrit cette ligne de code pour un programme : 

                q = 0
                Do Until Range("cellule" & Int(cel / 2)).Offset(q, 0).Find(what:=Chr(34) & "*") = True
                q = q + 1
                Loop

La où ça ne fait pas ce que je veux, c'est quand je lui demande de trouver Chr(34) & "*".
Pour moi * voudrait dire "autre chose qu'un expace". Mais ca ne semble pas être la bonne syntaxe.

Comment puis-je lui demander de trouver Chr(34) & "un caractère" ?

Merci

5 réponses

econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Modérateur Dernière intervention 23 décembre 2008 23
22 sept. 2006 à 10:38
salut,

Cette possibilité n'existe pas sous Excel (cf Explorateur de projet, sur la commande Find).
Pour la contrer, il faut parcourir toi-même la totalité de tes cellules, en extraire la valeur (placée dans une String), puis utiliser une expression régulière pour détecter s'il y a la combinaison chr(34)+caractère à l'intérieur.

Pour les expressions régulières, voir le tuto suivant :
http://www.vbfrance.com/tutoriaux/EXPRESSIONS-RATIONNELLES-REGULIERES_520.aspx

Manu
--------------------------------------------------------------------------------------------
Avant de poster un message, n'oubliez pas de consulter le reglement.
0
gribouillex Messages postés 172 Date d'inscription lundi 10 octobre 2005 Statut Membre Dernière intervention 16 mai 2011
22 sept. 2006 à 11:26
Ok, merci pour les conseils, j'ai lu ton lien en diagonale, mais ca me
semble un peu compliqué à première vue.. il faut que je m'y mette à
tête reposée....


Néanmoins, j'ai pu trouver la solution à mon problème en utilisant la fonction Mid.

Je n'y avais pas pensé... alors que le caractère ou l'espace sont toujours sensés se trouver à la même place dans ma cellule....

Merci quand même !
0
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Modérateur Dernière intervention 23 décembre 2008 23
22 sept. 2006 à 11:34
Ah oui, effectivement, si leur position est fixe dans la chaine, Mid$ sera beaucoup plus simple.

Manu

--------------------------------------------------------------------------------------------
Avant de poster un message, n'oubliez pas de consulter le reglement.
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 21
22 sept. 2006 à 12:25
Pour rechercher "un caractère", tu peux utiliser ? au lieu de *. Mais
ta syntaxe devrait fonctionner tout de même en principe, il me semble...

Mais sans savoir ce que signifie « Range("cellule" & Int(cel / 2)) », difficile de voir où est le problème...


Voici comment je procéderais

    Dim Recherche

   

'Recherche d'un guillemet suivi d'au moins un caractère dans la colonne A

    Set Recherche = Columns("A:A").Find(Chr(34) & "?")

    If Not Recherche Is Nothing Then

        MsgBox Recherche.Address

    Else

        MsgBox "Non trouvé"

    End If


Mais peut-être que ce n'est pas ce que tu cherches...(?)
MPi
0

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

Posez votre question
gribouillex Messages postés 172 Date d'inscription lundi 10 octobre 2005 Statut Membre Dernière intervention 16 mai 2011
22 sept. 2006 à 12:40
Merci pour tous ces compléments d'information.
Je n'ai pas testé le "?", mais si j'avais gardé les premieres lignes de codes, j'aurais volontiers testé cette méthode.

Ce qui me semble curieux, c'est que je me souviens avoir déjà utilisé le "*" dans Excel en utilisant Find. et ca fonctionnait bien...

bon, c'est pas grave, j'ai une solution à mon pb, et comme je dois avancer dans mon projet, je vais pas me lancer dans les interrogations...

Merci à tous !!
0
Rejoignez-nous