(VBA) Affecter un nom à des formes automatique
Bonjour à tous!
Je me retrouve une fois de plus bloqué sur quelque chose qui pourtant me paraissait simple!
J'aimerais affecter automatiquement des noms aux formes que je créés (des rectangles)
J'ai donc procédé comme suit:
Sub Macro3()
''Ajoute une forme automatique (Rectangle) dans la feuille
'Position horizontale - Left
'Position verticale - Top
'Largeur - Width
'Hauteur - Height
With Worksheets("Vue de Dessus").Shapes.AddShape(msoShapeRectangle, Range("U5"), Range("V5"), Range("U2"), Range("V2"))
.Name = "Range("T8)"
.TextFrame.Characters.Text = "Range("T8")"
End With
End Sub
Ce qui marche mais que pour un rectangle!!!!!!!
j'ai associé un bouton à cette macro, du coup j'aimerais bien que le premier click prenne le texte de "T8", puis le second le texte de "T9" etc.... est-ce possible?
Sinon j'avais pensé à tout créer puis faire en sorte que si j'ai une valeur pour mes distances par rapport au haut et la gauche differente de 0 alors les rectangles apparaissent,
si la valeur est egale à 0 alors le rectangle est masqué, mais là encore je bloque un peu!
Je peux vous joindre une feuille excel si besoin,
Merci d'avance!
Bonjour
Bonjour
Un essai.
Tes rectangles se créeront et se nommeront de T1 à Tn sur la feuille où tu auras collé le bouton copié sur la feuille « Vue de Dessus », dès que tu auras cliqué sur ce bouton.
Les coordonnées par défaut qui sont proposées par la boite de dialogue peuvent être modifiées dans les propriétés de l’userform1 en cliquant simultanément sur les touches :
• Alt et F11 puis sur
• Ctrl et R puis
• Double clic sur « UserForm1 » dans la fenêtre de gauche puis
• Clic simple sur le TextBox qui correspond à « gauche » (zone blanche)
• Saisie de la nouvelle valeur, en remplaçant l’existante dans la propriété « Value », dans le tableau de gauche
• Et on refait pareil pour le «Nombre d’objets à créer, pour « vertical », pour « largeur » et pour « hauteur »
Et pour obtenir le code de la macro, il est rattaché à l’userform, donc : double clic n’importe où sur le fond de l’userform.
Cela te convient –il ?
A te lire
Bonjour,
Un grand merci pour ton temps!!
C'est presque parfait effectivement
Après reflexion, je me suis dit que ce serait plus simple de pouvoir nommer l'objet en meme temps qu'on lui donne ses propriétés, j'ai donc fait un copier/coller pour avoir un TextBox6 puis j'ai remplacé la ligne du code affectant les noms par
"Selection.ShapeRange.Name = TextBox6"
J'avoue que je fais un peu dans le patchwork! Mais ça m'a l'aire de fonctionner
A bientôt probablement..!! ^^
Edit: Petite question, comment as-tu fait pour créer cet "UserForm1"? je pense que cet outil peut s'averer souvent utile!
Encore merci, à la fois pour ton aide et les détails que tu as apporté,
V.
Bonjour
Pour répondre à ta question :
comment as-tu fait pour créer cet "UserForm1"?
il faut :
• Cliquer simultanément sur les touches Alt et F11 quand tu es dans la feuille de calcul
• Cliquer sur « Insertion » dans la barre de menu
• Choisir « UserForm »
Un UserForm vierge apparaît qu’il te faut construire à ta guise en utilisant la petite fenêtre qui s’est également ouverte et qui contient tous les outils nécessaires pour dessiner tes contôles.
Bye !