Activer une feuille lors d'un double click sur une cellule

Résolu
Walles Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   -  
Walles Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour a tous (desole pour les accents mais j'ai un clavier qwerty...),

Je souhaiterai ouvrir une feuille de mon fichier excel en double clickant sur une cellule.

Le but serait d'avoir en premiere page des cellules contenant du texte et lorsque l'on viendrait double clicker sur une cellule cela ouvrirait la page du meme nom. J'y suis plus ou moins arrive mais de maniere tres rustre et pas du tout evolutive.

Je vous donne un exemple:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

If Target.Value = ("A") Then
Sheets("A").Activate
End If

If Target.Value = ("B") Then
Sheets("B").Activate
End If

If Target.Value = ("C") Then
Sheets("C").Activate
End If

If Target.Value = ("D") Then
Sheets("D").Activate
End If

End Sub


J'ai essayer de creer des bloucles, declarer des variables mais rien a faire, il n'y a que cela qui fonctionne pour l'instant.

En plus ce fichier sera evolutif, il faudrait que si on doit ajouter quelque chose, on remplit une nouvelle cellule, on cree la feuille avec le meme nom et que le lien se fasse automatiquement.

J'espere avoir ete clair, n'hesitez pas me demander si vous avez besoin de plus d'information.

Merci d'avance
A voir également:

3 réponses

Gyrus Messages postés 3334 Date d'inscription   Statut Membre Dernière intervention   526
 
Bonjour,

Essaie avec
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim Ws As Worksheet
For Each Ws In Worksheets
If Ws.Name = Target.Value Then
Sheets(Target.Value).Activate
Exit For
End If
Next Ws
End Sub

A+
1
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
Bonjour

Tu as les liens hypertexte qui font ça sans avoir recours à vba
Sinon, essaies ceci (pour un double clic dans la plage B2:B5)

Const plage = "B2:B5"

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range(plage)) Is Nothing Then
Sheets(Target.Value).Select
End If
End Sub

Cdlmnt
0
Walles Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
Merci beaucoup, en effet cela marche tres bien !
0