• Initiateur de la discussion Initiateur de la discussion Xavier
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

X

Xavier

Guest
Bonjour,

Mon petit problème de la matinée est le suivant ...

J'ai un userform qui crée des boutons sur différent sheets mais comment puis je les définir à l'avance vu que normalement je dois écrire ma programmation dans les nouveaux sheets ??


Ca ne doit pas paraitre clair mais bon ...

Xa
 
bonjour Xavier

Si j'ai compris ce que tu veux c'est d'ecrire les codes des bouton que tu cré en avance, c'est ca?

si c'est le cas essais de créer les bouton et de les mettre invisible.

tonbouton.visible = false

et puis quand tu veux le faire apparaitre

tonbouton.visible = true


j'espere c'est ca ce que tu cherche
Munchkin
 
Et oui me revoilà déjà ...

Je viens d'essayer de nommer mes boutons mais ca ne marche pas. J'ai suivi la procédure d'un userform avec .caption =" " mais rien ne s'est passé.
De plus je ne vois pas comment je peux y faire référence ils sont tous identiques comme le montre l'exemple.

Donc j'essaye de faire deux choses: 1) de nommer mes boutons 2) d'y écrire une programmation adaptée à chacun d'eux

Merci Xa

ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=False, DisplayAsIcon:=False, Left:=627, Top:=14.25, Width:=72, Height:=24) .Select

ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=False , DisplayAsIcon:=False, Left:=631.5, Top:=63.75, Width:=72, Height:= 24).Select

ActiveSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1", Link:=False, DisplayAsIcon:=False, Left:=21, Top:=16.5, Width:=72, Height:=18). Select
 
est ce que cela peut t'aider?

Dim oOLE As OLEObject
Dim X As Byte

Set oOLE = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", _
Link:=False, DisplayAsIcon:=False, Left:=340, Top:=30, Width:=100, Height:=30)

X = ActiveSheet.OLEObjects.Count 'compter le nombre de boutons existants dans la feuille

'option nommer l'objet
oOLE.Name = "CommandButton" & X
'texte sur le bouton
ActiveSheet.OLEObjects(X).Object.Caption = "Le Forum XLD " & X


J'ai fais une recherche sur le forum car moi je ne sais pas le faire LOL
Munchkin
 
est ce que cela peut t'aider?

Dim oOLE As OLEObject
Dim X As Byte

Set oOLE = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", _
Link:=False, DisplayAsIcon:=False, Left:=340, Top:=30, Width:=100, Height:=30)

X = ActiveSheet.OLEObjects.Count 'compter le nombre de boutons existants dans la feuille

'option nommer l'objet
oOLE.Name = "CommandButton" & X
'texte sur le bouton
ActiveSheet.OLEObjects(X).Object.Caption = "Le Forum XLD " & X


J'ai fais une recherche sur le forum car moi je ne sais pas le faire LOL
Munchkin
 
With ActiveSheet
.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=False _
, DisplayAsIcon:=False, Left:=576, Top:=81.5, Width:=72, Height:= _
24).Select
.OLEObjects("CommandButton1").Object.Caption = "run me"
End With


ou



Set objMonBouton = ActiveWorkbook.ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Left:=100, Top:=100, Width:=100, Height:=50)
With ActiveWorkbook.VBProject.VBComponents(ActiveWorkbook.ActiveSheet.CodeName).CodeModule
.InsertLines 1, "End Sub"
.InsertLines 1, "Userform1.show"
.InsertLines 1, "Private Sub " & objMonBouton.Name & "_Click()"
End With
objMonBouton.Object.Caption = "texte du bouton"



Volà, c'est bon ca?
Munchkin
 
Heu ... Désolé mais ca ne marche pas aucun des deux.

De plus, je me demandais ou je pouvais écrire d'une part la formule pour la création du nouveau sheet et ensuite la programmation qui va avec la nouvelle page.

Pour etre un peu plus explicite: actuellement, j'ai une feuille (=tableau général créé par un pivotchart). Sur celle-ci, j'ai envie de créer deux boutons qui crée chacun d'eux une nouvelle feuille avec soit un tableau des 25 meilleures ventes ou les 25 moins bonnes. De plus à coté de cela, j'ai envie de créer un Combobox qui permet de selectionner une feuille du dossier et d'y accéder.

VOilà et encore merci pour ton aide ou votre aide
Xa
 
Je viens juste de trouver le moyen d'écrire le nom du bouton

ActiveSheet.OLEObjects("CommandButton1").Object.Caption = "Global Top 25 "

Mais maintenant je cherche à introduire ceci pour le bouton GLobal TOp25

Sheets.Add
Sheets("Sheet5").Select
Sheets("Sheet5").Name = "GLobal_TOP25"
 
Si j'ai bien compris tu veux affecter une macro au nouveau boutons ajouter dans les nouvelles pages

là il faut trouver si c'est possible de créer un code pour un bouton qu'on veut ajouter

je ne sais pas si c'est possible. j'assais de chercher

Munchkin
 
Bonsoir Xavier et la Citi, Munchkin , le Forum

Voici un code pour une première approche (attention sous XP, nécessite de faire confiance au Projet Visual Basic dans Outil / Macro Sécurité)

Option Explicit

Sub EcrirePrivateModuleSheet()
Dim X As Byte
Dim SheetCodeName As String

SheetCodeName = "Feuil1"


With ThisWorkbook.VBProject.VBComponents(SheetCodeName).CodeModule
X = .CountOfLines
.InsertLines X + 1, "Private Sub CommandButton1_Click()"
.InsertLines X + 2, "MsgBox ""Coucou"",VBinformation "
.InsertLines X + 3, "End Sub"
End With
End Sub


NB le SheetCodeName est le nom d'objet VBA de la Feuille et PAS celui de l'onglet. (j'avis écrit un code aussi pour changer le "CodeName" mais je dois partir, faire une recherche)

Bonne Soirée
@+Thierry
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Microsoft 365 Code VBA
Réponses
10
Affichages
907
Retour