Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Afficher et selectionner une feuille SI

  • Initiateur de la discussion Initiateur de la discussion jeromeN95
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

jeromeN95

XLDnaute Impliqué
Bonjour le forum,
Le fichier s'ouvre sur l'onglet "Page de garde" (le reste des feuilles sont masquer via 0-Visible)
Dans "Page de garde",
Lorsque l'on clic sur E14 "Si pas vide" = renvoyer à la page "Votre Buanderie" en B2
sur E16 "Si pas vide" = renvoyer à la page "Votre Cuisine" en B2
sur E18 "Si pas vide" = renvoyer à la page "Hébergement" en E3
sur E20 "Si pas vide" = renvoyer à la page "Adoucisseur" en E3

J'essaie mais je n'ai pas de résultats :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$E$14" Then
      If [E14].value <> "" Then
      Sheets("Votre Buanderie").Visible = True
      Sheets("Votre Buanderie").Select
      Range("B2").Select
      End If
    End If
End Sub
😎
 
Re : Afficher et selectionner une feuille SI

Bonjour,

C'était pas loin du tout,

Enfin moi je suis en excel 2003 et comme cela ça fonctionne

 
Re : Afficher et selectionner une feuille SI

Bonjour le fil

Histoire de varier les plaisirs, une autre façon de faire
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim a$
If Target.Text <> "" And Target.Column = 5 Then
With Target
a = Switch(.Row = 14, "Votre Buanderie/B2", .Row = 16, "Votre Cuisine/B2", .Row = 18, "Hébergement/E3", .Row = 20, "Adoucisseur/E3")
End With
With Sheets(Split(a, "/")(0))
    .Visible = True: .Select: .Range(Split(a, "/")(1)).Select
End With
End If
End Sub
 
Dernière édition:
Re : Afficher et selectionner une feuille SI

Re

Je suis partisan de la pluralité des solutions proposées dans un fil.

Au final, le demandeur choisira la solution qui lui plait.

Et pour ma part, j'aurai pris plaisir à me détendre un dimanche pluvieux avec VBA.

EDITION: Une question pour jeromeN95
Pourquoi avoir créer un second fil?
Il y avait déjà celui-ci
https://www.excel-downloads.com/threads/lien-hypertexe-dans-cellule.164746/
 
Dernière édition:
Re : Afficher et selectionner une feuille SI

Bonjour a tous et merci beaucoup de toute ces réponses.
Comme tu dit Staple1600 c'est bien d'avoir plusieur personne qui répondent.
Ca permet de comparaer les différentes méthodes d'écriture et de choisir le code qui plait, évolutif, simple, ...

J'ai crée ce 2nd fil car le 1er, JPN me donne pas mal de réponse pour crée un lien hypertext.
Sauf que je me rend compte que ca prend beaucoup de temps et qu'il y a besoin de bidouiller car j'ai des leins hypertext qui génèrent des problèmes.
De plus, cette méthode plus "rapide" me permettera de présenter le fichier le 24.6.
J'aurais un peu plus de temps par la suite pour revenir sur le problème Lien HP.

Merci beaucoup Staple1600 mais ton code fonctionne lorsque je quitte la cellule.
Moi je cherche à :
On selectionne la cellule vide, on ajoute un texte, on valide --> Rien ne se passe.
On revient sur la cellule par simple selection de celle-ci, et si elle n'est pas vide alors elle renvoie à la feuille correspondante;

En tout cas un grand merci a tout ceux qui m'aide.
 
Re : Afficher et selectionner une feuille SI

Re

Pour faire ce dont tu parles, il faut utiliser la bonne procédure événementielle présente.

C'est ici qu'on voit le désavantage de plusieurs fils pour une même question.
Dans ce fil, la procédure de ton exemple est Worksheet_Change
Or tu parles de click

Donc en choisissant de mettre le VBA dans la procédure adéquate , tu devrais te rapprocher du but.
 
Dernière édition:
Re : Afficher et selectionner une feuille SI

ok, merci je vais essayer.
J'ai pas du faire correctement car ça ne fonctionne pas :
Code:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Dim a
If Target.Text <> "" And Target.Column = 5 Then
With Target
a = Switch(.Row = 14, "Votre Buanderie/B2", .Row = 16, "Votre Cuisine/B2", .Row = 18, "Hébergement/E3", .Row = 20, "Adoucisseur/E3")
End With
With Sheets(Split(a, "/")(0))
    .Visible = True: .Select: .Range(Split(a, "/")(1)).Select
End With
End If
End Sub
J'ai également essayer avec :
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
 
Dernière édition:
Re : Afficher et selectionner une feuille SI

Re


Et avec celle-ci ?
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim a$
If Target.Text <> "" And Target.Column = 5 Then
With Target
a = Switch(.Row = 14, "Votre Buanderie/B2", .Row = 16, "Votre Cuisine/B2", .Row = 18, "Hébergement/E3", .Row = 20, "Adoucisseur/E3")
End With
With Sheets(Split(a, "/")(0))
    .Visible = True: .Select: .Range(Split(a, "/")(1)).Select
End With
End If
End Sub

PS: ma précédente réponse était plus ou moins erronée.
(Sans doute un contre-coup d'un abus d'apéritif plutôt dans l’après-midi - désolé )
 
Dernière édition:
Re : Afficher et selectionner une feuille SI

Re

Dim a$
est l'équivalent de:
Dim a As String

Chez moi cela fonctionne
Sélectionne par exemple la cellule E14
tu te retrouves sur le feuille adéquate: Votre Buanderie
 
Re : Afficher et selectionner une feuille SI

Bonsoir ,

Ce code est bien sur à incorporer dans le code de la feuille où tu fais les saisies,

Car moi aussi cela fonctionne très bien .

Mais encore un fois tu nous aurais mis un classeur démo dès le départ , tu aurais vu ou la macro était implantée
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
287
Réponses
10
Affichages
656
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…