Erreur d'execution 91 sous Excel/VBA [Résolu/Fermé]

Signaler
Messages postés
2
Date d'inscription
jeudi 17 janvier 2008
Statut
Membre
Dernière intervention
6 février 2008
-
 Thierry17 -
Bonjour,

Suite à une macro lancée, j'obtiens la "fameuse" erreur d'execution 91
Voici le code surligné qui proviendrait de l'erreur :

Cells.Find(What:=pprod, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlWhole, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate


"pprod" est déclaré avant correctement,

Quelqu'un peut il m'aider ???????

Merci d'avance

MaXBvs

2 réponses

Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 185
bonjour

Vous avez tenté d'utiliser une variable objet ayant la valeur Nothing.

C'est ce que dit la doc et en fait cela arrive souvent en utilisant "find" .

Je pense que c'est le fait d'utiliser activate car tu ne peux pas sélectionner ce que tu n'as pas trouvé.

Personnellement je positionne un objet range et je teste le nothing avant de l'employer.

set sel = Cells.Find(What:=pprod, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlWhole, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
if sel is nothing then
code pas trouvé
else
sel.select
endif
8
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60511 internautes nous ont dit merci ce mois-ci

Merci pour ton code, il est tjs valide, même 11 ans après ;-)
Merci pour ta réponse c'est super cela marche parfaitement en code intégré. Je profite de ta réponse pour relancer la chose.

Mon code fonctionne mais j'ai une erreur 91 qui apparaît ici:

Ligne soulignée en gras ;)
Je te remercie d'avance pour la réponse a venir :)

Private Sub CommandButton1_Click()
Dim objShell As Object, objFolder As Object
Dim Chemin As String, Msg As String
Dim FlagChoix As Long, NbPoint As Integer

SelType = 0 'ou 0 suivant
If SelType = 0 Then
FlagChoix = &H1
Msg = "Sélectionner un dossier :"
Else
FlagChoix = &H4000
Msg = "Sélectionner un fichier :"
End If

Set objShell = CreateObject("Shell.Application")
' &h1
' 1er paramètre toujours 0 (zéro). Il représente le handle de la fenêtre parent ' &h1
' 2ème paramètre Titre de la boite, en dessous de la barre de titre ' &h1
' 3ème paramètre options de BrowseForFolder ' &h1
' 4ème paramètre Facultatif. Répertoire de début d'exploration On Error Resume Next
Set objFolder = objShell.BrowseForFolder(&H0&, Msg, FlagChoix)
' &h1
'Si l 'objet retourné est valide, on teste son contenu (item.title)
'Si on a sélectionné la racine d'une partition, il se compose du nom de la partition,
' suivi de sa lettre et ":" entre parenthèses NbPoint = InStr(objFolder.Title, ":")
If NbPoint = 0 Then
' &h1
'Sinon, il se compose du nom du dossier uniquement, sans le chemin précédent
'On récupère ce chemin à l'aide des propriété et méthode ParentFolder.ParseName
Chemin = objFolder.ParentFolder.ParseName(objFolder.Title).Path & ""
Else
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 185
Bonsoir,

Je veux bien que ton code fonctionne mais comme je disais, il y a 7 ans, ton erreur est due à "Vous avez tenté d'utiliser une variable objet ayant la valeur Nothing".
Or tu passes sur cette instruction car "NbPoint" est à zéro du fait qu'il n'a jamais été positionné : l'on ne peux pas aller plus loin et ton objet "objFolder" a probablement la valeur Nothing.