Ecrire du code dans le thisworkbook d’un autre fichier

Bonjour à tous,

Dans un de mes fichiers j’ai mis un code dans le thisworkbook et j’aimerai le répéter dans plusieurs fichiers automatiquement ( j’ai déjà un code pour parcourir plusieurs fichiers à la fois ).

Exemple de code que j’ai à dupliquer dans les thisworkbook :

Private sub Worbook_beforeClose(cancel As boolean)

Application.DisplayFullScreen=True

End sub

Merci d’avance.

Hello,

Je ne vois pas l'intéret de faire ce que tu demandes

Pourquoi ne pas tous les ouvrir et ajouter ton code ? Trop de fichiers ? Tu devrais créer un modele avec ton code à l'interieur et importer tes données.

Et entre nous, monter une usine à gaz pour ajouter du code dans un module de tous les fichiers pour 3 linges de code ...

Bonjour,

Oui je comprends ton message sauf que j’ai 350 fichiers à modifier.

Au début de ma création je n’y avais pas pensé grosse erreur!

Merci !

Bonjour Zifox,

Tout à fait d'accord avec Rag02700 que je salut

Pourquoi ne pas créer une macro complémentaire qui peut faire le même travail
et accessible par tous lorsqu'elle est sur un serveur

Public WithEvents App As Application

' A l'ouverture on créé une instance de l'application
Private Sub Workbook_Open()
  Set App = Application
End Sub

' On créé les évènements de cette instance
Private Sub App_WorkbookBeforeClose(ByVal Wb As Workbook, Cancel As Boolean)
  Application.DisplayFullScreen = True
End Sub

A+

bonjour,

je pensais directement à un "Persnlk.xlsm", un fichier dans le "background", mais là aussi, il faut ajouter une ligne dans chaque fichier individuel. Autre solution, avec VBA ajouter cette macro dans every fichier, mais cela est assez dangeureux, sont tous les fichiers type xlsm, xlsb, xls, y-a-t-il déjà une macro Workbook_beforeClose présent, .... .

C'est peut-être plus facile, quand vous fermez ce fichier, le fichier de retour, c'est toujours le même ? Alors dans celui-là ajouter une macro de "Workbook_Activate" ou de "Workbook_WindowActivate"

Bonjour Bruno,

Peux-tu m’expliquer ton code, car je suis débutant en vba et je ne comprends pas trop certaines choses.

Donc ici si je mets ce code dans un thisworkbook, à chaque ouverture d’un fichier excel le code va s’exécuter c’est ça ?

Et merci beaucoup !

Re,

Oui Zifox, bien compris

Tu peux tester avec

Public WithEvents App As Application

' A l'ouverture on créé une instance de l'application
Private Sub Workbook_Open()
  Set App = Application
End Sub

Private Sub App_WorkbookOpen(ByVal Wb As Workbook)
  MsgBox Wb.Name
End Sub

A+

Bonjour BsAlv,

Je ne comprends pas très bien le terme « fichier retour » peux-tu m’expliquer s’il te plaît ?

Merci d’avance

Bruno,

Est-ce possible que ce code ne sois juste pour des dossiers bien définis ou non ?

Merci d’avance

re,

au moment où vous fermez un des 350 fichiers, vous voulez qu'on lance cette macro "Workbook_beforeClose" dans ce fichier.

Supposons, après fermeture que vous vous trouvez toujours dans le même fichier (par exemple "MonFichier.xlsm"), alors dans celui, vous ajoutez une macro "Workbook_Activate" au lieu de cette macro "Workbook_beforeClose" dans le fichier à fermer (qui cause le problème).

Ok je comprends mieux !

Je vais essayer cela!

Sur le forum j’ai trouvé cela pensez-vous que cela est bien ?

Sub AjouterMacro()
' cocher la réference Microsoft Visual Basic for Applications Extensibility 5.3
With ActiveWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule
ligne = .CountOfLines
.InsertLines ligne + 1, "Private Sub Workbook_Open()"
.InsertLines ligne + 2, "' mon code ici"
.InsertLines ligne + 3, "End Sub"
End With
End Sub

Et merci à tous ceux qui m’aident sur ce forum !!

re,

je n'ai jamais utilisé cette sorte de macros, cela me semblait trop de risque. On ne sait pas toujours les circonstances.

Ce sera une macro "Workbook_beforeClose" au lieu de "Workbook_Open", esperons qu'il n'existe pas encore, il faut ajouter un "Saved", je pense ou un "application.displayalerts=false" ... et d'autres trucs.

re,

la proposition de BrunoM45

7brunom45.xlsb (19.34 Ko)

Vous l'ouvrez et puis vous ouvrez un 2ième et un 3ième fichier excel, n'importe lesquels.

Et puis vous fermez le 3ième, donc normallement vous retournez qu 2ième après ce fermeture.

Alors vous fermez le 2ième pour retourner au fichier initial "BrunoM45".

Ce qui se passe maintenant, avant chaque fermeture, il y a un event "App_WorkbookBeforeClose" dans ce fichier BrunoM45, qui fait le necessaire, voir le contenu de Thisworkbook dans ce fichier.

J'ai testé ce truc et ce n'est pas important que BrunoM45 soit ouvert le premier, il doit être ouvert au moment de la fermuture des autres et il ne doit pas être le "ActiveWorkbook", donc c'est facile ... . Intégrez ces macros dans un fichier qui est toujours ouvert au moment où vous fermez les autres.

Rechercher des sujets similaires à "ecrire code thisworkbook fichier"