Vba, Problème avec la foncction find (1004)

Résolu/Fermé
Jesudenazarrete Messages postés 2 Date d'inscription jeudi 13 mars 2008 Statut Membre Dernière intervention 13 mars 2008 - 13 mars 2008 à 09:01
Jesudenazarrete Messages postés 2 Date d'inscription jeudi 13 mars 2008 Statut Membre Dernière intervention 13 mars 2008 - 13 mars 2008 à 14:17
Bonjour,

J'ai un léger problème avec la fonction find (je suis avec excel 2002 sp3), je vous explique :

Voici mon programme :

Public vcherch As String
Public vtrouve As Range
---------------------------------------------------------------------------------------------------------------------------
Public Sub Bcherch_Click() (Bcherch c'est le bouton sur lequel on appuie pour rechercher)

worksheets("Facturation").Activate (on recherche dans la feuille facturation)

vtrouve = Range(Cells(1, 1), Cells(30, 35000)).Find(what:=Ccherch.Value).Address

MsgBox vtrouve.address

End Sub
-----------------------------------------------------------------------------------------------------------------------------
Private Sub Ccherch_change()

vcherch = Ccherch.Value (Ccherch c'est la boite dans laquelle on inscrit ce qu'on veut chercher)

End Sub
-------------------------------------------------------------------------------------------------------------------------------

Lorsque je lance ma feuille, tout se passe bien, mais le problème c'est que dès que je clique sur le bouton Bcherch,
J'ai le message suivant : Erreur 1004, Erreur définie par l'application ou l'objet

Quelqu'un peut-il m'aider S'il vous plait

Merci d'avance

1 réponse

Ivan-hoe Messages postés 433 Date d'inscription dimanche 17 février 2008 Statut Membre Dernière intervention 17 octobre 2008 309
13 mars 2008 à 13:57
Salut !

vtrouve = Range(Cells(1, 1), Cells(30, 35000)).Find(what:=Ccherch.Value).Address
Plusieurs erreurs dans cette ligne

vtrouve est défini comme Range, tu ne peux pas lui demander d'être aussi une adresse (type string)
vtrouve = Range(Cells(1, 1), Cells(30, 35000)).Find(what:=Ccherch.Value)

vtrouve est défini comme Range, c'est donc un objet, il faut commencer par l'instruction Set
Set vtrouve = Range(Cells(1, 1), Cells(30, 35000)).Find(what:=Ccherch.Value)

Cells(30, 35000) pose problème : il n'y a pas encore 35000 colonnes dans Excel. N'aurais-tu pas inversé ligne et colonne ?
Set vtrouve = Range(Cells(1, 1), Cells(35000, 30)).Find(what:=Ccherch.Value)

ça devrait marcher comme ça.

Sinon, ctrl + F te fait la même chose : tu tapes du texte et Excel te le trouve !!

I.
0
Jesudenazarrete Messages postés 2 Date d'inscription jeudi 13 mars 2008 Statut Membre Dernière intervention 13 mars 2008
13 mars 2008 à 14:17
Ca roule merci beaucoup ivan avec toutes ces explications, je progresse beaucoup
0