Le fichier à télécharger WorkbookActivate.xlsm contient:
Les principales caractéristiques:
- Le Module_WorkbookActivate à importer dans le projet VBA.
- Le Module_Test comme exemple de mise en œuvre.
Les principales caractéristiques:
- 1 seule fonction:
WorkbookActivate() pour activer la ou une fenêtre d'un classeur et l'afficher si cette fenêtre est minimisée.
- En VBA, il peut a priori sembler simple d'activer un classeur par un basique Workbook.Activate , mais il n'en est rien, en particulier si ce classeur possède plusieurs fenêtres qu'un utilisateur aura créées (Affichage / Nouvelle fenêtre) pour plus de commodité.
Par exemple:
-> Workbook.Activate activera toujours la fenêtre initiale du classeur.
-> Workbook.Windows(1).Activate activera la dernière fenêtre active du classeur, ce qui correspond davantage à une logique de traitement.
De plus, si la fenêtre du classeur a été préalablement minimisée, il n'est pas suffisant de l'activer pour la voir apparaître. Il faut aussi la "dé-minimiser", c'est à dire l'afficher dans l'état où elle était avant la minimisation.
- Cette fonction permet d'activer:
- la dernière fenêtre active du classeur (cas le plus classique),
- la fenêtre d'ordre 'n' dans l'activation des fenêtres du classeur,
- la fenêtre initiale du classeur qui ne dépend pas de l'ordre d'activation,
- la fenêtre d'un Handle donné.
- ...
- Elle permet aussi d'afficher la fenêtre désignée si celle-ci est minimisée, dans son état d'avant minimisation.
- La fonction peut bien sûr être utilisée pour un classeur mono-fenêtre ou multi-fenêtres.
- A noter que si la fonction ne trouve pas la fenêtre désignée (Index ou Handle invalide), elle activera la dernière fenêtre active du classeur.
- Placer le Module_WorkbookActivate dans la projet VBA.
- Dans le code VBA, utilise la fonction WorkbookActivate() avec ses paramètres ad hoc.
VB:
'The last Workbook activated Window (most common call)
Call WorkbookActivate(Workbook)
Call WorkbookActivate("MyWorkbook.xlsx")
'
'The initial Window of the Workbook regardless of the activation order
Call WorkbookActivate(Workbook, 0)
Call WorkbookActivate("MyWorkbook.xlsx", 0)
'
'The 2nd last Workbook activated Window
Call WorkbookActivate(Workbook, 2)
Call WorkbookActivate("MyWorkbook.xlsx", 2)
'
'The Workbook Window by Handle
Call WorkbookActivate(Workbook, WindowHandle)
Call WorkbookActivate("MyWorkbook.xlsx", WindowHandle)
- Version
- V1