Find "*"

Signaler
Messages postés
172
Date d'inscription
lundi 10 octobre 2005
Statut
Membre
Dernière intervention
16 mai 2011
-
Messages postés
172
Date d'inscription
lundi 10 octobre 2005
Statut
Membre
Dernière intervention
16 mai 2011
-
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

Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
22
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.
Messages postés
172
Date d'inscription
lundi 10 octobre 2005
Statut
Membre
Dernière intervention
16 mai 2011

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 !
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
22
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.
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
19
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
Messages postés
172
Date d'inscription
lundi 10 octobre 2005
Statut
Membre
Dernière intervention
16 mai 2011

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 !!