probleme de recherche automatique

  • Initiateur de la discussion Initiateur de la discussion Hervé
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

H

Hervé

Guest
Bonjour,
Voilà maintenant 1 mois que je travail avec excel97 sous winNT4.
Je développe une application qui exploite les données contenues dans 3 fichiers excel contenant eux même plusieurs feuilles.
J'ai plusieurs boite de dialogue sur lesquelles je dois afficher ces informations.

Une boite invite l'utilisateur a saisir un numéro et la fonction de recherche doit trouver la valeur saisie et la renvoyé dans un intitulé.
Voilà en enregistrant la marco manuellement cela marche bien mais une fois que je la retranscrit dans mon code il creer une erreur que je ne comprends pas et que je n'arrive pas a résoudre.

Voilà l'erreur:
Erreur d'exécution '91'
variable objet ou variable de bloc Wih non définie.

Voilà mon code:
Cells.Find(Saisie_NuméroPhysique, LookIn:=xlValues, _
LookAt:=xlPart, SearchOrder:=xlByColumns, _
MatchCase:=False).Activate
' Do While Cells.FindNext.Value = Saisie_NuméroPhysique
' Cells.FindNext(After:=ActiveCell).Activate
' Exit Do
' Loop //je ne sais pas si il faut mettre cette partie en commentaire

Saisie_NuméroPhysique est le nom d'une variable.

En fait lorsque je rentre un numéro contenu dans la feuille le programme ne plante pas mais lorsque ce n'est pas un numéro valide ca plante.

Voilà un autre exemple de recherche:

Sub RechercheNomAdhérent()
'la recherche s'effectue sur le numéro de contrat
Windows("0204rac.xls").Activate
Sheets("39101").Select
Range("A1").Select
Cells.Find("39101" & NuméroContrat, after:=ActiveCell, LookIn:=xlValues, _
LookAt:=xlPart, SearchOrder:=xlByColumns, _
MatchCase:=False).Activate

End Sub

Je ne vois vraiment pas ce qui ne va pas dans mon code alors si quelqu'un a déjà vu et résolu cette erreur pourrait-il m'éclairer afin que j'arrete de m'arracher les cheveux.

J'espère avoir été assez clair sur la description de mon probleme.
Merci par avance de votre coup de pouce.
 
Bonjour Hervé, bonjour le forum

D'après ce que j'ai pu tester, on obtient le message que tu mentionnes (Erreur d'exécution '91'....) lorsque que l'on essaie d'exécuter ton code sur une feuille ne comportant aucune donnée ou bien lorsque la variable Saisie_NuméroPhysique a pour valeur une valeur inexistante dans la feuille.
Dans ces deux cas, la méthode "Find" renvoie la valeur Nothing qui bien sûr ne peut pas être "activée" d'où le message.
Pour l'éviter, ou bien il faut faire précéder l'instruction "Cells.Find(Saisie_NuméroPhysique, LookIn:=xlValues, _
LookAt:=xlPart, SearchOrder:=xlByColumns, _
MatchCase:=False).Activate
" par l'instruction "On Error Resume Next" (qui fait abstraction de toutes les erreurs, ou bien plus spécifiquement par "If Cells.Find(Saisie_NuméroPhysique, LookIn:=xlValues, _
LookAt:=xlPart, SearchOrder:=xlByColumns, _
MatchCase:=False) Is Nothing Then (instructions à éxécuter si la valeur recherchée n'est pas trouvée)
".
Voilà, j'espère t'avoir éclairé.
Bonne fin de journée
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
423
Réponses
5
Affichages
235
Retour