Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Chargement d'un module et démarrage automatique

2 réponses
Avatar
M41
Bonjour

Soit un module M.bas et un fichier MonTableur.xls
dans le fichier courant MonChemin

Comment importer M.bas dans MonTableur.xls
avec une macro? et faire démarrer automatiquement
cette macro ?

Merci.@+

M41

2 réponses

Avatar
Pierre Fauconnier
Bonjour

Voici un code qui permet, à partir d'un classeur X, de charger un module M
dans un fichier Y, X et Y étant ouverts

Le code est à placer dans un module du classeur X, qui doit donc être livré
avec le module M. J'ai ajouté une fonction qui renvoie un objet Workbook
permettant de pointer vers le classeur Y. Il faut bien entendu adapter le
chemin et les noms

Sub Ajout_Module()
Dim wb As Workbook

Set wb = Get_Classeur("Classeur_Import.xls")
wb.VBProject.VBComponents.Import "c:donnéesmodule1.bas"
End Sub

Function Get_Classeur(Nom As String) As Workbook
Dim wb As Workbook

For Each wb In Workbooks
If wb.Name = Nom Then
Set Get_Classeur = wb
Set wb = Nothing
Exit Function
End If
Next wb

Set wb = Nothing
End Function

Sub auto_Open()
Dim Reponse As VbMsgBoxResult

Reponse = MsgBox("Voulez-vous effecturer la mise à jour?", vbQuestion +
vbYesNo, "Mise à jour du code")
If Reponse = vbYes Then
Ajout_Module
MsgBox "La mise à jour a été effectuée"
End If
ThisWorkbook.Close
End Sub

End Function

Attention que le module est ajouté à chaque démarrage du fichier X...!!

Ceci est une base de travail à adapter, notamment avec une gestion
d'erreurs, une gestion de numéro de version pour éviter des doublons, etc...

Ok?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci



"M41" a écrit dans le message de news:
44107dcb$0$21265$
Bonjour

Soit un module M.bas et un fichier MonTableur.xls
dans le fichier courant MonChemin

Comment importer M.bas dans MonTableur.xls
avec une macro? et faire démarrer automatiquement
cette macro ?

Merci.@+

M41



Avatar
Pierre Fauconnier
Correction...

Le fichier X contient Auto_Open. Cette procédure se lance automatiquement à
l'ouverture de X, charge le module dans Y puis ferme X, un peu comme un
"installeur"... sans se prendre la tête, évidemment...
Il faut installer la référence "Microsoft Visual Basic for Applications
Extensibility 5.3 ( Excel 2003), mais cela t'est demandé à la saisie du
code. N'oublies pas de la charger en cas de copier-coller. Ce code n'a pas
été testé en version 2000.

--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

"Pierre Fauconnier" a écrit dans le
message de news:
Bonjour

Voici un code qui permet, à partir d'un classeur X, de charger un module M
dans un fichier Y, X et Y étant ouverts

Le code est à placer dans un module du classeur X, qui doit donc être
livré avec le module M. J'ai ajouté une fonction qui renvoie un objet
Workbook permettant de pointer vers le classeur Y. Il faut bien entendu
adapter le chemin et les noms

Sub Ajout_Module()
Dim wb As Workbook

Set wb = Get_Classeur("Classeur_Import.xls")
wb.VBProject.VBComponents.Import "c:donnéesmodule1.bas"
End Sub

Function Get_Classeur(Nom As String) As Workbook
Dim wb As Workbook

For Each wb In Workbooks
If wb.Name = Nom Then
Set Get_Classeur = wb
Set wb = Nothing
Exit Function
End If
Next wb

Set wb = Nothing
End Function

Sub auto_Open()
Dim Reponse As VbMsgBoxResult

Reponse = MsgBox("Voulez-vous effecturer la mise à jour?", vbQuestion +
vbYesNo, "Mise à jour du code")
If Reponse = vbYes Then
Ajout_Module
MsgBox "La mise à jour a été effectuée"
End If
ThisWorkbook.Close
End Sub

End Function

Attention que le module est ajouté à chaque démarrage du fichier X...!!

Ceci est une base de travail à adapter, notamment avec une gestion
d'erreurs, une gestion de numéro de version pour éviter des doublons,
etc...

Ok?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin (
proverbe zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci



"M41" a écrit dans le message de news:
44107dcb$0$21265$
Bonjour

Soit un module M.bas et un fichier MonTableur.xls
dans le fichier courant MonChemin

Comment importer M.bas dans MonTableur.xls
avec une macro? et faire démarrer automatiquement
cette macro ?

Merci.@+

M41