Methode Find VB [Résolu]

Messages postés
6
Date d'inscription
jeudi 22 janvier 2009
Statut
Membre
Dernière intervention
2 février 2009
- - Dernière réponse : 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
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
6
Date d'inscription
jeudi 22 janvier 2009
Statut
Membre
Dernière intervention
2 février 2009
1
1
Merci
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

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 135 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_ars93
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
58
0
Merci
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)
Commenter la réponse de cs_Jack
Messages postés
6
Date d'inscription
jeudi 22 janvier 2009
Statut
Membre
Dernière intervention
2 février 2009
1
0
Merci
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
Commenter la réponse de cs_ars93
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
58
0
Merci
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)
Commenter la réponse de cs_Jack