Masquer Feuilles Excel avec VBA

Bonjour à tous,

Dans le fichier joint vous trouverez 6 onglets :

  • 3 onglets "relevé de cotes"
  • 3 onglets "plan"

Ce fichier est générique et sera "copié/collé". Dans chaque cas d'utilisation, je saurai à l'avance le nombre d'onglets "relevé de cotes" et "plan" qui me seront nécessaires.

Etant débutant dans la pratique du VBA, j'aurai besoin de vos conseils afin de créer un sub qui me permettra, à l'ouverture du fichier, de masquer les onglets qui ne me seront pas utiles à l'aide de messages box :

  • une pour les onglets "relevé de cotes"
  • une pour les onglets "plan"

En vous remerciant d'avance pour vos réponses

6exemple-vba.xlsx (9.82 Ko)

Bonjour TheHarryPop, toutes et tous,

Un essai, si cela convient.

Cordialement.

9exemple-v1.xlsm (25.85 Ko)

Bonjour Mdo100,

Merci pour cette réponse rapide.

J'ai du mal m'exprimer. J'aimerai qu'à l'ouverture de mon fichier deux message box s'affichent.

Exemple :

La message box pour "relevé de cotes" s'affiche en posant la question :

-combien d'onglet "relevé de cotes" ?

Je répond : "2"

Résultat : L'onglet "relevé de cotes (3)" est masqué il ne reste plus que le (1) et le (2)

La message box pour "plan" s'affiche en posant la question :

-combien d'onglet "plan" ?

Je répond : "1"

Résultat : Les onglets "plan (2)" et "plan (3)" sont masqués il ne reste plus que le (1)

A l'issue de ces deux messages box à l'ouverture de mon fichier, je travaillerai donc avec 3 onglets qui sont :

  • Relevé de cotes (1)
  • Relevé de cotes (2)
  • Plan (1)

Après recherches de ma part, j'ai réussi à bricoler ce code. Je sais qu'il n'est pas simplifié (je pense qu'on peut y intégrer des variables) mais ça fonctionne parfaitement pour l'utilisation que j'en ai alors....

Si jamais ça intéresse quelqu'un (ou si quelqu'un a une critique à faire)

Private Sub Workbook_Open()

Dim Nombre As String

Nombre = InputBox("Nombre de page(s) Relevé de cotes ?", "Relevé(s) de cotes")

If Nombre = 1 Then

Worksheets("Relevé Cotes (1)").Visible = 1
Worksheets("Relevé Cotes (2)").Visible = 0
Worksheets("Relevé Cotes (3)").Visible = 0
Worksheets("Relevé Cotes (4)").Visible = 0
Worksheets("Relevé Cotes (5)").Visible = 0

ElseIf Nombre = 2 Then
Worksheets("Relevé Cotes (1)").Visible = 1
Worksheets("Relevé Cotes (2)").Visible = 1
Worksheets("Relevé Cotes (3)").Visible = 0
Worksheets("Relevé Cotes (4)").Visible = 0
Worksheets("Relevé Cotes (5)").Visible = 0

ElseIf Nombre = 3 Then
Worksheets("Relevé Cotes (1)").Visible = 1
Worksheets("Relevé Cotes (2)").Visible = 1
Worksheets("Relevé Cotes (3)").Visible = 1
Worksheets("Relevé Cotes (4)").Visible = 0
Worksheets("Relevé Cotes (5)").Visible = 0

ElseIf Nombre = 4 Then
Worksheets("Relevé Cotes (1)").Visible = 1
Worksheets("Relevé Cotes (2)").Visible = 1
Worksheets("Relevé Cotes (3)").Visible = 1
Worksheets("Relevé Cotes (4)").Visible = 1
Worksheets("Relevé Cotes (5)").Visible = 0

ElseIf Nombre = 5 Then
Worksheets("Relevé Cotes (1)").Visible = 1
Worksheets("Relevé Cotes (2)").Visible = 1
Worksheets("Relevé Cotes (3)").Visible = 1
Worksheets("Relevé Cotes (4)").Visible = 1
Worksheets("Relevé Cotes (5)").Visible = 1

End If

Dim Nombre_2 As String

Nombre_2 = InputBox("Nombre de page(s) Plan ?", "Plan(s)")

If Nombre_2 = 1 Then

Worksheets("Plan (1)").Visible = 1
Worksheets("Plan (2)").Visible = 0
Worksheets("Plan (3)").Visible = 0
Worksheets("Plan (4)").Visible = 0
Worksheets("Plan (5)").Visible = 0

ElseIf Nombre_2 = 2 Then
Worksheets("Plan (1)").Visible = 1
Worksheets("Plan (2)").Visible = 1
Worksheets("Plan (3)").Visible = 0
Worksheets("Plan (4)").Visible = 0
Worksheets("Plan (5)").Visible = 0

ElseIf Nombre_2 = 3 Then
Worksheets("Plan (1)").Visible = 1
Worksheets("Plan (2)").Visible = 1
Worksheets("Plan (3)").Visible = 1
Worksheets("Plan (4)").Visible = 0
Worksheets("Plan (5)").Visible = 0

ElseIf Nombre_2 = 4 Then
Worksheets("Plan (1)").Visible = 1
Worksheets("Plan (2)").Visible = 1
Worksheets("Plan (3)").Visible = 1
Worksheets("Plan (4)").Visible = 1
Worksheets("Plan (5)").Visible = 0

ElseIf Nombre_2 = 5 Then
Worksheets("Plan (1)").Visible = 1
Worksheets("Plan (2)").Visible = 1
Worksheets("Plan (3)").Visible = 1
Worksheets("Plan (4)").Visible = 1
Worksheets("Plan (5)").Visible = 1

End If

End Sub
Rechercher des sujets similaires à "masquer feuilles vba"