Ajouter un code par l'intermédiaire d'un autre code

Bonjour,

Par cette macro, je crée un nouveau fichier, l'enregistre et le referme :

Sub Nouveau()
Dim Chemin As String
    Sheets("Feuil1").Copy
    Application.DisplayAlerts = False
    Chemin = ThisWorkbook.Path
    ActiveWorkbook.SaveAs Filename:=Chemin & "\" & "Référence" & ".xls"
    ActiveWorkbook.Close
    Application.DisplayAlerts = True
End Sub

Serait-il possible d'ajouter en plus - par l'intermédiaire de ce code - un code Private Sub Workbook_Open sous "ThisWorkbook" du nouveau fichier créé ?

A vous relire.

Bonjour

Un code de mes archives adapté à ton cas

Salut Banzai et merci pour ta réponse.

Comme il est indiqué dans ton code : "nécessite une référence à : Microsoft Visual Basic For Applications Extensibility 5.3", j'ai activé cette référence sous "Outils/Références - Projet VBA".

Ensuite je lance ton code, le nouveau fichier est bien créé, mais lorsque je l'ouvre à nouveau, il n'y a aucun code sous "ThisWorkbook". Qu'est-ce que je n'ai pas compris ?

A te relire.

Bonsoir

Ce qui se passe je n'en sais rien

As tu sauvegardé d'abord le fichier ?

Normalement après clic sur le bouton, tu as un fichier qui répond au doux nom de "Référence.xls"

Et à l'ouverture de celui ci tu as la macro crée dans ThisWorkbook qui est déclenché

15reference.xls (13.00 Ko)

Re,

J'ai enregistré ton fichier "Yvouille Creation macro V001" dans un dossier appelé "Essai". Je clique sur le bouton "Création d'un fichier contenant une macro dans ThisWorkbook". Un fichier appelé "Référence" est créé, enregistré dans le dossier "Essai" et refermé automatiquement par la macro.

Lorsque j'ouvre ce fichier "Référence", il n'y a malheureusement aucun code sous son "ThisWorkbook"

Bonsoir

Dans mon précédent message j'ai mis le résultat d'un essai

Voici le macro qui est créée

Private Sub Workbook_Open()
If Range("A1").Value = 40 Then
MsgBox "40 an A1 !"
End If

End Sub

Ce code

Private Sub Workbook_Open()
If Range("A1").Value = 40 Then
MsgBox "40 an A1 !"
End If
End Sub

devrait-il être visible dans le "Thisworkbook" du fichier "Référence" nouvellement créé ? Si oui, il n'y est pas.

Ou est-il lancé une seule fois lors de la création de ce fichier "Référence" ?

Bonsoir

Je ne vois pas ce qui gène (Compatibilité ?)

Le code devrait être visible dans le module et la macro devrait s'exécuter à l'ouverture de ce fichier

Une question bête (mais il faut que je la pose) tu as laissé le 40 dans la cellule A1 ?

Je ne sais pas, j'espère que quelqu'un va bien trouver une solution ou dire si le même problème existe lors de leurs essais

En fait, j'ai un message à l'ouverture qui dit : "Le format du fichier que vous tentez d'ouvrir, "Référence", est différent de celui spécifié par l'extension du fichier. Assurez-vous que le fichier n'est pas endommagé et qu'il provient d'une source fiable avant de l'ouvrir. Souhaitez-vous ouvrir le fichier maintenant ?"

Je n'y avait pas pris garde car j'ai vu souvent ce message à d'autres occasion et je passais simplement par dessus. Est-ce que ça peut provenir de là ?

Concernant toutes tes autres questions, je vais vraiment tout ça tout juste

Bonsoir

Concernant le message je ne suis pas qualifié pour y répondre (en gros je n'en sais rien)

Dans la macro essayes de sauver ton fichier en xlsm

Moi je n'ai pas d'autre idée

désolé

Edit:

Avec 2003 quand on veux modifier le code d'une macro par une macro (il me semble) il faut cocher dans le menu Outils --> macro--->sécurité "faire confiance au projet Visual Basic

Même chose sur 2007 ?

macros securite

Bonjour Yvouille Banzaï le forum

Bon alors deux choses la première le fichier de Banzai ainsi que sa macro marche parfaitement chez moi et génère bien un fichier .xls avec la macro dans le thisworkbook.

Donc travail impec;

Par contre Yvouille, toi est-ce que tu n'as pas une version d'excel un peu bizarre, de mémoire la dernière fois que je t'ai modifié un fichier tu avais un paramétrage un peu particulier au niveau des séparateurs , est-ce que c'est pas cela qui gène un peu???

En tout cas le fichier de Banzai marche pas de souci, le souci est chez toi ou sur ton fichier de base.

Avec le fichier de Banzai quand tu l'ouvres, tu l'enregistres sur le bureau et tu fais la manip cela donne quoi??

J'ai bien dit en l'enregistrant sur le bureau car si tu l'ouvres et lance la macro du fichier temp là cela bug à tout les coups

a te relire

a+

papou

Salut Paritec et merci pour ton intervention.

Tout d’abord, pour répondre à tes questions :

paritec a écrit :

Avec le fichier de Banzai quand tu l'ouvres, tu l'enregistres sur le bureau et tu fais la manip cela donne quoi??

J'ai bien dit en l'enregistrant sur le bureau car si tu l'ouvres et lance la macro du fichier temp là cela bug à tout les coups

J’avais décrit ma manière de faire dans mon message du 03.05 à 20:00. En résumé, avec Excel 2007 ou Excel 2010, je fais tout ça tout juste et il n’y a pas de macro dans ThisWorkbook quand j’ouvre le nouveau fichier créé.
paritec a écrit :

Par contre Yvouille, toi est-ce que tu n'as pas une version d'excel un peu bizarre, de mémoire la dernière fois que je t'ai modifié un fichier tu avais un paramétrage un peu particulier au niveau des séparateurs , est-ce que c'est pas cela qui gène un peu???

Non, je crois que je suis un type assez normal Il y avait peut-être eu un problème avec le format des dates ou des nombres à virgules ou à points en Suisse, mais rien de plus grave, il me semble.

Maintenant j’ai pu effectuer des essais sur un PC ayant la version Excel 2003. J’ai tout d’abord dû enclencher la référence «Microsoft Visual Basic For Applications Extensibility 5.3» dans Visual Basic, mais également l’option «Faire confiance au projet Visual Basic» dans les sécurités d’Excel, tel qu'indiqué par Banzai. Et alors, oh bonheur, ça fonctionne parfaitement.

Il ne resterait donc qu’à savoir comment faire fonctionner tout ça sur une version Excel 2007 ou Excel 2010. Est-ce que l'un d'entre vous a encore une idée ?

Rechercher des sujets similaires à "ajouter code intermediaire"