Positionner bouton de commande ( par vba) sur une feuille

Positionner bouton de commande ( par vba) sur une feuille - VB/VBA/VBS - Programmation

Marsh Posté le 06-07-2007 à 11:49:13    

Bonjour,
J'ai créé une macro me permettant de copier une feuille existante sur une nouvelle feuille.
D'autre part, mon classeur dispose d'une feuille nommée Menu. Je voudrais qu'à chaque
fois que je crée une nouvelle feuille, un bouton de commande apparaisse dans la feuille Menu.
Le problème c'est que les boutons se superposent. Comment faire pourqu'ils apparaissent
les uns à la suite des autres sur ma feuille Menu?
 
Voilà mon code pour le moment:
Sub NouveauPrévisionnel()
Dim Nom As String
Dim Obj As New OLEObject
 
Nom = InputBox("Quel nom souhaitez vous donner à ce nouveau prévisionnel?" )
 
Sheets("Bilan fonctionnel vierge" ).Copy After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = Nom
Sheets(Sheets.Count).Activate
 
Sheets("Menu" ).Activate
Sheets("Menu" ).OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=False _
, DisplayAsIcon:=False, Left:=Range("c20" ).Left, Top:=Range("c20" ).Top, Width:=57.75, Height _
:=27.75).Select
Dim c As Shape
Dim b As CommandButton
Dim o As OLEObject
Set c = Sheets("Menu" ).Shapes("CommandButton1" )
c.OLEFormat.Object.Object.Caption = Nom
 
End Sub
 
Merci de votre aide !! :pt1cable:  

Reply

Marsh Posté le 06-07-2007 à 11:49:13   

Reply

Marsh Posté le 06-07-2007 à 15:31:31    

fait un incrément sur ton top a chaque bouton créé :)

Reply

Marsh Posté le 09-07-2007 à 08:12:48    

BOnjour,
 
merci de cette réponse mais pourrais-tu être un peu plus précis stp??
 
Je suis pas un expert en programmation...
 
Merci d'avance
 
 
Bonne journée

Reply

Marsh Posté le 09-07-2007 à 13:14:10    

Ton objet CommandButton a une propriété .Top qui définit la hauteur à laquelle est posé ton bouton.
Il suffit de lui donner une valeur plus forte pour abaisser le bouton à l'écran.

Reply

Marsh Posté le 09-07-2007 à 14:31:58    

D'accord, je vois ce que tu veux dire
 
Mais comment améliorer mon code pour que chaque bouton créé ne vienne pas se positionner sur le précédent?

Reply

Marsh Posté le 09-07-2007 à 21:30:07    

Je vois que dans ta ligne « Sheets("Menu" ).OLEObjects.Add(... », tu utilises cette syntaxe « Top:=Range("c20" ).Top »
Il suffirait de mettre une valeur plus grande pour les prochains boutons :  
Range("c20" ).Top + 20
ou
Range("c20" ).Top + i (avec i qui varie éventuellement)

Reply

Marsh Posté le 10-07-2007 à 14:20:22    

merci de ton aide Tegu. J'ai réussi à m'en sortir...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed