Dans Excel, sélectionner toutes les feuilles de calcul visibles est aussi simple que de cliquer avec le bouton droit de la souris sur n’importe quel onglet de feuille et de choisir Sélectionner toutes les feuilles. Cependant, accomplir la même tâche avec du code VBA est plus difficile.

L’aide en ligne d’Excel suggère d’utiliser la fonction Array avec la collection Sheets pour sélectionner des feuilles par nom. Cela fonctionne très bien lorsque vous connaissez les noms de chaque feuille du classeur. Cela pose un problème lorsque vous souhaitez créer du code générique pour sélectionner toutes les feuilles de n’importe quel classeur. La bonne nouvelle est que vous pouvez utiliser une variante de la technique de Microsoft pour référencer les feuilles par numéro d’index. Voici le code:

Sub SelectSheets()

Dim myArray() As Variant     Dim i As Integer     For i = 1 To Sheets.Count         ReDim Preserve myArray(i - 1)

myArray(i - 1) = i     Next i     Sheets(myArray).Select End Sub

Cela fonctionne très bien, sauf si le classeur contient des feuilles masquées, où Sheets (i) .Visible = False. Bien sûr, le code ci-dessus peut être adapté pour ignorer les feuilles de calcul masquées:

Sub SelectSheets()

Dim myArray() As Variant     Dim i As Integer     Dim j As Integer     j = 0     For i = 1 To Sheets.Count         If Sheets(i).Visible = True Then             ReDim Preserve myArray(j)

myArray(j) = i             j = j + 1         End If     Next i     Sheets(myArray).Select End Sub

Cependant, il existe un paramètre peu connu de la méthode Select: le paramètre Replace. En utilisant le paramètre Replace, la sélection de toutes les feuilles visibles devient beaucoup plus facile:

Sub SelectSheets1()

Dim mySheet As Object     For Each mySheet In Sheets         With mySheet             If .Visible = True Then .Select Replace:=False         End With     Next mySheet End Sub

Notez que mySheet est défini comme un type de données Object, au lieu d’un type de données Worksheet. Ceci est fait parce que lors des tests, j’ai rencontré un problème avec les feuilles de graphique – elles ne seraient pas sélectionnées car elles n’étaient pas de type Feuille de calcul.

_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 (3058) s’applique à Microsoft Excel 97, 2000, 2002 et 2003. Vous pouvez trouver une version de cette astuce pour l’interface ruban d’Excel (Excel 2007 et versions ultérieures) ici:

link: / excelribbon-Selecting_All_Visible_Worksheets_in_a_Macro [Sélection de toutes les feuilles de travail visibles dans une macro].