JM247L
Messages postés443Date d'inscriptionmardi 27 mars 2007StatutMembreDernière intervention 1 mars 2011
-
18 sept. 2007 à 16:23
tubafat
Messages postés79Date d'inscriptionlundi 17 juillet 2006StatutMembreDernière intervention25 septembre 2007
-
19 sept. 2007 à 16:47
Bonjour,
Au lancement d'une application Excel, je désactive les barres d'outils présentes lors de l'ouverture d'Excel
Afin de remettre en l'état en quittant l'application ou en cas de chargement de fichier - qui n'appartient pas à l'application - par l'utilisateur, je stocke les index de barre d'outils dans un coin
Quitter l'application ne pose pas de problème
Pour le changement de fichier :
Au niveau du fichier de l'application dans Workbook_Activate j'ai mis un code permettant de restituer les
barres d'outils originales le problème c'est comment faire référence au fichier qui vient d'être désactivé ?
Existerait il une possibilité du mêm type que celle pour "Worksheet_Change(ByVal Target As Range)" ?
Ci-dessous le Code
Private Sub Workbook_Activate()
Dim ToolsBar As Object, I
I = Range("CommandBarManagement").Row + 1
For Each ToolsBar In Application.CommandBars
If Application.CommandBars(ToolsBar.Index).Visible = True Then
Application.CommandBars(ToolsBar.Index).Enabled= False
Cells(I, Range("ComBarMgt").Column) = Application.CommandBars(ToolsBar.Index).Index
I = I + 1
End If
Next
End Sub
Private Sub Workbook_Deactivate()
Dim ToolsBar As Object, I
' Blocage à ce niveau car il ne connait pas la zone dans le fichier activé
If Cells(Range("ComBarMgt").Row + 1, Range("ComBarMgt").Column) <> "" Then
I = Range("ComBarMgt").Row + 1
For Each ToolsBar In Application.CommandBars
If Application.CommandBars(ToolsBar.Index).Index = Cells(I, 1) Then
Application.CommandBars(ToolsBar.Index).Enabled = True
Cells(I, Range("ComBarMgt").Column) = ""
I = I + 1
End If
Next
End If
End Sub
Merci de votre support
Cliquer "Réponse Acceptée" Quand La Réponse Est OK
tubafat
Messages postés79Date d'inscriptionlundi 17 juillet 2006StatutMembreDernière intervention25 septembre 2007 19 sept. 2007 à 11:00
Salut,
ne serait-il pas possible de mettre tes index de barre d'outils dans une variable tableau publique à l'activation du workbook, plutôt que sur la feuille?
Je pense que tu devrais ainsi pouvoir récupérer tes valeurs...
Je suis pas trop sur de moi quand même, masi ça peut donner des idées!
Tubafat Avant d'imprimer, pensez à l'environnement
JM247L
Messages postés443Date d'inscriptionmardi 27 mars 2007StatutMembreDernière intervention 1 mars 20112 19 sept. 2007 à 11:40
Salut,
Mon problème n'est pas la gestion des barres d'outils personnalisée mais les barres d'outils standards
En fait lorsque j'ouvre mon appli j'enlève les barres standards Excel et je les remets en fermant l'appli
Le problème c'est quand l'aapli laisse la main à l'utilisateur et que celui ci active un fichier Excel qui n'appartient pas à l'appli ... je voudrais remettre les barres standards Excel
Cliquer "Réponse Acceptée" Quand Réponse OK
JML. Partageons notre savoir et nos acquis
tubafat
Messages postés79Date d'inscriptionlundi 17 juillet 2006StatutMembreDernière intervention25 septembre 2007 19 sept. 2007 à 11:57
OK ce que je voulais dire c'est que quand tu actives ton workbook, tu stockes tes index dans une plage de cellule de ta feuille, mais quand tu essayes de les récupérer sur la même feuille lors de l'évènement workbook_deactivate, le workbook étant désactivé il ne trouve plus la feuille.
Donc je te proposais de stocker tes index non plus sur la feuille mais dans une variable tableau publique, du coup tu pourrais récupérer tes barres d'outils si un nouveau classeur est activé...
Enfin tout ça c'est de la théorie, je maitrise pas trop la syntaxe, mais tu dois pouvoir faire un truc du genre:
Public baroutil() As String
I=0
'puis boucler comme ceci
For Each ToolsBar In Application.CommandBars
If Application.CommandBars(ToolsBar.Index).Visible = TrueThen
Application.CommandBars(ToolsBar.Index).Enabled = False
baroutil(I) = Application.CommandBars(ToolsBar.Index).Index
I = I + 1
End If
Next
et inversement pour l'évènement workbook_deactivate
Tubafat Avant d'imprimer, pensez à l'environnement
JM247L
Messages postés443Date d'inscriptionmardi 27 mars 2007StatutMembreDernière intervention 1 mars 20112 19 sept. 2007 à 16:33
Merci mais je crains que ça ne le fasse pas dans la mesure ou entre le moment ou l'appli est ouverte et celui ou elle est fermée, l'utilisateur à la main et autant que je sache, les variables perdent leur valeur à un moment que je ne saurais définir même si elles sont du domaine publique
Cliquer "Réponse Acceptée" Quand Réponse OK
JML. Partageons notre savoir et nos acquis
Vous n’avez pas trouvé la réponse que vous recherchez ?