Andrew doit afficher une boîte de dialogue dans sa macro qui permet à un utilisateur de changer de fenêtre. Lorsque quelqu’un affiche l’onglet Affichage du ruban et clique sur l’outil Changer de Windows, il affiche les classeurs disponibles vers lesquels l’utilisateur peut basculer. Voilà ce dont Andrew a besoin pour apparaître dans la boîte de dialogue. Il se demande s’il existe une boîte de dialogue intégrée pour ce faire ou s’il a besoin de créer la sienne.

La réponse courte est qu’il n’y a pas de boîte de dialogue intégrée pour accomplir cette tâche. Vous pouvez cependant créer facilement le vôtre. Voici un exemple simple:

Sub SwitchWindows()

Dim i As Integer     Dim n As Integer     Dim s As String     Dim v As Variant

n = Windows.Count     s = "Choose Window from:"

For i = 1 To n         s = s & Chr(10) & i & ")  " & Windows(i).Caption     Next     s = s & Chr(10) & "Enter a number from 1 to " & n     v = Application.InputBox(prompt:=s, Type:=2)

i = Val(v)

If i >= 1 And i <= n Then         Windows(i).Activate     End If End Sub

Tout cela fait est de créer une liste des noms pour chaque fenêtre de votre système. Il les présente dans une InputBox, puis passe à la fenêtre sélectionnée par l’utilisateur.

Si vous cherchez différentes manières de présenter les mêmes informations, vous pouvez link: / excelribbon-Seeing_All_Open_Workbook_Names [reportez-vous à cette astuce].

_Note: _

Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.

lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur].

ExcelTips est votre source pour une formation Microsoft Excel rentable.

Cette astuce (11911) s’applique à Microsoft Excel 2007, 2010, 2013 et 2016.

Vous pouvez trouver une version de cette astuce pour l’ancienne interface de menu d’Excel ici:

link: / excel-Switching_Windows_in_a_Macro [Changement de Windows dans une macro].