Problème avec .FIND

Résolu
Signaler
Messages postés
54
Date d'inscription
vendredi 2 février 2007
Statut
Membre
Dernière intervention
5 juillet 2007
-
Messages postés
54
Date d'inscription
vendredi 2 février 2007
Statut
Membre
Dernière intervention
5 juillet 2007
-
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

Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
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
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Salut,
As tu testé avec l'enregistreur de macro pour voir le code "REEL" retourné.

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
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
Messages postés
54
Date d'inscription
vendredi 2 février 2007
Statut
Membre
Dernière intervention
5 juillet 2007

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
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
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
Messages postés
54
Date d'inscription
vendredi 2 février 2007
Statut
Membre
Dernière intervention
5 juillet 2007

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???????????,
Messages postés
54
Date d'inscription
vendredi 2 février 2007
Statut
Membre
Dernière intervention
5 juillet 2007

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
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
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
Messages postés
54
Date d'inscription
vendredi 2 février 2007
Statut
Membre
Dernière intervention
5 juillet 2007

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