probleme de recherche automatique

  • Initiateur de la discussion Hervé
  • Date de début
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.
 
J

Jacques

Guest
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
 

Discussions similaires

Réponses
2
Affichages
266

Statistiques des forums

Discussions
314 653
Messages
2 111 579
Membres
111 207
dernier inscrit
max008