Erreur '1004': Erreur définie par l'application ou par l'objet

Arnianor

XLDnaute Nouveau
Bonsoir à tous,
Voila, je suis actuellement en phase de terminer un projet sous Excel 2007.
J'ai donc protégé mon code et enregistré mon fichier en tant que modèle (.xltm).
Or, lorsque je fait un nouveau fichier à partir du modèle, j'obtient l'erreur suivante lorsque j'essaye de modifier un champs (quelconque) de mon formulaire:
Erreur '1004': Erreur définie par l'application ou par l'objet

Ce problème survient uniquement à l'ouverture d'un nouveau fichier à partir du modèle quand le code est protégé.
Si je ferme et relance le formulaire, le problème est réglé.
Si j'ouvre un nouveau fichier à partir du modèle lorsque le code n'est pas protégé, cela fonctionne sans problème.
Si j'ouvre directement le modèle, il fonctionne peut importe que le code soit protégé ou non.

Voici mes portions de code s'exécutant à l'ouverture du fichier:
Code:
Private Sub Workbook_Open()
    'Autorise la modification des pages pour le VBA uniquement'
    Worksheets(page1).Protect Password:="**", UserInterFaceOnly:=True
    Worksheets(page2).Protect Password:="**", UserInterFaceOnly:=True
    Worksheets(page3).Protect Password:="**", UserInterFaceOnly:=True
    Worksheets(page7).Protect Password:="**", UserInterFaceOnly:=True
    Worksheets(page8).Protect Password:="**", UserInterFaceOnly:=True
    Worksheets(page9).Protect Password:="**", UserInterFaceOnly:=True
End Sub
Code:
Sub Auto_Open()
    If IsEmpty(Sheets(page8).Cells(3, 5)) Then
        EntreeOffre.Show
    End If
End Sub

le Auto_Open a du être créer car "EntreeOffre.Show" faisait planter l'application si placé dans Workbook_Open

Si quelqu'un à la solution à ce problème de fou (càd l'erreur 1004 sur ouverture d'une copie dont le code est protégé), je lui en serais très reconnaissant.

Merci bien et bonne soirée
 

Arnianor

XLDnaute Nouveau
Re : Erreur '1004': Erreur définie par l'application ou par l'objet

Hello,

Tout d'abord merci pour la réponse.

page1 est une constante contenant le nom de la page sous le format String. J'ai décidé d'utiliser cela plutôt que les références type
Code:
Worksheets(1)
car je dois gérer, un peu plus tard dans le code, ce classeur ainsi qu'un autre, ce qui me permet d'avoir une bonne différenciation entre les 2 classeurs.

De plus, comme dit dans le premier message: tant que le code n'est pas protégé (par protéger je veux dire :
dans VBE: Outils-> Propriétés de VBAProject -> Onglet "Protection" -> Cocher la case "Verrouiller le projet pour l'affichage" + mot de passe), il n'y a absolument aucun bug.
Et même une fois protégé, si j'ouvre le modèle, il fonctionne; mais si j'ouvre une copie du modèle, ça plante.

Je précise aussi que mes options de macros sont en mode "Activer toutes les macros" et que j'ai coché "Accès approuvé au modèle d'objet du projet VBA"

Donc voila, le problème n'est toujours pas réglé.
 

Arnianor

XLDnaute Nouveau
Re : Erreur '1004': Erreur définie par l'application ou par l'objet

Re-bonjour,
merci encore aux personnes qui ont répondu.
Après un très long moment et pas mal de recherche (quelques jours...), il m'est passé par la tête d'utiliser une méthode précédemment utilisée pour débugger l'exécution de userForm.show

J'ai donc intégralement supprimé la fonction
Code:
Private Sub Workbook_Open()
pour tout déplacer dans
Code:
Sub Auto_Open()

Pour une raison qui m'échappe encore, l'évènement Workbook_Open() génère des problèmes chez moi, alors que l'évènement Auto_Open() fonctionne sans le moindre problème. Si quelqu'un en connais la raison, je serais très intéressé.

Encore merci et à bientôt
 

Discussions similaires

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 813
dernier inscrit
kaiyi