Sommaire des onglets avec valeurs

Bonjour,

je souhaite créer une feuille "Sommaire" qui résume tous les onglets disponible dans le classeur et affiche devant chaque nom de feuille une valeur précise récupérée sur cette dernière.

Il faudrait que ce sommaire se mette à jour automatiquement quand de nouvelles feuilles sont crées

Idéalement (mais pas nécessaire) les noms des feuilles soient des liens vers ces feuilles

Quelqu'un pourrait il m'aider ?

->

J'ai trouvé ce code qui permet d'insérer les noms des feuilles avec des liens vers ces dernières, il va manquer juste la partie d'insérer une valeur vis a vis chaque nom de feuille
Sub Onglets()

Dim i, j As Integer
Dim MENU(5 To 50, 1 To 1) As Variant
Dim FeuilleActive As String

i = 1

FeuilleActive = ActiveSheet.Name

For i = 1 To ThisWorkbook.Sheets.Count

If Sheets(i).Name <> "Menu" Then
Cells(i + 4, 1).Select

ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:="'" &

Sheets(i).Name & "'!A1", TextToDisplay:=Sheets(i).Name

' MENU(i + 4, 1) = Sheets(i).Name

End If
Next

'Sheets(FeuilleActive).Range("A5:A54") = MENU

End Sub

3 réponses

  1. Contributeur
    bonjour, peut-être en ajoutant
    Cells(i + 4, 2) = Sheets(i).[A1]
    juste avant
    end if
    1
    1. C'est exactement ce qu'il me fallait ! merci

      seul souci, ca prend beaucoup de temps pour executer
      0
    2. Contributeur
      @Ahberpeut-être un peu plus rapide:
      Sub Onglets()
      
      Dim i As Integer, c As Integer
      
      Application.ScreenUpdating = False
      c = ThisWorkbook.Sheets.count
      For i = 1 To c
          If Sheets(i).Name <> "Menu" Then
              ActiveSheet.Hyperlinks.Add Anchor:=Cells(i + 4, 1), Address:="", SubAddress:="'" & _
                  Sheets(i).Name & "'!A1", TextToDisplay:=Sheets(i).Name
              Cells(i + 4, 2) = Sheets(i).[A1]
          End If
      Next
      Application.ScreenUpdating = True
      End Sub
      0
  2. Bonsoir,

    Clic droit sur l'onglet de ta feuille/Visualiser le code et colle ce code voir

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim i As Integer
    For i = 1 To Worksheets.Count
    Cells(4 + i, 1) = Worksheets(i).Name
    Next i
    End Sub

    il est possible de compléter le code pour éviter la mise à jour permanente de la liste
    0