Bonjour,
J'ai une erreur que je ne comprends pas :J'ai un module dans lequel je mets ça :Erreur de compilation : un module n'est pas un type valide
Et voici l'appel de la fonction dans une feuille :
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 Option Explicit Public Type equipe numEquipe As Integer idEleves() As Integer End Type Public Sub constructionGrossiereEquipe(ByVal nbEquipes As Integer, ByVal nbTheoriqueEleveParEquipe As Double, ByVal statsGlobales As stats) 'Première création des équipes : allocation dynamique Dim mesEquipes(nbEquipes) As equipe Dim i, j As Integer For i = 0 To UBound(mesEquipes) mesEquipes(i).numEquipe = i ReDim mesEquipes(i).idEleves(Int(nbTheoriqueEleveParEquipe)) 'Remplissage des Id par des 0 For j = 0 To UBound(mesEquipes(i).idEleves) mesEquipes(i).idEleves(j) = 0 Next j Next i 'Dim statsSub As mesStats 'statsSub = copierStats(statsGlobales) 'Création des stats pour les équipes Dim statsEquipe As mesStats ReDim statsEquipe.ecole(UBound(statsGlobales.ecole)) Dim k, m As Integer For k = 0 To UBound(statsEquipe.ecole) statsEquipe.ecole(k).nomEcole = statsGlobales.ecole(k).nomEcole For m = 0 To UBound(statsGlobales.ecole(k).niveau) ReDim statsEquipe.ecole(k).niveau(statsGlobales.ecole(k).niveau(m)) statsEquipe.ecole(k).niveau(m).nomNiveau = statsGlobales.ecole(k).niveau(m).nomNiveau statsEquipe.ecole(k).niveau(m).nbFilles = 0 statsEquipe.ecole(k).niveau(m).nbGars = 0 Next m Next k 'Remplissage des équipes Dim nbTypeEleve As Integer nbTypeEleve = 0 While nbTypeEleve <= fStats.Range("E10") monEquipe.idEleves(indiceDuDernierElementEnConstruction(monEquipe)) = chercherEleveAvecCriteres() nbTypeEleve = nbTypeEleve + 1 statsEquipe.ecole(0).niveau(0).nbGars = statsEquipe.ecole(0).niveau(0).nbGars + 1 Wend afficherEquipe (monEquipe(0)) End Sub
Pour info, voici les autres types que je déclare dans un autre module :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Sub creerEquipes(ByVal nbEquipes, ByVal nbTheoriqueEleveParEquipe As Double, ByVal nbEleves As Integer) Dim statsGlobales As mesStats statsGlobales = calculProrata("Eleves", "Ja", "Pa", "Rc", "CE2", "CM1", "CM2", nbEleves) constructionGrossiereEquipe nbEquipes, nbTheoriqueEleveParEquipe, statsGlobales End Sub
D'où cela vient-il ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Public Type statsNiveau nomNiveau As String nbGars As Integer nbFilles As Integer End Type Public Type statsEcole nomEcole As String niveau() As statsNiveau End Type Public Type mesStats ecole() As statsEcole End Type
L'aide d'office dit :
Je ne comprends quand même pas où je fais l'erreur...Un module standard ne représente pas une classe et ne peut être instancié sous la forme d'une variable. Cause et solution de cette erreur :
Vous avez utilisé le nom d'un module standard dans une déclaration Dim ou Set.
Vérifiez l'orthographe du nom du module et assurez-vous qu'elle correspond à une feuille, une feuille MDI ou un module de classe.
Partager