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 !
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 SubBonjour 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é