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

Résolu
Walles Messages postés 15 Statut Membre -  
Walles Messages postés 15 Statut Membre -
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

3 réponses

  1. Gyrus Messages postés 3360 Statut Membre 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
  2. ccm81 Messages postés 11033 Statut Membre 2 434
     
    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
  3. Walles Messages postés 15 Statut Membre
     
    Merci beaucoup, en effet cela marche tres bien !
    0