[Excel2010] - Créer un sommaire des onglets
Bonjour,
J'aimerai créer un onglet nommé sommaire, le mettre tout au début:
Sur cet onglet rentrer la liste totale des onglets présent dans le classeur.
J'ai mis un fichier exemple.
en A1 date du jour Range ("A1").value = "Date : " & Now
en A5 Range("A5").Value = "Nombre total d'onglet :" &.......
En A6 Range ("A6").Value = "Nombre total onglet visible :" & .....
En A7 Range ("A7").Value = "Nombre total onglet masqué:" & .....
Cellule B9 le titre Nom de l'onglet
En cellule B10 démarrer la liste de tous les onglets
En cellule C10 mettre un lien hypertexte pour aller direct à l'onglet souhaiter
J'ai trouver ceci pour faire la liste des onglets:
Sub Snamelist()
Dim i As Integer
Range("B10").Select
For i = 1 To Sheets.Count
ActiveCell.Value = Sheets(i).Name
ActiveCell.Offset(1, 0).Select
Next i
End Sub Merci pour votre aide.
Bonne soirée.
bonjour
clic droit dans la zone des flèches d'onglet
Bonjour
a voir
Sub ListOnglet()
Dim Lig&, I&
Lig = 6
For I = 1 To Sheets.Count
Range("B" & Lig).Value = Sheets(I).Name
Lig = Lig + 1
Next I
End SubA+
Maurice
Bonjour,
Merci Archer et JMD
JMD j'ai effectué clic droit çà me montre juste la liste, j'aimerai pouvoir la lire sur une feuille sommaire.
J'ai avancé un peu sur mon fichier.
re
salut au passage archer
pour ma gouverne : quelle est la différence entre un sommaire et une liste ?
(surtout que là il n'y a pas de notion de pages, utiles sur un sommaire d'ouvrage paginé)
Bonsoir,
Merci de vous pencher sur mon sujet.
Alors j'aimerai bien me créer un sommaire car des fois j'ouvre des classeurs que je n'ai pas créer.
1)Si on fais clic droit au niveau des flèches : On à la liste uniquement des onglets visibles. Mais je connaissais pas cette astuce, merci.
2) J'aimerai donc mettre ma macro en macro complémentaire SOMMAIRE qui fait le café :
Liste tous les onglets présents.
Compte le nombre d'onglets masqué.
Compte le nombre d'onglets visible.
Met un lien hypertexte vers chacun.
Je l'ai appelé sommaire mais liste des onglets c'est ce qui ce rapproche le mieux.
J'ai un peu avancé.
Bonjour,
le top du top est de faire un sommaire dont les noms changent quand on change le nom d'un onglet !
je dois bien avoir cela !
exemple (je suis pour la simplicité)
nota : tu ne pourras jamais voir les onglets xlveryhidden
Coucou,
J'avais avancé et fais çà :
Sub Sommaire()
Dim i As Integer
'Titre du sommaire
Range("A1").Value = "LISTE DES ONGLETS PRESENTS DANS CE CLASSEUR"
'Date de la création du sommaire
Range("A3").Value = "Date : " & Now
'Nombre total onglets présent dans le Classeur
Range("A5").Value = "Nombre total d'onglets présent dans le classeur : " & Sheets.Count
'Nombre total onglets visibles dans ce Classeur
Range("A6").Value = "Nombre total d'onglets visibles dans le classeur : "
'Nombre total onglets masqués dans ce Classeur
Range("A7").Value = "Nombre total d'onglets masqués dans le classeur : "
'Titre
Range("B9").Value = "NOM DES DIFFERENTS ONGLETS "
'Nombre des onglets
Range("A9").Value = "Nbre "
For i = 1 To Sheets.Count
'Position de l'onglet
Range("A" & 9 + i).Value = i
ActiveCell.Offset(1, 0).Select
'Nom de la feuille
'Range("B" & 9 + i).Select
'ActiveCell.Value = Sheets(i).Name
'Lien hypertexte de l'onglet
Range("B" & 9 + i).Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
Sheets(i).Name & "!A1", TextToDisplay:=Sheets(i).Name
Next i
Cells.Select
Selection.Font.Underline = xlUnderlineStyleSingle
Selection.Font.Underline = xlUnderlineStyleNone
With Selection.Font
.Name = "Calibri"
.Size = 18
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.ThemeFont = xlThemeFontMinor
End With
End SubCoucou,
Merci Steelson de venir m'aider aussi. C'est pas tout à fait ce que je veux pour ton exemple, la partie ou çà rennome le sommaire directement si on modifie le nom d'un onglet est super intéressant quand même.
J'ai quasi tout ce que je souhaite me manque ;
1) La partie de créer la feuille Sommaire en 1er onglet.
2) Identifier les onglets masqués. Je fouille sur ce point
Steelson je viens de voir ta remarque sur le veryhidden en fait je cherche juste les Onglets masqués. Les onglets masqués par l'interface VBA je vais pas en trouver souvent je pense.
Voici
Sub LISTE()
Columns("A:C").ClearContents
Cells(1, 1) = "Feuille"
Cells(1, 2) = "Visible (-1) / Masquée (0)"
i = 2
For Each ws In Worksheets
Cells(i, 1) = ws.Name
Cells(i, 2) = ws.Visible
Cells(i, 3) = IIf(ws.Visible = 0, "Masquée", "Visible")
i = i + 1
Next
End Subà intégrer à ton projet
Bonsoir
les onglet on 3 format -1,0,2
voir la macro
Sub ListOnglet()
Dim Lig&, I&, T1&, T2&, T3&
Feuil9.Select
Lig = 10
T1 = 0
T2 = 0
T3 = 0
For I = 1 To Sheets.Count
Range("A" & Lig).Value = I
Range("B" & Lig).Value = Sheets(I).Name
If Sheets(Sheets(I).Name).Visible = -1 Then T1 = T1 + 1
If Sheets(Sheets(I).Name).Visible = 0 Then T2 = T2 + 1
If Sheets(Sheets(I).Name).Visible = 2 Then T3 = T3 + 1
Lig = Lig + 1
Next I
Range("A3").Value = "Date : " & DateValue(Now)
Range("A5").Value = "Nombre total d'onglets pr?sent dans le classeur : " & Sheets.Count
Range("A6").Value = "Nombre total d'onglets visibles dans le classeur : " & T1
Range("A7").Value = "Nombre total d'onglets non visibles dans le classeur : " & T2
Range("A8").Value = "Nombre total d'onglets hidden dans le classeur : " & T3
End SubA+
Maurice
Bonsoir,
Voilà le code ou je suis arrivé
Sub Sommaire()
Sheets.Add.Name = "Sommaire"
Dim i As Integer
'Titre du sommaire
Range("A1").Value = "LISTE DES ONGLETS PRESENTS DANS CE CLASSEUR"
'Date de la création du sommaire
Range("A3").Value = "Date : " & Now
'Nombre total onglets présent dans le Classeur
Range("A5").Value = "Nombre total d'onglets présent dans le classeur : " & Sheets.Count
'Nombre total onglets visibles dans ce Classeur
Range("A6").Value = "Nombre total d'onglets visibles dans le classeur : "
'Nombre total onglets masqués dans ce Classeur
Range("A7").Value = "Nombre total d'onglets masqués dans le classeur : "
'Titre
Range("B9").Value = "NOM DES DIFFERENTS ONGLETS "
'Nombre des onglets
Range("A9").Value = "Nbre"
For i = 1 To Sheets.Count
'Position de l'onglet
Range("A" & 9 + i).Value = i
ActiveCell.Offset(1, 0).Select
'Nom de la feuille
'Range("B" & 9 + i).Select
'ActiveCell.Value = Sheets(i).Name
'Lien hypertexte de l'onglet
Range("B" & 9 + i).Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
Sheets(i).Name & "!A1", TextToDisplay:=Sheets(i).Name
'Savoir si feuille masquée ou visible
Range("C" & 9 + i).Select
Range("C" & 9 + i).Value = IIf(ws.Visible = 0, "Masquée", "Visible")
Next i
Cells.Select
Selection.Font.Underline = xlUnderlineStyleSingle
Selection.Font.Underline = xlUnderlineStyleNone
With Selection.Font
.Name = "Calibri"
.Size = 18
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.ThemeFont = xlThemeFontMinor
End With
End Sub
'ws.Visiblepar contre çà bug à ce niveau justement pour savoir si masqué ou pas
'Savoir si feuille masquée ou visible
Range("C" & 9 + i).Select
Range("C" & 9 + i).Value = IIf(ws.Visible = 0, "Masquée", "Visible")Bonsoir,
Voilà j'ai modifié
'Savoir si feuille masquée ou visible
Range("C" & 9 + i).Select
Range("C" & 9 + i).Value = IIf(Sheets(i).Visible = 0, "Masquée", "Visible")Je progresse
Bonsoir,
J'ai adapté, merci beaucoup pour votre aide Steelson et Archer.
Sub Sommaire()
Sheets.Add.Name = "Sommaire"
Dim i As Integer
'Titre du sommaire
Range("A1").Value = "LISTE DES ONGLETS PRESENTS DANS CE CLASSEUR"
'Date de la création du sommaire
Range("A3").Value = "Date : " & Now
'Nombre total onglets présent dans le Classeur
Range("A5").Value = "Nombre total d'onglets présent dans le classeur : " & Sheets.Count
'Nombre total onglets visibles dans ce Classeur
Range("A6").Value = "Nombre total d'onglets visibles dans le classeur : "
'Nombre total onglets masqués dans ce Classeur
Range("A7").Value = "Nombre total d'onglets masqués dans le classeur : "
'Titre
Range("B9").Value = "NOM DES DIFFERENTS ONGLETS "
'Nombre des onglets
Range("A9").Value = "Nbre"
For i = 1 To Sheets.Count
'Position de l'onglet
Range("A" & 9 + i).Value = i
ActiveCell.Offset(1, 0).Select
'Nom de l'onglet : Sans lien hypertexte.
'Range("B" & 9 + i).Select
'ActiveCell.Value = Sheets(i).Name
'Nom de l'onglet : Avec Lien hypertexte.
Range("B" & 9 + i).Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
Sheets(i).Name & "!A1", TextToDisplay:=Sheets(i).Name
'Savoir si Onglet Masqué ou Visible ou Caché
'Sheets(i).Visible = -1 Veux dire Visible
'Sheets(i).Visible = 0 Veux dire Masqué
'Sheets(i).Visible = 1 Veux dire Caché
Range("C" & 9 + i).Select
Range("C" & 9 + i).Value = IIf(Sheets(i).Visible = 0, "Masqué", IIf(Sheets(i).Visible = -1, "Visible", "Caché"))
Next i
'Mise en forme de la feuille
Cells.Select
Selection.Font.Underline = xlUnderlineStyleSingle
Selection.Font.Underline = xlUnderlineStyleNone
With Selection.Font
.Name = "Calibri"
.Size = 18
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.ThemeFont = xlThemeFontMinor
End With
End SubBonsoir,
J'arrive quasiment au bout :
Me manque plus de tester si la feuille sommaire existe :
1)Si elle existe pas je la crée et je fais tout le reste de la macro
2 Si elle existe je l'enlève et la recrée.
Bonsoir,
Je coince sur tester si ma feuille sommaire existe
Bonsoir,
J"ai un peu avancé
Si vous trouvez des choses qui clochent hésitez pas à me le signaler.
Sub Sommaire()
Dim i As Integer
Dim V As Integer
Dim M As Integer
Dim C As Integer
Sheets.Add.Name = "Sommaire"
'Titre du sommaire
Range("A1").Value = "LISTE DES ONGLETS PRESENTS DANS CE CLASSEUR"
'Date de la création du sommaire
Range("A2").Value = "Date : " & Now
'Titre : NOM DES DIFFERENTS ONGLETS
Range("B8").Value = "NOM DES DIFFERENTS ONGLETS "
'Titre Nbre
Range("A8").Value = "Nbre"
For i = 1 To Sheets.Count
'Position de l'onglet
Range("A" & 8 + i).Value = i
ActiveCell.Offset(1, 0).Select
'Nom de l'onglet : Sans lien hypertexte.
'Range("B" & 9 + i).Select
'ActiveCell.Value = Sheets(i).Name
'Nom de l'onglet : Avec Lien hypertexte.
Range("B" & 8 + i).Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
Sheets(i).Name & "!A1", TextToDisplay:=Sheets(i).Name
'Savoir si Onglet est Visible ou Masqué ou Caché
'Début du tableau renseignant l'état des onglets en C10
Range("C" & 8 + i).Select
'Sheets(i).Visible = -1 Veux dire Visible
If Sheets(i).Visible = -1 Then
Range("C" & 8 + i).Value = "Visible"
V = V + 1
End If
'Sheets(i).Visible = 0 Veux dire Masqué
If Sheets(i).Visible = 0 Then
Range("C" & 8 + i).Value = "Masqué"
M = M + 1
End If
'Sheets(i).Visible = 2 Veux dire Caché
If Sheets(i).Visible = 2 Then
Range("C" & 8 + i).Value = "Caché"
C = C + 1
End If
Next i
'Nombre total d'onglets total dans ce Classeur
Range("A3").Value = "Nombre total d'onglets visibles dans le classeur : " & Sheets.Count
'Nombre total d'onglets Visibles dans ce Classeur
Range("A4").Value = "Nombre total d'onglets visibles dans le classeur : " & V
'Nombre total d'onglets Masqués dans ce Classeur
Range("A5").Value = "Nombre total d'onglets masqués dans le classeur : " & M
'Nombre total d'onglets Cachés dans ce Classeur
Range("A6").Value = "Nombre total d'onglets cachés dans le classeur : " & C
'Mise en forme de la feuille
Cells.Select
Selection.Font.Underline = xlUnderlineStyleSingle
Selection.Font.Underline = xlUnderlineStyleNone
With Selection.Font
.Name = "Calibri"
.Size = 18
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.ThemeFont = xlThemeFontMinor
End With
End Sub
Bonjour
avec le test du sommaire a voir
Sub Sommaire()
Dim I As Integer
Dim V As Integer
Dim M As Integer
Dim C As Integer
Dim newSheetName As String
Dim checkSheetName As String
newSheetName = "Sommaire"
On Error Resume Next
checkSheetName = Worksheets(newSheetName).Name
If checkSheetName = "" Then
Worksheets.Add.Name = newSheetName
Else
Worksheets(newSheetName).Select
End If
Cells.ClearContents
'Titre du sommaire
Range("A1").Value = "LISTE DES ONGLETS PRESENTS DANS CE CLASSEUR"
'Date de la cr?ation du sommaire
Range("A2").Value = "Date : " & Now
'Titre : NOM DES DIFFERENTS ONGLETS
Range("B8").Value = "NOM DES DIFFERENTS ONGLETS "
'Titre Nbre
Range("A8").Value = "Nbre"
For I = 1 To Sheets.Count
'Position de l'onglet
Range("A" & 8 + I).Value = I
ActiveCell.Offset(1, 0).Select
'Nom de l'onglet : Sans lien hypertexte.
'Range("B" & 9 + i).Select
'ActiveCell.Value = Sheets(i).Name
'Nom de l'onglet : Avec Lien hypertexte.
Range("B" & 8 + I).Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
Sheets(I).Name & "!A1", TextToDisplay:=Sheets(I).Name
'Savoir si Onglet est Visible ou Masqu? ou Cach?
'D?but du tableau renseignant l'?tat des onglets en C10
Range("C" & 8 + I).Select
'Sheets(i).Visible = -1 Veux dire Visible
If Sheets(I).Visible = -1 Then
Range("C" & 8 + I).Value = "Visible"
V = V + 1
End If
'Sheets(i).Visible = 0 Veux dire Masqu?
If Sheets(I).Visible = 0 Then
Range("C" & 8 + I).Value = "Masqu?"
M = M + 1
End If
'Sheets(i).Visible = 2 Veux dire Cach?
If Sheets(I).Visible = 2 Then
Range("C" & 8 + I).Value = "Cach?"
C = C + 1
End If
Next I
'Nombre total d'onglets total dans ce Classeur
Range("A3").Value = "Nombre total d'onglets visibles dans le classeur : " & Sheets.Count
'Nombre total d'onglets Visibles dans ce Classeur
Range("A4").Value = "Nombre total d'onglets visibles dans le classeur : " & V
'Nombre total d'onglets Masqu?s dans ce Classeur
Range("A5").Value = "Nombre total d'onglets masqu?s dans le classeur : " & M
'Nombre total d'onglets Cach?s dans ce Classeur
Range("A6").Value = "Nombre total d'onglets cach?s dans le classeur : " & C
'Mise en forme de la feuille
Cells.Select
Selection.Font.Underline = xlUnderlineStyleSingle
Selection.Font.Underline = xlUnderlineStyleNone
With Selection.Font
.Name = "Calibri"
.Size = 18
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.ThemeFont = xlThemeFontMinor
End With
Range("A1").Select
End SubA+
Maurice
Bonjour,
Merci Archer je testais la création de feuille et j'avais que des soucis.
C'est possible de créer l'onglet sommaire au tout début par macro même si on a ouvert le fichier et on est en plein milieu de la liste des onglets?