Probleme: VBA - Macro création liste feuilles existantes

Bonjour,

Je sollicite votre aide car je ne touche pas ma bille en VBA

J'utilise une macro (récupérée sur le net) qui créer une liste de mes feuilles et qui leur applique un lien hypertexte. C'est super pratique et j'ai donc articulé la création de mon fichier autour de cette macro sans trop la tester malheureusement. La liste se crée sur le 1er onglet VISIBLE à partir de la cellule C30 de cet onglet et continue de s’incrémenter sur les cellules en dessous (C31, C32, C33, etc..)

A l'usage je me suis vite retrouvé bloqué car j'ai commencé à créer quelques onglets de plus et la macro, une fois arrivé à la cellule (C40), n'inscrit plus l'information dans cette cellule mais dans la premier cellule en dessous commencé par "C31 soit la "C310"!!

J'ai réussis à "contourner" le problème en masquant les lignes entre la C39 et la C310 mais ce n'est vraiment pas une solution viable car les traitements s'effectuent toujours en fond et ralentissent l'ouverture de mon fichier puisque cette macro est faite pour s’exécuter à chaque démarrage..

Je ne veux vraiment pas changer la structure de mon fichier et le comportement de cette macro est très certainement modifiable

Je vous copie la macro ci dessous et je joins mon fichier pour plus d'aide

Merci d'avance

Fred

Sub index()

Dim i As Byte

For i = 2 To Sheets.Count

Range("C3" & i - 1).Select

ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:=Worksheets(i).Name & "!AA5", TextToDisplay:=Worksheets(i).Name

Next i

End Sub

39fichier.xlsm (240.00 Ko)

Bonsoir,

Vite fait, et sans tester....

Remplace :

Range("C3" & i - 1).Select

Par :

Range("C" & 29 + i).Select

Bien que le ".Select" soit de trop....

Comme je l'ai dit, je n'ai pas testé....

L'idée est par là...

Bon courage

Bonsoir

A tester : Permet d'avoir des espaces dans le nom des feuilles

Sub index()
Dim i As Byte
  For i = 2 To Sheets.Count
    ActiveSheet.Hyperlinks.Add Anchor:=Range("C" & 29 + i), Address:="", SubAddress:="'" & Worksheets(i).Name & "'!AA5", TextToDisplay:=Worksheets(i).Name
  Next i
End Sub

Bonsoir cousinhub

.

Niquel! Merci et bonne soirée à vous deux

Rechercher des sujets similaires à "probleme vba macro creation liste feuilles existantes"