Macro à l'ouverture d'un fichier

geredonis2 - 20 déc. 2012 à 15:28
 geredonis2 - 21 déc. 2012 à 09:37
Sous Excel 2010 à l'ouverture d'un fichier, il me demande d'Activer la modification car mon fichier provient d'un Intranet. Lorsque je clique sur le bouton "Activer la modification", il bugue à la première ligne de la macro Workbook_Open qui est sheets("Menu").Select
Je ne comprends pas pourquoi il bugue alors que si j'ouvre en local ce fichier tout se passe bien.
Merci pour votre aide.

4 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
20 déc. 2012 à 19:17
Pas bonjour non plus

"mon fichier provient d'un Intranet"
Veux-tu dire que tu as fait la copie d'un fichier qui provient d'un réseau, ou bien que tu l'ouvres au travers d'un réseau ?

"Excel 2010"
Le fichier que tu tentes d'ouvrir a t-il été sauvegardé avec la même version logicielle ?

"sheets("Menu").Select"
Existe t-il une feuille du nom de "Menu" dans ce classeur ?
Dans ce même Workbook_Open, essaye d'énumérer les feuilles présentes afin de vérifier. Remplace ton code actuel (mets le en commentaire) par celui-ci :
    Dim oSheet As Worksheet
    For Each oSheet In ActiveWorkbook.Sheets
        Debug.Print oSheet.Name
    Next

Il est aussi possible que la gestion d'erreur soit mal faite.
Par exemple, si du code se déclenche lorsque tu ouvres une feuille (avec le sheets("Menu").Select) et qu'une erreur apparait dans ce code, il est possible que l'erreur remonte à la ligne qui a appelé la procédure.
Pour le savoir, il faut faire du pas à pas dans le code et savoir quelle ligne exactement crée l'erreur.
Mais cela va être très difficile à faire puisqu'il faut demander la pause (touche F9) sur la ligne de code pour que le programme se fige dessus à son passage. (difficile à faire en auto-open)
Alors essaye de mettre cette même ligne de code dans une Sub annexe et la lancer avec F8 au lieu de F5

Rappel du débogage :
- F9 sur une ligne de code; elle change de couleur
Le programme s'y arrêtera au prochain passage
Survole avec la souris tes variables pour visualiser leur contenu, ou va dans la fenêtre de debogage (Ctrl-G) et tape
? maVariable
pour qu'elle s'inscrive dans la fenêtre.
- F8 (VB6) ou F10 (.Net) pour avancer d'une ligne de code
- F5 pour continuer normalement

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
Bonsoir,

Merci pour votre réponse.
Pour plus de précisions :
Le fichier est un fichier xls (version 2003) qui provient d'un intranet donc il doit y avoir une version copiée sur mon poste.
Lorsque le fichier est enregistré manuellement en local, celui-ci s'ouvre parfaitement.
En fait par le réseau intranet, Excel 2010 considère qu'il provient d'un réseau internet ou d'un endroit potentiellement dangereux : lorsque je désactive les 2 options dans le centre de confidentialité suivantes
- activer le mode protégé pour les fichiers provenant d'internet
- activer le mode protégé pour les fichiers situés dans des emplacements potentiellement dangereux
tout se passe bien mais c'est trop dangereux de les enlever sur tous les postes des utilisateurs.
Donc comme le mode protégé est activé, à l'ouverture je dois cliquer sur le bouton "Activer la modification" dans la barre de message jaune. Et là il s'arrête à la première ligne de code de la macro Private Sub WorkBook_Open qui est en l'occurence très simple Sheets("Menu").Select. Bien sûr qu'il y a une feuille nommée "Menu".
Excel 2010 ne veut ni lire la macro WorkBook_Open ni la macro Auto_Open.
Si je passe par le même réseau mais en ouvrant avec Excel 2003 tout se passe bien.
Voilà j'espère avoir été plus clair.
Merci pour votre aide.

Dominique
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
20 déc. 2012 à 21:24
Peu importe que ton fichier vienne de l'internet, de l'intranet ou de la cuisine à Lulu, du moment que le fichier ne vient pas de ton poste (qu'il n'a pas été enregistré la dernière sur), il te posera la question.
Pour ce qui est de la protection et des sécurités de Excel 2010, vois du côté des docs de Microsoft, ce n'est pas un problème de programmation.
0
Bonjour,

Merci pour votre réponse.
Je savais bien que ce n'était pas un problème de programmation mais il fallait bien que j'explique le problème.
Je suis sûr que d'autres personnes ont déjà eu ce problème.

Merci
Dominique
0
Rejoignez-nous