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
 

Victor21

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

Bonjour, mécano41.

Je ne dispose pas d' Excel 2010, mais sous Excel 2003, Outils, Options, Sécurité, Sécurité des macros, Sources fiables, cocher "faire confiance au projet Visual Basic".
(Ou en plus court : Outils, macro, sécurité, sources fiables, cocher "faire confiance etc etc...")
 

mécano41

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

Bonsoir,

Merci ... ça maaaaarche!

Pour XL2010 il faut :

- aller dans le menu Développeur
- menu Code - Sécurité des macros
- paramètres des macros
- cocher "Accès approuvé au modèle d'objet du projet VBA"

Encore merci

Cordialement
 

mécano41

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

Bonjour à tous,

J'ai fait un petit fichier d'essai mais il y a une bizarrerie dont je n'arrive pas à cerner l'origine.

Tout est expliqué dans le fichier (que j'ai mis sous deux versions).

Si quelqu'un peut m'aider ... Merci d'avance

EDIT : j'ai oublié : il vous faudra peut-être faire l'opération citée plus haut avant que le fichier soit accepté...

Cordialement
 

Pièces jointes

  • Code par code1.xls
    40.5 KB · Affichages: 76
  • Code par code1.xlsm
    22.7 KB · Affichages: 64
Dernière édition:

JNP

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

Re :),
Pourtant aucun problème pour réouvrir ceux que j'ai mis sur le forum! Je ne comprends pas ...
A l'ouverture du fichier, dès que j'active la modification, Excel plante avec une feuille qui devient vierge et je suis obligé de passer par le Gestionnaire des tâches pour récupérer la main :rolleyes:...
Enfin, on verra bien si ce n'est que moi (je l'espère pour toi...) ;).
Bon courage :cool:
 

Pierrot93

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

Bonjour,

pas de problème sous 2003 avec le fichier xls... mais pourquoi avoir modifié l'argument "target" en "cible" de l'événement "change".... peut être cela ne "plait" pas sous 2010

bon après midi
@+
 

mécano41

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

Bonjour,

pas de problème sous 2003 avec le fichier xls... mais pourquoi avoir modifié l'argument "target" en "cible" de l'événement "change".... peut être cela ne "plait" pas sous 2010

bon après midi
@+

Bonjour, Pierrot,

Au moins, ça s'ouvre ! :)

Pour "Cible" c'est parce que j'ai l'habitude ainsi... ; Target est une variable, pas un mot-clef (j'ai quand même vérifié ... on ne sait jamais ... :)

Cordialement
 

mécano41

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

Pour Pierrot :

Je réagis à retardement ... mais lorsque tu dis : "pas de problème sous 2003 avec le fichier xls... " cela veut dire "pour ouvrir le fichier" ou bien pour le problème que je soulève?

Cordialement
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 386
Messages
2 087 848
Membres
103 668
dernier inscrit
Aekhassen