Bonjour,
N'ayant pas trouvé de solution à mon problème après plusieurs jours de recherche je me permets de poser ma question ici :
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 en excluant les onglets qui sont de telle ou telle couleur ? (mais je ne sais pas comment faire cela !)
- 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 :
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) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Sub Ajout_Sommaire_NomsFeuilles() <div style="margin-left:40px">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</div>End Sub
Cela fait 3 jours que j'essaye de trouver une solution donc si quelqu'un(e) voulait bien m'aider siouplé ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 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) NextEnd Sub
Merci !
Partager