code dans sheet

  • Initiateur de la discussion Xavier
  • Date de début
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
 
M

Munchkin

Guest
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
 
X

Xavier

Guest
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
 
M

Munchkin

Guest
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
 
M

Munchkin

Guest
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
 
M

Munchkin

Guest
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
 
X

Xavier

Guest
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
 
X

Xavier

Guest
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"
 
M

Munchkin

Guest
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
 
@

@+Thierry

Guest
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
 

Discussions similaires

Statistiques des forums

Discussions
312 778
Messages
2 092 036
Membres
105 161
dernier inscrit
lorina