Click sur cellule pour Aller sur Onglet avec 95 onglets au menu principale

Bonjour,

Je suis bloqué sur un sujet concernant le click d'une cellule pour aller sur un onglet, j'ai trouvé sur le Net un code mais qui est limité à 9 onglets alors que j'en possède 95 onglets , peut-on m'aider ou m'expliquer .... Je vous joins le code:

Private Sub Worksheet_SelectionChange(ByVal c As Range)

Dim sh As Worksheet

If c.Row = 1 Or c.Count > 1 Or Cells(c.Row, 1) = "" Then Exit Sub

For Each sh In ThisWorkbook.Sheets

If sh.Name <> "RECAP" Then

If InStr(LCase(Cells(c.Row, 1)), LCase(sh.Name)) > 0 Then sh.Select: Exit Sub

End If

Next sh

End Sub

Bonjour NOUBLI et

Une petite présentation ICI serait la bienvenue

Si vous ne l'avez pas encore fait, je vous invite à lire la charte du forum [A LIRE AVANT DE POSTER]
qui vous aidera dans vos demandes et réponses sur ce forum et notamment :

  • Joignez (si possible) un fichier pour augmenter vos chances d'obtenir de l'aide en cliquant sur le bouton Fichier de l'éditeur. Si votre fichier est trop lourd ou contient des données personnelles, créez une version allégée de votre fichier avec juste assez d'informations pour permettre de comprendre votre problème. Dans tous les cas, ne postez JAMAIS de fichiers avec des informations personnelles ou confidentielles (cet utilitaire peut vous aider à les retirer).
  • Pour plus de lisibilité, utilisez la fonctionnalité </> pour insérer vos codes VBA (et si possible aussi pour vos formules Excel).

Concernant votre problématique, si le code n'est pas dans le classeur à traiter, il faut modifier "ThisWorkbook" par "ActiveWorkbook"

Merci de votre participation

Cordialement

Bonjour et bienvenu

Tu parles de clic et ta macro c'est selection change

un fichier est TOUJOURS le bienvenu

Dans ta cellule il y a le nom de la feuille?

If LCase(c.value)= LCase(sh.Name) Then sh.Select: Exit Sub

Devrait mieux fonctionner (même pour 95 feuilles)

A+ François

Bonjour à tous,

Moi, je préfère les liens hypertextes :

Option Explicit

Sub CreationOngletMenu()

Dim I As Integer, J As Integer
Dim ShMenu As Worksheet
Dim LigneOnglet As ListRow
Dim AdresseLien As String

    On Error GoTo Fin

    For I = Sheets.Count To 1 Step -1
        If Sheets(I).Name = "Menu" Then
           Application.DisplayAlerts = False
           Sheets(I).Delete
           Application.DisplayAlerts = True
           Exit For
        End If
    Next I

    Set ShMenu = Sheets.Add(before:=Sheets(1))
    With ShMenu
         .Name = "Menu"
         .Range(.Cells(10, 1), .Cells(10, 2)) = Array("Onglet", "Lien")
         .ListObjects.Add(xlSrcRange, Range("$A$10:$B$10"), , xlYes).Name = "TableDesOnglets"
    End With

    For I = 1 To Sheets.Count
        Select Case Sheets(I).Name
               Case "Menu"

               Case Else
                    Set LigneOnglet = ShMenu.ListObjects("TableDesOnglets").ListRows.Add
                    With LigneOnglet
                         .Range(1, 1) = Sheets(I).Name
                         AdresseLien = "'" & .Range(1, 1) & "'!A1"
                         ShMenu.Hyperlinks.Add Anchor:=LigneOnglet.Range(1, 2), Address:="", SubAddress:=AdresseLien, TextToDisplay:=CStr(I)
                    End With
                    Set LigneOnglet = Nothing
        End Select

    Next I

    ShMenu.Activate

    GoTo Fin

Fin:

    Set ShMenu = Nothing

End Sub

Bonjour,

Voici le fichier où j'ai seulement 20 onglets et j'ai essayé le code mais cela ne fonctionne pas, peut-être ai-je fait une erreur....

2recap.xlsm (33.09 Ko)

Pourquoi faire simple ...

Ma solution

3recap.xlsm (31.48 Ko)

une autre variante (avec gestion des erreurs

3recap1.xlsm (31.97 Ko)

A+ François

Merci pour les réponses, cela correspond exactement à ce que j'attendais, je suis admiratif à vos réponses .... Merci encore ....

Rechercher des sujets similaires à "click aller onglet onglets menu principale"