Sommaire des onglets avec valeurs

Fermé
Ahber - Modifié le 10 juin 2018 à 17:54
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 - 11 juin 2018 à 08:38
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

yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
10 juin 2018 à 18:46
bonjour, peut-être en ajoutant
Cells(i + 4, 2) = Sheets(i).[A1]
juste avant
end if
1
C'est exactement ce qu'il me fallait ! merci

seul souci, ca prend beaucoup de temps pour executer
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476 > Ahber
11 juin 2018 à 08:38
peut-ê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
Boisgontierjacques Messages postés 175 Date d'inscription jeudi 19 septembre 2013 Statut Membre Dernière intervention 26 décembre 2018 64
Modifié le 10 juin 2018 à 19:16
Bonsoir,

Sommaire dynamique sans VBA

http://boisgontierjacques.free.fr/fichiers/hyperlien/LienHyperSommaireDyn.xls

Pour ajouter la valeur d'une cellule pour chacune des feuilles,utiliser Indirect()

Boisgontier
http://boisgontierjacques.free.fr
0
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
10 juin 2018 à 19:12
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