Bonjour à tous,

j'utilise trois objets, Demande, Site et Tranche, ainsi que trois autres objets, qui sont des collections d'objets suscités (donc CollectionDemande, Collectionsite, CollectionTranche).



Le code de l'objet Demande, par exemple, est constitué entre autres de ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Option Explicit
 
' Stockage de la priorité
Private pNomTranche As String
 
 
Public Property Get NomTranche() As String
    Dim NomProcApp As String   'Stockage de la procédure appelante
 
    NomProcApp = NomProc
    NomProc = "NomTranche ( Get )"  'Gestion des erreurs (procédure en cours)
     NomTranche = pNomTranche
 
Sortie:
' Remettre la procédure appelante
    NomProc = NomProcApp
    Exit Property
 
End Property
 
Public Property Let NomTranche(ByVal NNomTranche As String)
    Dim NomProcApp As String   'Stockage de la procédure appelante
 
    NomProcApp = NomProc
    NomProc = "NomTranche ( Let )"  'Gestion des erreurs (procédure en cours)
     pNomTranche = NNomTranche
 
 
Sortie:
' Remettre la procédure appelante
    NomProc = NomProcApp
    Exit Property
 
End Property
Qui ne sont donc que des propriétés privées munies de leurs accesseurs et constructeurs.

Les objets Collection, quand à eux, sont constitués du code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
Option Explicit
 
 
 
Private Demandes As Collection
 
Public Sub ImporterCollectionDemandes()
    Dim NomProcApp As String   'Stockage de la procédure appelante
 
    NomProcApp = NomProc
    NomProc = "ImporterCollectionDemandes"  'Gestion des erreurs (procédure en cours)
 
    'Initialiser collection
    Set Demandes = New Collection
    'Charger la collection dans fichier
    'Ouvrir le fichier
    'Lire le fichier
    'Ajouter les éléments à la collection, avec comme index : concaténation de nom de la tranche, date de la demande, durée de la demande
 
 
Sortie:
    ' Remettre la procédure appelante
    NomProc = NomProcApp
    Exit Sub
 
End Sub
Ainsi que de fonctions d'ajout, suppression, export, modification... toutes publiques.

Je délclare donc mon objet CollectionDemande dans Thisworkbook :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
Public DemandesEnCours As CollectionDemandes
Puis cherche, dans l'évènement Activate(), à utiliser la méthode d'import :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
Call DemandesEnCours.ImporterCollectionDemandes
VB me crache alors l'erreur suivante :

Variable objet ou variable de bloc With non définie

Et je vois pas du tout, mais du tout le rapport étant donné que pas une seule fois j'utilise l'instruction With.

aurai-je mal conçu mon architecture? à votre avis pourquoi VB me crache-t-il cette erreur?

Merci à tous