![]() |
|
Forum
|
|
|
#1 (permalink) |
|
Guest
Messages: n/a
|
Bonjour,
Voici une question qui me parait pas si inoccente. Peut on associer un nouveau marco a un nouveau bouton ??? Explication: J'ai un programme qui crée deux nouveaux boutons et un combobox sur une nouvelle feuille. Maintenant j'aimerai simplement associer un nouveau macro (qui normelement s'écrait dans la feuille séléctionner du nouveau fichier) ... simple non ? Merci bcp pour votre réponse, elle sera traitée avec le plus grand intéret ![]() Xa |
| ANNONCES | |||
|
|
|
|
#2 (permalink) |
|
Guest
Messages: n/a
|
bonjour Xavier
tu peux essayer : Sub CreationCommandButtonEtMacroAssociée() Dim oOLE As OLEObject Dim X As Byte Dim Code As String Dim NextLine As String Set oOLE = ActiveSheet.OLEObjects.Add(ClassType:="Forms.Comma ndButton.1", _ Link:=False, DisplayAsIcon:=False, Left:=340, Top:=30, Width:=100, Height:=30) 'Left position bouton par rapport au bord gauche de la feuille 'Top position bouton par rapport au haut de la feuille 'Width largeur bouton 'Height hauteur bouton 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 Code = "Sub CommandButton" & X & "_Click()" & vbCrLf Code = Code & "Msgbox ""Bonjour le forum XLD""" & vbCrLf Code = Code & "End Sub" With ThisWorkbook.VBProject.VBComponents(ActiveSheet.Na me).CodeModule NextLine = .CountOfLines + 1 .InsertLines NextLine, Code End With End Sub j'en profite pour recaser la macro qui ne t'a pas servi ce matin …;o) bonne soiree MichelXld |
|
|
#3 (permalink) |
|
Guest
Messages: n/a
|
Arf Michel, bonsoir
Sacré Xavier, pas vu qu'il doublonnait de partout !!!! code dans sheet Xavier STP va lire ceci ! ![]() Parfois on nous fait devenir chèvre ici !! lol Bonne Soirée @+Thierry |
|
|
#5 (permalink) |
|
Guest
Messages: n/a
|
Rebonjour,
Je viens de passer quelques instants dessus .... et je comprends ca fonctionne avec une opération aussi simple mais j'aimerais y incorporer un pivotchart. Donc je me demandais si je ne pouvais pas avec l'aide de mon bouton lancer une procédure qui contient elle la fonction pivotchart ???? Merci bcp |
|
|
#6 (permalink) |
|
Guest
Messages: n/a
|
bonjour Xavier
pour appeler une macro existante tu peux essayer par exemple ... Code = "Sub CommandButton" & X & "_Click()" & vbCrLf Code = Code & "Call MaMacroPivotChart" & vbCrLf Code = Code & "End Sub" ... Sub MaMacroPivotChart() ..... End Sub bon week end MichelXld |
|
|
#7 (permalink) |
|
Guest
Messages: n/a
|
Bonjour,
Je suis occupé à transposer la programmation à mon problème. J'ai déjà réussi à faire un test sur un fichier vide et tout se passe sans aucun probleme ... jusqu'au moment ou j'intercale mes lignes dans mon Userform Le problème concerne cette ligne With ThisWorkbook.VBProject.VBComponent_ (ActiveSheet.Name).CodeModule NextLine = .CountOfLines + 1 .InsertLines NextLine, Code End With Ceci ne m'étonne pas vu qu'on y parle de Workbook... Connaissez vous l'équivalent pour un Userform ? Merci bcp et bonne journée Xa |
|
|
#8 (permalink) |
|
Guest
Messages: n/a
|
bonsoir Xavier
je ne comprend pas ce que tu souhaites faire : 1.Lancer la procedure depuis un Userform ? je viens de retester chez moi et la procedure fonctionne avec un simple Copier/Coller sinon dans ton message il y a une erreur de synthaxe ( qui n'a peut etre rien à voir ) : remplace With ThisWorkbook.VBProject.VBComponent_ (ActiveSheet.Name).CodeModule par With ThisWorkbook.VBProject.VBComponents(ActiveSheet.Na me).CodeModule Si le bouton est créé dans un autre classeur il faut plutot écrire : With ActiveWorkbook .... ou WorkBooks("monfichier.xls").... ThisWorkbook définit le classeur contenant la macro d'origine 2. Créer une macro dans un userform , par macro? dans ce cas tu peux essayer With ThisWorkbook.VBProject.VBComponents("UserForm1").C odeModule bonne soiree MichelXld |
|
|
#9 (permalink) |
|
Guest
Messages: n/a
|
Bonjour,
Tout d'abord je tiens à m'excuser parce que je vois que j'ai deux postes traitant du meme sujet malgré et je tiens à le souligner que ce n'était pas le but vu que dans le second poste je voulais développer une autre idée mais on m'a proposé la meme programmation ... Ensuite, la programmation comme expliquée au premier point marche sans probleme pour autant que je place ma macro d'origine sur une simple feuille ... or dans mon cas ce n'est pas ce que je recherche. Je part d'un userform qui a un moment donné créer un nouveau fichier, avec de nouvelles feuilles. Sur chacune d'entre elles, j'aimerais y introduire deux boutons qui eux meme renvoient à une macro. Pour le second point, mon point de départ est l'userform qui contient les lignes de code qui devraient etre assignées à mon bouton. Xa ps:encore mille excuses pour le double postes |
|
|
#10 (permalink) |
|
Guest
Messages: n/a
|
bonsoir Xavier
tu peux tester le fichier joint par contre je te conseille de relire le message de Zon dans l'autre fil de discussion car il t'a donné la solution , et en lisant ta réponse j'ai l'impression que tu n'en as pas tenu compte : ce n'est pas With ActiveWorkbook.VBProject.VBComponents(NewSheet.Nam e).CodeModule mais With ActiveWorkbook.VBProject.VBComponents(ActiveSheet. Name).CodeModule bonne soiree MichelXld |
|
|
#11 (permalink) |
|
Guest
Messages: n/a
|
Bonjour Michel,
Merci bcp pour l'exemple, j'ai su y jeter un coup d'oeil hier et je crois que c'était dans la lignée de ce que je recherche mais j'ai un problème aujourd'hui je n'arrive pas à enregister ton exemple ... peux tu me l'envoyer sur ma boite mail, svp? Merci bcp Xa |
| Liens sociaux |
| Outils de la discussion | |
|
|