Re : exclure une feuille de la macro
Bonjour,
Je reviens sur ce sujet car la solution apportée est un peu limitée me concernant. Je m'explique :
J'ai un classeur Excel avec un nombre variable de feuilles (+250 et ça grandit) certaines avec des données brutes (souvent issues d'extraction de EssBase mais pas que), d'autres exploitant ces données et les mettant en forme. Ces dernières sont généralement intitulée numériquement sous le format ##### mais, pour faire simple, pas toujours (ex: 5 lettres puis 4 chiffres), ceux-ci correspondant à la nomenclature interne.
Je souhaite d'abord créer un sommaire pour pouvoir trier ces dernières d'après l'adresse de cellule "B101" comme suit :
- absence dans le sommaire des feuilles masquées & des feuilles non "nomenclaturées" (dont le nombre et le nom varie au cours du temps) - peut être à l'aide de la couleur des onglets mais je ne sais pas comment faire !
😛
- extraction dans ce sommaire de : intitulé de la feuille ; valeur en "A1" (nom de mon entité ; propre à chaque feuille) ; valeur en "B101" (valeur de tri des onglets par la suite)
- lien hypertexte au niveau de l'intitulé de la feuille
Par la suite je souhaite trier ce sommaire d'après la valeur "B101" de chaque feuille, puis ordonner
uniquement les onglets concernés (nomenclaturés) dans l'ordre de ce sommaire sans toucher à celles qui ne m'intéressent pas.
J'ai trouvé ce code que j'ai modifié pour obtenir un sommaire avec nom de feuille avec lien hypertexte, valeur A1 et valeur B101. Mais ne connaissant rien (ou presque) en VBA je n'ai pas su aller plus loin :
Sub Ajout_Sommaire_NomsFeuilles()
Dim I As Integer
ActiveWorkbook.Worksheets(1).Select
ActiveSheet.Range("A2").CurrentRegion.ClearContents
For I = 2 To ActiveWorkbook.Worksheets.Count
ActiveSheet.Range("A" & I).Select
ActiveSheet.Hyperlinks.Add _
Anchor:=Selection, _
Address:="", _
SubAddress:="'" & Worksheets(I).Name & "'!A1", _
TextToDisplay:=Worksheets(I).Name
ActiveSheet.Range("B" & I) = Worksheets(I).Range("A1")
ActiveSheet.Range("C" & I) = Worksheets(I).Range("B101")
Next
Cancel = True
End Sub
J'avais également trouvé ce code-ci plus complet et devant me faire tout ce que je demande mais il ne semble pas fonctionner pour moi (sans doute parce que je m'y prends mal) et me met une
"Erreur d'exécution 9 : L'indice n'appartient pas à la sélection" (ligne de débogage en gras) :
Sub Tri_Sommaire_Onglets_CAHT_BudFi()
Sheets("Sommaire").Activate
For I = 2 To Sheets.Count
Cells(I, 1).Value = Sheets(I).Name
Cells(I, 2).Value = Sheets(I).Range("A1").Value
Cells(I, 3).Value = Sheets(I).Range("B101").Value
Next
Columns("A:C").Sort Key1:=Range("B101"), Order1:=xlDescending, Header:=xlNo
Sheets(Cells(1, 1).Value).Move before:=Sheets(1)
For I = 2 To Sheets.Count
Sheets(Sheets("Sommaire").Cells(I, 1).Value).Move after:=Sheets(I - 1)
Next
End Sub
Cela fait 3 jours que j'essaye de trouver une solution donc si quelqu'un(e) voulait bien m'aider?
🙁
Merci !