Instanciation module de classe
Bonjour,
Inscrit récemment, je passe régulièrement ici pour lire les tuto et suivre les topics qui m'interessent. Le problème que je vous soumet à déjà été traité, retraité, re-re-traité...mais je dois fatigué il y a un truc qui ne passe plus (alors qu'il y a quelques heures, avant plusieurs modifs... :fail:)
Le problème réside sur la portée de mon module de classe instancié.
Extrait de mon module de classe Initialisation :
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
| Option Explicit
Public Nom_de_la_Simulation As String
Public Repertoire_de_travail As String
Public Racine_import_S_fonctions As String
Public Racine_export_données_scenario As String
Public Racine_export_Courbe As String
Public Racine_librairie_SAO_1 As String
Public Racine_librairie_SAO_2 As String
Public Racine_données_scenario As String
Public Racine_Rapport As String
Public Racine_modèle_avion As String
Public Repertoire_cosimulation As String
Public Repertoire_tables_perfo As String
Public Repertoire_Templates_Courbes As String
Public Nom_du_fichier_de_parametre As String
Public MaxProcess As Single
Public sleepTimeMS As Single
Public Actual_ListFichier As Collection
' Méthode permettant d'initialiser les chemins et repertoires (MENU)
' afin de les rendre accessible dans tout le fichier gestion_test
Sub Init_Path()
Nom_de_la_Simulation = Worksheets("MENU").Range("B1")
Repertoire_de_travail = Worksheets("MENU").Range("B2")
Racine_import_S_fonctions = Worksheets("MENU").Range("B3")
Racine_export_données_scenario = Worksheets("MENU").Range("B4")
Racine_export_Courbe = Worksheets("MENU").Range("B5")
Racine_librairie_SAO_1 = Worksheets("MENU").Range("B6")
Racine_librairie_SAO_2 = Worksheets("MENU").Range("B7")
Racine_données_scenario = Worksheets("MENU").Range("B8")
Racine_Rapport = Worksheets("MENU").Range("B9")
Racine_modèle_avion = Worksheets("MENU").Range("B10")
Repertoire_cosimulation = Worksheets("MENU").Range("B11")
Repertoire_tables_perfo = Worksheets("MENU").Range("B12")
Repertoire_Templates_Courbes = Worksheets("MENU").Range("B13")
Nom_du_fichier_de_parametre = Worksheets("MENU").Range("E1")
MsgBox "Init_Path() => " & Nom_de_la_Simulation
End Sub |
Extrait de ma feuille MENU
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
| Option Explicit
Public myInit As Initialisation
Public Function GetInitialisation() As Initialisation
Set GetInitialisation = New Initialisation
End Function
' ----------------------------------------------------------------------------------------------------
' Méthode permettant de lancer l'initialisation
Public Sub RaZ_Init()
If myInit Is Nothing Then
Set myInit = GetInitialisation
End If
MsgBox "Sub RaZ_Init()"
myInit.Init_Path
myInit.Init_Shell
myInit.MAJ_Testjouables
Worksheets("MENU").Range("B14:B25") = ""
' VERIFICATION
If myInit Is Nothing Then
MsgBox "Mauvaise Initialisation"
Else
Worksheets("MENU").Range("D14") = "Initialisation de " & myInit.Nom_de_la_Simulation & " : DONE"
End If
End Sub
' ----------------------------------------------------------------------------------------------------
' Méthode permettant d'afficher un MsgBox avec le nombre de scenarios à simuler
Public Sub Info_nbScenarios()
If myInit Is Nothing Then
MsgBox "Mauvaise Initialisation"
Else
myInit.Calcul_NombreScenarios
End If
End Sub |
J'ai un bouton initialisation qui appelle Public Sub RaZ_Init(). Pas de soucis, le test de fin (et d'autres) me ressortent les bonnes infos issus des différents attributs de myInit.
Le bouton qui appelle Sub Info_nbScenarios()...fail à chaque fois par contre. "Mauvaise initialisation" qu'il me dit.
GetInitialisation est un ajout récent pour essayer de corriger le soucis. J'ai aussi essayé d'instancier par un Dim ... As New ... mais ça me clean la valeur de mes attributs de classes.
'fin bref, ça a marché avec un truc semblable.
Si quelqu'un peut m'aider je prends !
Merci d'avance,
Julien