Afficher/Masquer des feuilles en fonction de la complétion d'une cellule, feuilles dont les noms sont dans une autre cellule de la même ligne

Bonjour la communauté,

Vous trouverez joint un fichier pour lequel je rencontre un souci.
Fichier.xlsm (452,5 Ko)

Le fichier contient une feuille data qui me sert à encoder diverses données. L’encodage se fait sous forme de tableau pour plus de facilité. Ces données sont ensuite reproduites dans des feuilles distinctes sous une autre forme en vue de plublication et de partage. Ces feuilles sont numérotées de 1 à 50. Elles acceuillent donc, chacune, les données d’une ligne du tableau.

De base, je souhaite que le classeur n’affiche pas les feuilles individuelles (1 à 50).
Par contre, si une donnée est introduite dans une cellule de la colonne E je souhaiterais que la feuille corespondante s’affiche (nom de la feuille en A sur la même ligne).

Exemple : j’introduis une donnée en E3 (première ligne de données du tableau), je souhaite faire afficher la feuille 1, dont le numéro est en colonne A3.

Je me suis essayé, avec un succès tout relatif, à bricoler un truc mais ça ne tourne pas correctement.

Ce que mes commandes font:

  • Si j’introduis une donnée en E3 ou E4 alors aucune feuille ne s’affiche.
  • Par contre, à partir de E5 et infra, les feuilles 1, 2, etc s’affichent.

J’ai donc un décalage que je n’ai pas réussi à comprendre.

Alors, deux choses:

  1. Pourriez-vous m’indiquer mon erreur ?
  2. Je suppose qu’il y a certainement plusieurs manières de faire et certainement une plus orthodoxe… Comment feriez-vous ?

Merci d’avance pour le coup de main.
Bonne journée.

1 « J'aime »

Bonsoir,

A essayer comme évènement de la feuille Data:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim cellule As Range
Dim b As String
For Each cellule In Range("TTargets[E]")
If cellule <> "" Then
b = cellule.Offset(0, -4)
Sheets(b).Visible = True
End If
Next
End Sub

Fichier.xlsm (423,0 Ko)

Cordialement

2 « J'aime »

Salut Jacquinot,
Merci pour ta proposition, qui fonctionne parfaitement !
Note bien qu’entre-temps, j’avais réussi à rendre fonctionnel mon code. En fait, les feuilles affichées l’étaient en fonction de leur ranking dans la barre du classeur et non en fonction du nom de la feuille.

En tout état de cause, ta solution est plus élégante.
Sujet résolu ! Merci

1 « J'aime »

Ce fut un plaisir d’avoir pu vous aider, :blush:
Bonne continuation !

1 « J'aime »

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.