Masquer onglet (en fonction d'élément dans une colonne)

Bonjour tout le monde,

J'ai fait le tour du forum, pensant avoir trouvé une solution mais ceci ne s'applique apparemment qu'à une cellule ou j'ai mal retranscrit ..

Je m'explique j'ai un fichier avec plusieurs onglets, dans l'onglet "Finitions" et dans la colonne A j'ai une liste disponible pour chaque cellule entre : Bois / Stratifié / Compact, j'aimerais que si dans l'une des cellules de cette colonne il y est "Bois" l'onglet "Prix Bois" ne soit plus masqué (mais sans être amené dessus), et si il s'agit de stratifié ou compact que l'onglet "Prix" soit affiché (j'aimerais la notion de "ou" car il se peut que je doive faire un troisième onglet prix et donc que je reprennes la formule).

Si aucunes valeurs dans la colonne alors les deux onglets de prix sont masqués et s'il y a la présence dans la colonne de Bois et stratifié forcément les deux onglets sont visibles.

Je vous remercie d'avance :)

Si je ne suis pas assez compréhensible n'hésitez pas à me le dire

8maquette.xlsm (58.88 Ko)

Bonjour

un essai:

6maquette.xlsm (54.04 Ko)

Sub en module 3

Hello,

J'ai téléchargé le fichier et en essayant de sélectionner Bois ça ne fonctionne pas pour ma part :/

J'ai vue que c'était en module 3 mais est-ce normal que ça ne fonctionne pas ?

Merci d'avance !

Edit 2 :

Private Sub Worksheet_Change(ByVal Target As Range)
Sheets("Prix Bois").Visible = False
Sheets("Prix").Visible = False
Dim c As Range
Set c = Range("A1:A" & [A65000].End(xlUp).Row).Find("Bois")
If c Is Nothing Then
Sheets("Prix Bois").Visible = False
Else
Sheets("Prix Bois").Visible = True
End If
Set c = Range("A1:A" & [A65000].End(xlUp).Row).Find("Stratifié")
If c Is Nothing Then
Set c = Range("A1:A" & [A65000].End(xlUp).Row).Find("Compact")
If c Is Nothing Then
Sheets("Prix").Visible = False
Else
Sheets("Prix").Visible = True
End If
Else
Sheets("Prix").Visible = True
End If
End Sub

Du coup j'ai fait de la manière suivante directement dans le code de la feuille ça fonctionne

Est-ce une bonne idée de le mettre dans le code de la feuille, pourquoi être passé par le module de ton côté ?

Merci à toi,

Cordialement

Bizarre, normalement si tu est sur la bonne feuille ça devrait fonctionner (en tout cas chez moi pas de pb)

J'ai juste l'habitude de passer par les modules, la macro se lancera sur la feuille que tu sélectionne (sauf si indication contraire).

Pour le coup, le code est spécifique à la feuille donc oui ça doit être mieux de passer directement par elle

(c'est comme ça que je l'ai comprit jusqu’à présent mais je débute en macro donc peut être que ça n'a rien à voir ...)

Ecoute en tout cas tu as réussis à résoudre mon problème c'est que tu es bien plus doué que moi en VBA

Oui je préfère l'associer à la feuille dans ce cas car je n'aimerais pas que la macro ce lance sur toutes les feuilles

Je passe le sujet en résolu du coup, le code à l'air d'être plutôt rapide et carré donc je ne pense pas qu'il y aura mieux ! Encore merci à toi !

Rechercher des sujets similaires à "masquer onglet fonction element colonne"