Mise en forme feuille "Menu"

Bonjour,

Je dois effectuer l'automatisation d'un fichier. Il ne me reste plus que la feuille "Menu"(sommaire) qui me permettrait de me déplacer plus facilement avec des liens hypertextes.

J'ai effectué une ébauche de travail avec ce que j'ai pu trouver sur le forum... (voir fichier joint)

Mon problème se trouve sur la disposition des formes. En effet, avec le code que j'ai pour le moment les liens hypertextes

s'ajoutent sur la même colonne. J'ai pensé à travers des boucles (for) obtenir ce que je voulais, sans succès...

J'ai joint un fichier pour une meilleure compréhension de mon problème. La première feuille est le résultat que j'aimerais avoir.

Je suis vraiment novice en VBA donc n'hésiter pas à me corriger ou à me suggérer d'autres pistes de réflexion.

Je vous remercie par avance et vous souhaite une bonne fin d'après-midi !

18menu.xlsm (136.69 Ko)

Bonjour Monkey D Cyril et bienvenue sur le forum. Voilà une proposition personnalisable. Tout ce qui est surligné peut être personnalisé. Normalement le nom des variables est assez explicite

Sub amelioration()

Dim nombreElementsParColonne As Integer, positionLeft As Integer, positionTop As Integer
nombreElementsParColonne = 5

Dim largeurRectange As Integer, hauteurRectangle As Integer, hauteurEntreElement As Integer, largeurEntreElement As Integer

largeurRectange = 140
hauteurRectangle = 50

hauteurEntreElement = 80
largeurEntreElement = 100

Dim numElement As Integer, numLigne As Integer, numColonne As Integer
numElement = 0
Dim i As Integer

numColonne = 1
For i = 1 To ThisWorkbook.Sheets.Count
    If Sheets(i).Name <> "Menu" Then
        numElement = numElement + 1

        If numLigne + 1 > nombreElementsParColonne Then
            numLigne = 1
            numColonne = numColonne + 1
        Else
            numLigne = numLigne + 1
        End If

        positionTop = 150 + (numLigne - 1) * (hauteurEntreElement + hauteurRectangle)
        positionLeft = 50 + (numColonne - 1) * (largeurEntreElement + largeurRectange)
        Set Sh = Worksheets("Menu").Shapes.AddShape(msoShapeRectangle, positionLeft, positionTop, largeurRectange, hauteurRectangle)
        With Sh
        .TextFrame.Characters.Text = Sheets(i).Name
        .TextFrame.Characters.Font.Size = 12
        .TextFrame.Characters.Font.ColorIndex = 1
        .TextFrame.Characters.Font.Name = "Comic sans MS"
        .Line.ForeColor.SchemeColor = 8
        End With
        Worksheets("Menu").Hyperlinks.Add Anchor:=Sh, Address:="", SubAddress:="'" & Sheets(i).Name & "'!A1"
    End If
Next

End Sub

Bonjour d3d9x,

Merci pour votre réponse, j'ai testé votre code qui correspond à merveille à mes attentes!

Je vous remercie de nouveau car je n'y serai pas arrivé

Rechercher des sujets similaires à "mise forme feuille menu"