EXCEL-Perso.xls-Userform-Erreur 91

Mimile Brico Messages postés 3 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 7 avril 2006 - 5 avril 2006 à 10:46
Mimile Brico Messages postés 3 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 7 avril 2006 - 7 avril 2006 à 23:15
Bonjour.
J'ai lancé Excel- Classeur1. Puis Alt+F11 pour avoir l'éditeur. J'ai eu 2 VBAProject(Perso.XLS) et VBAProject(Classeur1). Comme tous les éléments étaient identiques , j'ai mis des noms pour m'y retrouver :
VBAProject(Perso.XLS) est devenu FormAff(Perso.XLS)
ThisWookBook de (Perso.xls) est devenu PersoBook
J'ai crée un UserForm dans (Perso.XLS) qui s'appelle MonForm.
J'ai utilisé sur PersoBook, Sub Workbook_Open() et mon code
J'ai compilé , sauvegardé.
Quand je lance Excel , Classeur1 (nouveau dossier) , mon Userform s'affiche bien et tout fonctionne.
Par contre quand je double-click sur un dossier existant (Essai01.XLS), je reçois le message 'Erreur 91 - Variable objet ou variable de block With non définie'. Mon Code :
Private Sub Workbook_Open()
Load FormAff.MonForm ' <<<<< ERREUR 91 avec essai01.xls
FormAff.MonForm.show
End Sub
J'ai rajouté ce bout de code pour vérifier que j'arrivais bien à atteindre MonForm
Dim X
For Each X In PersoBook.VBProject.VBComponents 'tous les composants
MsgBox "Name : " & X.Name & " Type :" & X.Type, vbOKOnly
Next X
J'obtiens bien Name: MonForm - Type: 3
Je pense que j'ai oublié quelque chose car quand je regarde les références , dans Classeur1.xls , je vois FormAff et quand j'ai l'erreur , sur Essai01.XLS , je ne vois pas FormAff dans Explorateur d'objet -toutes les bibliothèques.
J'ai été un peu long.
Merci d'avance de votre aide.

3 réponses

cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
5 avril 2006 à 13:10
Salut,
Ce message d'erreur indique que ton objet n'est pas instancié (pas crée)
FormAff correspond à quoi ?
MonForm c'est la feuille que tu veux afficher ?
0
Mimile Brico Messages postés 3 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 7 avril 2006
6 avril 2006 à 10:01
Merci de cette réponse. C'est bien ce que je pensais mais comment 'instancier' ? J'ai essayé avec Dim as , Set .... sans résultat. (je débute dans ces interfaces. J'ai reussi avec Word et le module Normal.dot).
FormAff c'est le nom de projet de (Perso.xls).
Mon Form c'est le nom du userform que je veux afficher.

Ce que vois dans la fenetre de gauche de l'éditeur (je ne sais pas poser une copie d'écran) quand j'ouvre (doubleclick) Essai01.xls et que ça se plante sur le Load :
FormAff(PERSO.XLS)
Microsoft Excel Objects
Feuil1(Feuil1)
PersoBook
Feuilles
MonForm
VBAProject(Essai01.xls)
Microsoft Excel Objects
Feuil1(Feuil1)
Feuil2(Feuil2)
Feuil3(Feuil3)
ThisWorBook
Il manque les 'icones' devant chaque ligne mais j'espère que c'est compréhensible.
Encore merci de la rapidité de ta réponse.
0
Mimile Brico Messages postés 3 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 7 avril 2006
7 avril 2006 à 23:15
Je n'ai pas trouvé le moyen d'instancié FormAff(PERSO.XLS) car c'est bien cette référence qui est vide.

Si quelqu'un peut m'expliquer , merci d'avance.
0
Rejoignez-nous