Modifier le code d'un bouton de commande VBA
Timelinker
-
Timelinker -
Timelinker -
Bonjour,
Je voulais savoir s'il est possible de modifier du code avec une macro ?
Je m'explique :
Je souhaite que lorsque l'on clique sur un bouton de commande (bouton1), un autre bouton de commande (bouton2) se crée dans une cellule définie (jusque là ça va).
Mais en plus je sais déjà ce que je veux mettre comme code dans ce bouton2, j'aimerai donc qu'il se génère automatiquement lorsque l'on clique sur bouton1.
Merci pour votre aide, prévenez moi si c'est pas clair !
Je voulais savoir s'il est possible de modifier du code avec une macro ?
Je m'explique :
Je souhaite que lorsque l'on clique sur un bouton de commande (bouton1), un autre bouton de commande (bouton2) se crée dans une cellule définie (jusque là ça va).
Mais en plus je sais déjà ce que je veux mettre comme code dans ce bouton2, j'aimerai donc qu'il se génère automatiquement lorsque l'on clique sur bouton1.
Merci pour votre aide, prévenez moi si c'est pas clair !
A voir également:
- Modifier le code d'un bouton de commande VBA
- Invite de commande - Guide
- Code ascii - Guide
- Modifier dns - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Modifier liste déroulante excel - Guide
6 réponses
Bonjour,
Tu trouveras ici : https://www.excel-downloads.com/resources/categories/utilitaires.18/
un fichier Excel de mon cru [ VizioXLA ] qui te fourniras
des exemples pour manipuler du code VBA.
Je ne prétends pas que celui-ci soit de haut niveau, mais
il fournit quand même des exemples pour manipuler plusieurs
objets faisant partie d'Excel.
Cdt
Lupin
Tu trouveras ici : https://www.excel-downloads.com/resources/categories/utilitaires.18/
un fichier Excel de mon cru [ VizioXLA ] qui te fourniras
des exemples pour manipuler du code VBA.
Je ne prétends pas que celui-ci soit de haut niveau, mais
il fournit quand même des exemples pour manipuler plusieurs
objets faisant partie d'Excel.
Cdt
Lupin
Timelinker
Dsl mais je crains que ton code ne puisse pas m'aider bcp :S
re:
Voici l'exemple du bouquin dont je me suis inspiré :
Il parait plus simple que ça ne l'ai :-)
n.b. Il faut ajouter la référence : [ Microsoft Visual Basic x.y Extensibility ]
Cdt
Lupin
Voici l'exemple du bouquin dont je me suis inspiré :
Sub AddSheetAndButton()
Dim NewSheet As Worksheet
Dim NewButton As OLEObject
' Add the sheet
Set NewSheet = Sheets.Add
' Add a CommandButton
Set NewButton = NewSheet.OLEObjects.Add _
("Forms.CommandButton.1")
With NewButton
.Left = 4
.Top = 4
.Width = 100
.Height = 24
.Object.Caption = "Return to Sheet1"
End With
' Add the event handler code
Code = "Sub CommandButton1_Click()" & vbCrLf
Code = Code & " On Error Resume Next" & vbCrLf
Code = Code & " Sheets(""Sheet1"").Activate" & vbCrLf
Code = Code & " If Err <> 0 Then" & vbCrLf
Code = Code & " MsgBox ""Cannot activate Sheet1.""" & vbCrLf
Code = Code & " End If" & vbCrLf
Code = Code & "End Sub"
With ThisWorkbook.VBProject. _
VBComponents(NewSheet.Name).CodeModule
NextLine = .CountOfLines + 1
.InsertLines NextLine, Code
End With
End Sub
'
Il parait plus simple que ça ne l'ai :-)
n.b. Il faut ajouter la référence : [ Microsoft Visual Basic x.y Extensibility ]
Cdt
Lupin
re:
J'oublias, peut-être que ce site pourrais t'aider aussi :
http://www.cpearson.com/excel/vbe.aspx
Cdt
Lupin
J'oublias, peut-être que ce site pourrais t'aider aussi :
http://www.cpearson.com/excel/vbe.aspx
Cdt
Lupin
Merci Lupin !
J'ai bien suivi ton exemple mais j'ai toujours l'erreur 1004 qui s'affiche, on dirait qu'il ne connait pas VBproject. Est ce que ce serait dû au besoin d'ajouter cette référence [ Microsoft Visual Basic x.y Extensibility ] ??? Je ne sais pas ce que c'est, mais si c'est qqchose à installer, ça risque d'être compliqué, c'est mon ordi de travail et je n'ai pas les droits d'admin.
Au cas où c'est pas ça l'erreur, voici mon code, peut être tu trouveras ce qui cloche :
Tout va bien jusqu'au With où ça bug !
En tout cas merci beaucoup pour ton aide!
J'ai bien suivi ton exemple mais j'ai toujours l'erreur 1004 qui s'affiche, on dirait qu'il ne connait pas VBproject. Est ce que ce serait dû au besoin d'ajouter cette référence [ Microsoft Visual Basic x.y Extensibility ] ??? Je ne sais pas ce que c'est, mais si c'est qqchose à installer, ça risque d'être compliqué, c'est mon ordi de travail et je n'ai pas les droits d'admin.
Au cas où c'est pas ça l'erreur, voici mon code, peut être tu trouveras ce qui cloche :
Private Sub CommandButton9_Click()
Dim nom As String
Dim Code As String
ligne = InputBox("On which line did you add the new supplier ?", "Add supplier")
ActiveSheet.Shapes("CommandButton1").Select
Selection.Copy
Cells(ligne, 4).Select
ActiveSheet.Paste
nom = Selection.Name
Code = " Sub " + nom + "_Click()" & vbCrLf & vbCrLf & _
nom + ".TopLeftCell.Select" & vbCrLf & vbCrLf & _
"Call Codefct" & vbCrLf
With ThisWorkbook.VBProject.VBComponents(ActiveSheet.Name).CodeModule
NextLine = .CountOfLines + 1
.InsertLines NextLine, Code
End With
End Sub
Tout va bien jusqu'au With où ça bug !
En tout cas merci beaucoup pour ton aide!
Ah ok, c'est effectivement bien un problème de référence. J'ai essayé de changer ça, mais quand je vais dans Outils/Référence, j'ai un message "Erreur d'accès à la base de registration".
C'est grave docteur?
Je crois que c'est foutu pour ajouter des lignes de code automatiquement :S
C'est grave docteur?
Je crois que c'est foutu pour ajouter des lignes de code automatiquement :S
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
re:
Effectivement, c'est du à la référence.
Sans la référence, tu peux essayer le code sans avoir
l'instruction [ Option Explicit ] en début de code.
En théorie, cela devrait fonctionner.
Cdt
Lupin
Effectivement, c'est du à la référence.
Sans la référence, tu peux essayer le code sans avoir
l'instruction [ Option Explicit ] en début de code.
En théorie, cela devrait fonctionner.
Cdt
Lupin