Importer un module dans un Projet excel dynamiquement
Bonjour à tous,
Mon problème en ce moment est sur l'importation dynamique d'un module dans un projet excel.
J'ai trouvé le code qui permet de le faire. Par exemple, pour importer le fichier "test.bas" :
Code:
ThisWorkbook.VBProject.VbComponents.Import "test.bas"
Ce code fonctionne et fonctionnait toujours hier. Aujourd'hui, j'ouvre mon application, je l'exécute et il me dit qu'il ne retrouve pas le fichier "test.bas".
Je n'ai pas touché à ce fichier. J'ai même recréer un autre fichier d'un autre nom, ça ne fonctionne toujours pas.
Par contre si je mets le nom complet du chemin où il faut trouver ce fichier, tout fonctionne.
Je ne comprends pas pourquoi ça ne fonctionne plus alors que tout le reste de mon code n'a aucun problème.
Je ne peux faire de recherche sur internet car, travaillant en entreprise, j'ai un accès à Internet treès limité.
J'ai vraiment besoin de votre aide.
Je mets mon code au cas où:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
| 'Crée plusieurs types de nouvelles feuilles (tableau de transmission, GOVs et Boîte de dialogue)
Sub CreerFeuilles()
Dim Pourcentage As Single 'action effectuée en pourcentage
'Faire les maquettes vides des feuilles
ThisWorkbook.Sheets("GOV-RYL").Copy
Call CalculerPourcentage(Pourcentage, 1)
ThisWorkbook.Sheets("GOV-GRV").Copy After:=ActiveWorkbook.Sheets(1)
Call CalculerPourcentage(Pourcentage, 2)
ThisWorkbook.Sheets("NUIT").Copy After:=ActiveWorkbook.Sheets(2)
Call CalculerPourcentage(Pourcentage, 3)
ThisWorkbook.Sheets("MATINEE").Copy After:=ActiveWorkbook.Sheets(3)
Call CalculerPourcentage(Pourcentage, 4)
ThisWorkbook.Sheets("SOIREE").Copy After:=ActiveWorkbook.Sheets(4)
Call CalculerPourcentage(Pourcentage, 5)
ThisWorkbook.DialogSheets("FEN_ConstructionGOV").Copy After:=ActiveWorkbook.Sheets(5)
Call CalculerPourcentage(Pourcentage, 6)
ActiveWorkbook.Sheets.Add After:=ActiveWorkbook.Sheets(6)
Call CalculerPourcentage(Pourcentage, 7)
ActiveWorkbook.ActiveSheet.Name = "BD_GOV-TT"
Call CalculerPourcentage(Pourcentage, 8)
AjouterTitresBDGOVTT
Call CalculerPourcentage(Pourcentage, 9)
'Masquer la fenêtre de construction de GOV et les tableaux de transmissions
Sheets("FEN_ConstructionGOV").Visible = False
Call CalculerPourcentage(Pourcentage, 10)
Sheets("NUIT").Visible = False
Call CalculerPourcentage(Pourcentage, 11)
Sheets("MATINEE").Visible = False
Call CalculerPourcentage(Pourcentage, 12)
Sheets("SOIREE").Visible = False
Call CalculerPourcentage(Pourcentage, 13)
'Récupérer les codes des macros nécessaires (C'est ici que ça ne
'fonctionne pas)
ActiveWorkbook.VBProject.VBComponents.Import "ContrôleFEN_ConstructionGOV.bas"
ActiveWorkbook.VBProject.VBComponents.Import "InsererCommentaires.bas"
ActiveWorkbook.VBProject.VBComponents.Import "FEN_Commentaires.frm"
ActiveWorkbook.VBProject.VBComponents.Import "CliquerBoutonAjouter.bas"
'Insérer une macro dans le bouton "Insérer Commentaires" dans chaque feuille du classeur
ActiveWorkbook.Sheets("NUIT").Shapes("BUT_InsererCommentaires").OnAction = ActiveWorkbook.Name & "!InsererCommentaires.InsererCommentaires"
ActiveWorkbook.Sheets("MATINEE").Shapes("BUT_InsererCommentaires").OnAction = ActiveWorkbook.Name & "!InsererCommentaires.InsererCommentaires"
ActiveWorkbook.Sheets("SOIREE").Shapes("BUT_InsererCommentaires").OnAction = ActiveWorkbook.Name & "!InsererCommentaires.InsererCommentaires"
'Insérer une macro dans le bouton "Ajouter" dans chaque feuille du classeur
ActiveWorkbook.Sheets("GOV-RYL").Shapes("BUT_Ajouter").OnAction = ActiveWorkbook.Name & "!CliquerBoutonAjouter.CliquerBoutonAjouter"
ActiveWorkbook.Sheets("GOV-GRV").Shapes("BUT_Ajouter").OnAction = ActiveWorkbook.Name & "!CliquerBoutonAjouter.CliquerBoutonAjouter"
'Insérer pour chaque objet fonctionnant avec une macro
'de la feuille de boîte de dialogue "FEN_ConstructionGOV" la macro approprié
For Each objet In ActiveWorkbook.DialogSheets("FEN_ConstructionGOV").Shapes
If objet.OnAction <> "" Then
objet.OnAction = "'" & ActiveWorkbook.Name & "'" & Mid(objet.OnAction, 23)
End If
Next
Call CalculerPourcentage(Pourcentage, 14)
End Sub |