Sommaire des onglets avec valeurs
Ahber
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention -
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
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 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
bonjour, peut-être en ajoutantCells(i + 4, 2) = Sheets(i).[A1]
juste avantend if
-
- 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
-
-
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 -
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