Faire écrire du code par le code

mécano41

XLDnaute Accro
Bonjour à tous,

Dans le livre de J. Walkenbach pour EXCEL 2003, j'avais trouvé cet exemple de code écrivant du code (ici pour ajouter une feuille et un bouton avec son code). Je ne sais pas s'il fonctionnait bien en XL2003 mais en XL2010, à la ligne :

Code:
With ActiveWorkbook.VBProject.VBComponents(NewSheet.Name).Codemodule
j'ai le message :

" Erreur d'exécution 1004 - L'accès par programme au Visual Basic n'est pas fiable"

Code:
Sub AddSheetAndButton()
Dim NewSheet As Worksheet
Dim NewButton As OLEObject

Set NewSheet = Sheets.Add
Set NewButton = NewSheet.OLEObjects.Add("Forms.CommandButton.1")
With NewButton
    .Left = 4
    .Top = 4
    .Width = 100
    .Height = 24
    .Object.Caption = "Retour à Feuil1"
End With

Code = "Sub CommandButton_Click()" & vbCrLf
Code = Code & "     On Error Resume Next" & vbCrLf
Code = Code & "     Sheets(""Feuil1"").Activate" & vbCrLf
Code = Code & "      If Err <> 0 Then " & vbCrLf
Code = Code & "      Msgbox ""Impossible d'activer Feuil1.""" & vbCrLf
Code = Code & "      End If " & vbCrLf
Code = Code & "      End Sub"

With ActiveWorkbook.VBProject.VBComponents(NewSheet.Name).Codemodule
    Nextline = .CountOfLines + 1
    .InsertLines Nextline, Code
End With
End Sub
Quelqu'un a-t-il une explication?

Merci d'avance

Cordialement
 

JNP

XLDnaute Barbatruc
Re : Faire écrire du code par le code

Re :),
A noter que dans l'aide, la forme .DeleteLines (1, .CountOfLines) est donnée alors qu'il ne faut pas de parenthèses ....:mad: :mad: :mad: (j'aurais dû m'en douter puisque j'avais .InsertLines...sans parenthèses dans un code récupéré mais je n'ai pas fait le rapprochement :( :( pas bien de vieillir!)
En principe, si j'ai tout compris (et ça c'est pas sûr :eek:), VBA demande des parenthèses quand il y a renvoi de donnée et pas de parenthèses dans le cas contraire :rolleyes:...
Exemple :
Code:
MsgBox "Coucou", vbCritical + vbOKOnly
mais
Code:
Réponse = MsgBox("Coucou", vbAbortRetryIgnore)
Bon WE :cool:
 

Discussions similaires

Statistiques des forums

Discussions
312 379
Messages
2 087 774
Membres
103 662
dernier inscrit
rterterert