Methode Find VB

Résolu
cs_ars93 Messages postés 6 Date d'inscription jeudi 22 janvier 2009 Statut Membre Dernière intervention 2 février 2009 - 30 janv. 2009 à 17:45
cs_ars93 Messages postés 6 Date d'inscription jeudi 22 janvier 2009 Statut Membre Dernière intervention 2 février 2009 - 2 févr. 2009 à 20:40
Bonsoir a tous

j'ai ecrit ces quelques lignes afin de rechercher la concordance d'une chaine de caractere dans une colonne Spécifique
Mon probleme c'est que cette methode marche bien MAIS des que ma var "chaine" a un Blanc la methode me renvoi Nothing ...
With Worksheets(8).Range("b2:b73") (j'ai bien st martin)
                 Set c = .Find(chaine, LookIn:=xlValues).....(Ex chaine = st martin)


                 If Not c Is Nothing Then
                 firstAddress = c.Address
                 MyStr = (Right(firstAddress, 2))
                 site = Worksheets(8).Cells(MyStr, 1).Value
                 Worksheets(2).Cells(I, 9).Value = site
                 End If
             End With

Merci a ceux qui se pencheront sur ce iatus ...
vb or not vb ...yes we want

4 réponses

cs_ars93 Messages postés 6 Date d'inscription jeudi 22 janvier 2009 Statut Membre Dernière intervention 2 février 2009 1
2 févr. 2009 à 20:40
slt
bien vu. C'était l'environnement et pour ne pas dire le "codeur"


merci et a bientot

vb or not vb ...yes we want
1
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
31 janv. 2009 à 02:15
Salut
Ma boule de cristal me dit que tu es sous Excel ?
Catégorie de la question modifiée --> VBA

"ma var "chaine" a un Blanc" : Tu veux dire un espace ?
Chez moi, ça marche parfaitement.

As-tu analysé ton code de plus près ?
Tu utilises une variable I qui ne vaut rien puisque non déclarée ni initialisée.

Conseil : Prends l'habitude d'ajouter Option Explicit en tête de chaque feuille de code, dans la partie déclarations.
Cela t'oblige à déclarer toutes tes variables, c'est chiant au début, mais ça évite de se tromper d'orthographe de variable ou d'utiliser une variable innaccessible = gain de temps car le programme te dira dès le démarrage que quelque chose ne va pas.

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_ars93 Messages postés 6 Date d'inscription jeudi 22 janvier 2009 Statut Membre Dernière intervention 2 février 2009 1
31 janv. 2009 à 03:11
salut  a toi
En fait je n'ai pas mis tout le code mais cette partie de prog est imbriquée dans une boucle for avec I comme compteur


Ceci étant je ne m'explique pas cette histoire d'espace dans ma chaine de caractere qui pollue mon "find". Ma var chaine est de type variant...mes cellules (oui c'est une feuille excel t'as boule de cristal c'est une vrai) sont de type texte. Moi pas comprendre !!!

vb or not vb ...yes we want
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
1 févr. 2009 à 15:47
Re
Es-tu sûr que le caractère entre tes deux mots "st" et "martin" est bien un espace ?
As-tu essayé le bout de code que tu nous as passé, tout seul, sorti de ta boucle (dans une nouvelle Sub par exemple) et épuré ?
   With Worksheets(8).Range("b2:b73")         Set c .Find( "st martin" , LookIn:xlValues)
         If Not c Is Nothing Then
            MsgBox c.Row & ", " & c.Column
         End If
   End With
Ca te permettra de savoir si c'est l'instruction en elle-même qui coince ou l'environnement.

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
Rejoignez-nous