Problème avec .FIND

Résolu
etoumat Messages postés 54 Date d'inscription vendredi 2 février 2007 Statut Membre Dernière intervention 5 juillet 2007 - 14 juin 2007 à 15:53
etoumat Messages postés 54 Date d'inscription vendredi 2 février 2007 Statut Membre Dernière intervention 5 juillet 2007 - 18 juin 2007 à 15:30
Bonjour à tous.

J'essaye de programmer avec VBE une macro me permettant de rechercher des mots dans une cellule. Par exemple une cellule comprend : "Fabrication de charcuterie". Je marque "fab" dans un textbox mais sa ne marche pas.

Voila le début du code :

(1)      With Worksheets(w2).Range("e1:e65000")
(2)      Set cher = .Find(act.Text, LookIn:=xlValues)
(3)      If Not cher Is Nothing Then


à la ligne (2) le programme me dit :" cher = nothing" alors qu'il y a bien les mots "Fabrication" ou "fabriquer" dans les cellules de la colonne E.

Au début se code fonctionnait parfaitement bien. J'ai donc enregistré mon fichier. Je viens de le réouvrir et là ca ne marche plus. Comment se fesse ???????


 

9 réponses

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 17
14 juin 2007 à 16:42
Mon code, colle le dans un Module, ne modifie pas la function, mais dans l'exemple :

Sub
 Exemple_Utilisation()
    Dim sResult() As String, l As Integer
    
    sResult =  FindWord("fab"<strike>, Range("C23:Z114"</strike><strike>)</strike><strike>, </strike><strike>"Feuil3"</strike>)
    '  autres exemples d'utilisation
    'sResult = FindWord("abc", Range("A1:B20"))
    'sResult = FindWord(UserForm1.ComboBox1.Text, Range("A1:B20"))
    
    For l = 0 To UBound(sResult)
        Debug.Print "-" & sResult(l) & "-"
    Next l
    Erase sResult
End Sub

Je t'ai modifié le mot clé, barré ce que tu dois supprimer. PLace le curseur dans cette Sub et appuie sur F5 . Une fois fini, fait Ctrl G et dis moi si les adresses des cellules correspondent

@++

<hr size ="2" width="100%" />( Nouveau forum : Exclusivement Office & VBA
3
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
14 juin 2007 à 16:00
Salut,
As tu testé avec l'enregistreur de macro pour voir le code "REEL" retourné.

@+: Ju£i?n
Pensez: Réponse acceptée
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 17
14 juin 2007 à 16:01
Salut,

C'est quoi act comme contrôle ? Est-il situé sur un UserForm où sur ta feuille de calcul ?

si tu veux, j'ai un snippet sur Find

@++

<hr size="2" width="100%" />( Nouveau forum : Exclusivement Office & VBA
0
etoumat Messages postés 54 Date d'inscription vendredi 2 février 2007 Statut Membre Dernière intervention 5 juillet 2007
14 juin 2007 à 16:15
j'ai un userform avec un textbox dont le nom est "act". Pour avoir le contenu de ce textbox je met donc "act.text".

c'est quoi un snippet ???


Si sa peut me servir je le veut bien merci
0

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

Posez votre question
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 17
14 juin 2007 à 16:17
Un snippet c'est un bout de code..
La plupart qui sont postés sont des fonctions toutes prêtes à l'emploi.

 Find  << clique dessus, c'est le lien

@++

<hr size="2" width="100%" />( Nouveau forum : Exclusivement Office & VBA
0
etoumat Messages postés 54 Date d'inscription vendredi 2 février 2007 Statut Membre Dernière intervention 5 juillet 2007
14 juin 2007 à 16:34
merci mortalino mais j'ai rien compris au code. J'ai déjà essayé avec " cells.find(what:=..........".   Sa marche très bien sur excel 97 par contre sur excel 2003 sa ne marche pas. Je ne sait plus quoi faire sa m'énerve. Je ne comprend pas pourquoi sa marchait il y a 10 min et après avoir sauvegarder sa ne marche plus.

J'ai essayé un truc : j'ai mis "f" dans le textbox "act". Il me trouve certaine cellules où il y a un "f" mais il ne trouve pas d'autre cellule où il y a pourtant un "f". Il n'en fait cas ça tête et je ne sait pas pourquoi???????????,
0
etoumat Messages postés 54 Date d'inscription vendredi 2 février 2007 Statut Membre Dernière intervention 5 juillet 2007
18 juin 2007 à 08:20
Alors mortalino j'ai un gros souci.

Tout dabord si je met Dim sResult() As String sa veut dire que je vais afecter un tableau a sresult (c'est vba qui me le dit). Du coup j'ai un bug arivé à la ligne sResult = FindWord("fab") : il me dit impossible d'affecté à un tableau. De plusvba ne connai pas "findword" ou .findword. Il met : propriété ou méthode non géré par cet objet si j'écrit .findword et sub ou fonction non définie si jécrit findword.




 



Que faire ???? Je rappel que je travail sous vba pour excel
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 17
18 juin 2007 à 14:21
Mon code, colle le dans un Module



C'est français pourtant, FindWord n'est pas une fonction ou un méthode de vb, c'est une fonction que j'ai créé. Si tu ne l'a mets pas dans un Module, c'est sûr que ça va pas le faire.

@++

<hr size="2" width="100%" />( Nouveau forum : Exclusivement Office & VBA
0
etoumat Messages postés 54 Date d'inscription vendredi 2 février 2007 Statut Membre Dernière intervention 5 juillet 2007
18 juin 2007 à 15:30
Escuse moi jdoit avoir du mal. J'ai bien mis TOUT ton code dans un module, dans une procédure et sa ne marche pas. De toute façon j'ai trouver le problème. En enfaite les cellules où je voulais faire une recherche était des cellules fusionnées. Du coup vba ne cherchait pas à l'intérieur.

Merci pour ton aide

Tchao
0