workbook_open évènement non déclenchant

  • Initiateur de la discussion Initiateur de la discussion Jean-Bernard
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

J

Jean-Bernard

Guest
Bonjour à tous... J'ai depuis peu un souci sur un gros classeur excel (2002) rempli de plein de macros (développé pour raisons pros) :

une seule de mes procédures ne s'exécute pas, c'est workbook_open dans "thisworkbook".

Cette fonction fonctionnait auparavant dans ce même classeur, et maintenant, c'est comme si l'évènement ne déclenchait plus la macro

Serait-ce un vilain coup de SP2 installé depuis peu ou un autre problème ? qui aurait des infos sur ça, svp... Merci à tous
 
Merci Johane, je vais tester ta réponse dès que rentré maison...

Ma macro, je ne l'ai pas sur ce PC ci, mais elle est des plus classique, et pour ne pas me louper, j'y ai mis un msgbox "j'arrive en workbook_open" en toute première instruction, donc si l'évènement la déclenche, je dois automatiquement être tenu au courant... le corps de la macro ne peut guère être mis en cause...

Par contre, si je la renomme en auto_open, je la laisse dans thisworkbook ? Merci encore ...
 
Bonsoir Jean Bernard, Johanne, le Forum

J'ai parcouru le MSDN sur ce cas, je ne vois rien d'annoncé pour un problème quelconque avec Workbook_Open...

Sinon la Aut😵pen est formellement déconseillée "This method is included for backward compatibility. For new Visual Basic code, you should use the Open, Close, Activate and Deactivate events instead of these macros."

Voilà pour l'instant...

Fais un test sur cette WorkStation avec un classeur vierge et une "Workbook_Open" avec un MsgBox pour voir...

Bonne nuit
@+Thierry
 
Bonjour à tous ,

Je retrouve là un problème que je n'ai pas encore réussi à résoudre . Petit exemple instructif dans le post suivant :

<http://www.excel-downloads.com/html/French/forum/read.php?f=1&i=119491&t=119491>

En l'occurence , il s'agissait d'un simple copier-coller .

Dans d'autres cas , sheets("toto").activate ne fonctionne pas , dans d'autres , c'est tout simplement l'instruction Calculate qui laisse Excel de marbre .

Le point commun à tous ces soucis est qu'ils se rencontrent dans une procédure appelée par une autre situé dans This workbook .

Bien sûr , il y a des moyens de contourner l'obstacle , mais le mieux serait d'arriver à l'éliminer .

A bientôt
 
réponse à Johanne, @+Thierry et bricole.

1) Auto_open ne marche pas mieux, outre qu'il ne faut pas le faire dixit Thierry
2) Testé sur un autre fichier presque vierge, ça marche

Donc, je ne sais toujours pas pourquoi dans thisworkbook, comme dit bricole, il y a des évènements qui ne sont pas pris en compte ???

A défaut de régler le problème, qui me parait être un bug d'Excel, je ne vois pas d'autres raisons (j'ai même essayé de réécrire TOUTE la procédure en partant de zéro, rine n'y fait), j'aimerais bien que quelqu'un me file une idée pour contourner le Pb : y'a t'il un autre moyen de constater l'ouverture du fichier et de déclencher une procédure ?

Merci à tous...
 
Bjr à tous et à Pascal76 en particulier


Mon fichier à Pb faisant 26 mégas (plus de 35 feuilles ou souvent toutes les colonnes sont utilisées, 10 form, et des centaines de noms de cellules, sans parler du code...) je ne vais pas tout joindre.

J'ai juste fait un copier-coller de ce qui ne marche pas ... et qui se trouve très bien marcher quand transféré dans un autre file... Mais même comme çà, ça dépasse les 50 Ko que nous tolère XLD

Donc je te recopie les lignes ci-dessous... pas de quoi fouetter un chat (Mraoooun qu'est-ce que j'ai encore fait ?)

Bon, c'est ci-dessous... si tu vois un hic, merci de me faire signe
----------------------------------------------------------------------------------------
Option Explicit
Private Sub Workbook_Open()
MsgBox "je suis en routine d'ouverture"
Ecran_Ouverture.Show ' et toute la routine d'ouverture est transférée dans le userform
Application.WindowState = xlMaximized ' agrandir la fenetre au max
End Sub
-----------------------------------------------------------------------------------------

Et je t'ajoute (-sans grand intérêt, car dans mon fichier test ça marche, et que dans mon fichier principal, ça plante) le code du userform appelé Ecran_Ouverture


Private Sub UserForm_Activate()
' jolie routine de progress bar
Dim NbFois, newHour, newMinute, newSecond, waitTime
For NbFois = 1 To 10
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 1
waitTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait waitTime
ProgressBar1.Value = 11 - NbFois
Next
ProgressBar1.Visible = False


Dim i, j As Integer
Dim sFeuille, sNomBouton As String
' c'est la routine auto éxécutable au début du classeur
Worksheets("MENU").Activate
Application.Caption = "Gestion centralisée de discothèque GESNUIT V.5"
' bloquer les ascenseurs de cette page
ActiveWindow.DisplayWorkbookTabs = False
ActiveWindow.DisplayVerticalScrollBar = False
ActiveWindow.DisplayHorizontalScrollBar = False
ActiveWindow.DisplayHeadings = False
ActiveWindow.DisplayGridlines = False
' on cache les barres d'outils
Application.CommandBars("Formatting").Visible = False
Application.CommandBars("Standard").Visible = False
Application.DisplayStatusBar = False
Application.DisplayCommentIndicator = xlCommentIndicatorOnly

' Worksheets("P_Secret").Visible = xlVeryHidden

' **** now nommer les boutons du menu -------------
' RAZ_boutons_menu ' module 1
' ColoreBoutonsMenu ' procédure spéciale du module 1

Application.ScreenUpdating = True ' on peut à nouveau rafraichir l'écran
Ecran_Ouverture.Hide
End Sub

--------------------------------------------------------------------------------------------
Help, que ce passe t'il (j'ai relancé une compilation conseillée par TI dans vériTi, j'ai testé avec un arrêt sur toutes erreurs, rien n'y fait.

En fait je me demande si je ne serais pas arrivé aux limites de taille d'un fichier Excel. Qq1 connait des fichiers de plus de 20 mégas qui fonctionnent bien ? moi je n'avais guère dépassé les 12 mégas avant. J'ajoute que je teste le programme aussi bien sur du 256 que sur du 512 magés... résultat idem.

J'ai mal aux cheveux !

@ bientôt...
 
Bonjour!!

Il se pourrait que la macro ait declenche un application.enableevents=false (desactive les evenements) et qu'il n'y ait pas de application.enableevents=true (pour les reactiver).

Il faudrait essayer d'ouvrir un module, dans un fichier Excel (puisque la macro spallique a l'application Excel), et juste executer application.enableevents=true.

Ca peut marcher...

olive
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Retour