A voir également:
- Modifier le code d'un bouton de commande VBA
- Invite de commande - Guide
- Modifier dns - Guide
- Modifier liste déroulante excel - Guide
- Comment modifier un pdf - Guide
- Le code ascii - Guide
6 réponses
Utilisateur anonyme
28 avril 2011 à 15:04
28 avril 2011 à 15:04
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
Utilisateur anonyme
Modifié par Lupin.PC4 le 5/05/2011 à 23:15
Modifié par Lupin.PC4 le 5/05/2011 à 23:15
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
Utilisateur anonyme
6 mai 2011 à 19:37
6 mai 2011 à 19:37
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
re,
Je n'ai pas l'instruction [Option Explicit] en début de code par défaut.
C'est peut-être parce que j'utilise Excel 2003 ?
Merci Lupin.
Je n'ai pas l'instruction [Option Explicit] en début de code par défaut.
C'est peut-être parce que j'utilise Excel 2003 ?
Merci Lupin.
5 mai 2011 à 15:57