Sommaire des onglets avec valeurs

Ahber -  
yg_be Messages postés 23541 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



A voir également:

3 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour, peut-être en ajoutant
Cells(i + 4, 2) = Sheets(i).[A1]
juste avant
end if
1
Ahber
 
C'est exactement ce qu'il me fallait ! merci

seul souci, ca prend beaucoup de temps pour executer
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Ahber
 
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   Statut Membre Dernière intervention   64
 
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 18407 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
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