Erreur 9
Résolu/Fermé
winflow
Messages postés
156
Date d'inscription
mercredi 7 avril 2010
Statut
Membre
Dernière intervention
17 mars 2015
-
26 nov. 2013 à 11:55
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 - 29 nov. 2013 à 09:44
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 - 29 nov. 2013 à 09:44
5 réponses
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
Modifié par Polux31 le 26/11/2013 à 12:35
Modifié par Polux31 le 26/11/2013 à 12:35
Bonjour,
Que dit le message d'erreur ???
Et pourquoi ceci, aucune des structures n'a un élément id:
«Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément.»
Nicolas Boileau
Que dit le message d'erreur ???
Et pourquoi ceci, aucune des structures n'a un élément id:
bat0_sup.id = 1 bat0_aut.id = 1
«Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément.»
Nicolas Boileau
f894009
Messages postés
17185
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
15 avril 2024
1 702
26 nov. 2013 à 17:44
26 nov. 2013 à 17:44
Bonjour,
dans vos defintions de variable type, les tableaux ne sont pas definis ---->dataTab() As dataTab_sup
For i = 1 To i = 2 ca ne marche pas, mais aucune erreur, passe tout droit
For i = 1 To 2 ---> ca c'est la bonne syntaxe et si vous faites cette modif avant ce definir les tableaux, vous aurez l'erreur 9 a la premiere ligne de code apres le for i=
dans vos defintions de variable type, les tableaux ne sont pas definis ---->dataTab() As dataTab_sup
For i = 1 To i = 2 ca ne marche pas, mais aucune erreur, passe tout droit
For i = 1 To 2 ---> ca c'est la bonne syntaxe et si vous faites cette modif avant ce definir les tableaux, vous aurez l'erreur 9 a la premiere ligne de code apres le for i=
winflow
Messages postés
156
Date d'inscription
mercredi 7 avril 2010
Statut
Membre
Dernière intervention
17 mars 2015
22
27 nov. 2013 à 12:04
27 nov. 2013 à 12:04
avec les structures suivantes
Donc avec vos remarques j'en déduit que je devais faire ceci mais cela ne fonctionne toujours pas j'ai la même erreur au même endroit
'Structures pour la supervision
Type dataTab_sup
localisation As String
type_sup As String
ipAddr As String
numLicense As String
memPhi As String
dateAcqui As String
dd As String
os As String
resEcran As String
printer As String
End Type
Type local_sup
dataTab() As dataTab_sup
End Type
Type batiment_sup
id As Integer
locals() As local_sup
End Type
'Structures pour l'automation
Type dataTab_aut
type As String
ip As String
tension As String
obs As String
End Type
Type armoire
dataTab() As dataTab_aut
End Type
Type local_aut
arms() As armoire
End Type
Type batiment_aut
locals() As local_aut
End Type
Public bat0_aut As batiment_aut
Public bat0_sup As batiment_sup
Donc avec vos remarques j'en déduit que je devais faire ceci mais cela ne fonctionne toujours pas j'ai la même erreur au même endroit
'Déclaration et initialisation des structures batiments
Dim i As Integer
'boucle initialisation
ReDim bat0_sup.locals(1)
ReDim bat0_aut.locals(1)
ReDim bat0_aut.locals.arms(1)
For i = 1 To 2
ReDim bat0_sup.locals(1).dataTab(i)
ReDim bat0_aut.locals(1).arms(1).dataTab(i)
bat0_sup.locals(1).dataTab(i).localisation = "0"
bat0_sup.locals(1).dataTab(i).type_sup = "0"
bat0_sup.locals(1).dataTab(i).ipAddr = "0"
bat0_sup.locals(1).dataTab(i).numLicense = "0"
bat0_sup.locals(1).dataTab(i).memPhi = "0"
bat0_sup.locals(1).dataTab(i).dateAcqui = "0"
bat0_sup.locals(1).dataTab(i).dd = "0"
bat0_sup.locals(1).dataTab(i).os = "0"
bat0_sup.locals(1).dataTab(i).resEcran = "0"
bat0_sup.locals(1).dataTab(i).printer = "0"
bat0_aut.locals(1).arms(1).dataTab(i).type = "0"
bat0_aut.locals(1).arms(1).dataTab(i).ip = "0"
bat0_aut.locals(1).arms(1).dataTab(i).tension = "0"
bat0_aut.locals(1).arms(1).dataTab(i).obs = "0"
Next i
'Gestion du nombre de batiments
bat0_sup.id = 1
bat0_aut.id = 1
f894009
Messages postés
17185
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
15 avril 2024
1 702
27 nov. 2013 à 17:53
27 nov. 2013 à 17:53
Bonjour,
J'aurai du complete mon info hier.
Dans le cas de definition par type, vous devez definir directement vos tableaux, le redim ne marche pas. Exemple ci-dessous
J'aurai du complete mon info hier.
Dans le cas de definition par type, vous devez definir directement vos tableaux, le redim ne marche pas. Exemple ci-dessous
Option Base 1
Type dataTab_sup
localisation As String
type_sup As String
ipAddr As String
numLicense As String
memPhi As String
dateAcqui As String
dd As String
os As String
resEcran As String
printer As String
End Type
Type local_sup
dataTab(2) As dataTab_sup
End Type
Type batiment_sup
id As Integer
locals(2) As local_sup
End Type
'Structures pour l'automation
Type dataTab_aut
type As String
ip As String
tension As String
obs As String
End Type
Type armoire
dataTab(2) As dataTab_aut
End Type
Type local_aut
arms(2) As armoire
End Type
Type batiment_aut
locals(2) As local_aut
End Type
Public bat0_aut As batiment_aut
Public bat0_sup As batiment_sup
Sub test()
'Déclaration et initialisation des structures batiments
Dim i As Integer
'boucle initialisation
For i = 1 To 2
bat0_sup.locals(1).dataTab(i).localisation = "0"
bat0_sup.locals(1).dataTab(i).type_sup = "0"
bat0_sup.locals(1).dataTab(i).ipAddr = "0"
bat0_sup.locals(1).dataTab(i).numLicense = "0"
bat0_sup.locals(1).dataTab(i).memPhi = "0"
bat0_sup.locals(1).dataTab(i).dateAcqui = "0"
bat0_sup.locals(1).dataTab(i).dd = "0"
bat0_sup.locals(1).dataTab(i).os = "0"
bat0_sup.locals(1).dataTab(i).resEcran = "0"
bat0_sup.locals(1).dataTab(i).printer = "0"
bat0_aut.locals(1).arms(1).dataTab(i).type = "0"
bat0_aut.locals(1).arms(1).dataTab(i).ip = "0"
bat0_aut.locals(1).arms(1).dataTab(i).tension = "0"
bat0_aut.locals(1).arms(1).dataTab(i).obs = "0"
Next i
'Gestion du nombre de batiments
bat0_sup.id = 1
bat0_aut.id = 1
End Sub
winflow
Messages postés
156
Date d'inscription
mercredi 7 avril 2010
Statut
Membre
Dernière intervention
17 mars 2015
22
28 nov. 2013 à 07:44
28 nov. 2013 à 07:44
je ne connais pas le nombre de cases que comportera le tableau à l'avance comment faire ?
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
28 nov. 2013 à 07:48
28 nov. 2013 à 07:48
Bonjour,
En utilisant une variable qui servira d'index du tableau et de redimensionner le tableau au fur et à mesure avec l'instruction:
En utilisant une variable qui servira d'index du tableau et de redimensionner le tableau au fur et à mesure avec l'instruction:
ReDim Preserve monTab(index)
winflow
Messages postés
156
Date d'inscription
mercredi 7 avril 2010
Statut
Membre
Dernière intervention
17 mars 2015
22
28 nov. 2013 à 08:00
28 nov. 2013 à 08:00
ça je le met où dans le code ? dans le Type ?
f894009
Messages postés
17185
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
15 avril 2024
1 702
28 nov. 2013 à 09:31
28 nov. 2013 à 09:31
Bonjour Polux31,
pour des variable de type Type end type, sauf erreur de ma part le redim ne marche pas, je vais reverifie quand meme
winflow:
En attendant, vous pouvez dimensionner vos tableaux dans le définitions Type end Type a des valeurs 1000 ou plus, ça ne dérange pas.
pour des variable de type Type end type, sauf erreur de ma part le redim ne marche pas, je vais reverifie quand meme
winflow:
En attendant, vous pouvez dimensionner vos tableaux dans le définitions Type end Type a des valeurs 1000 ou plus, ça ne dérange pas.
winflow
Messages postés
156
Date d'inscription
mercredi 7 avril 2010
Statut
Membre
Dernière intervention
17 mars 2015
22
28 nov. 2013 à 09:58
28 nov. 2013 à 09:58
C'est pas très propre mais si j'ai pas le choix ....
f894009
Messages postés
17185
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
15 avril 2024
1 702
28 nov. 2013 à 10:14
28 nov. 2013 à 10:14
Re,
J'ai trouve, ce n'est pas le redim qui pose probleme, c'est vos declarations de variables. J'ai retester redim sur des declarations de variable type end type et ca marche (heureusement, c'est fait pour). Je regarde de plus pres vos declarations de variables type, il faut peut-etre simplifie.
A+
J'ai trouve, ce n'est pas le redim qui pose probleme, c'est vos declarations de variables. J'ai retester redim sur des declarations de variable type end type et ca marche (heureusement, c'est fait pour). Je regarde de plus pres vos declarations de variables type, il faut peut-etre simplifie.
A+
f894009
Messages postés
17185
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
15 avril 2024
1 702
28 nov. 2013 à 10:17
28 nov. 2013 à 10:17
Bonjour Polux31,
le redim sur des variables declarees par des type end type c'est OK, pour winflow le probleme vient des declarations de variable
le redim sur des variables declarees par des type end type c'est OK, pour winflow le probleme vient des declarations de variable
winflow
Messages postés
156
Date d'inscription
mercredi 7 avril 2010
Statut
Membre
Dernière intervention
17 mars 2015
22
28 nov. 2013 à 10:36
28 nov. 2013 à 10:36
c'est quoi le problème dans mes déclarations dans ce cas ?
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
28 nov. 2013 à 19:20
28 nov. 2013 à 19:20
Bonsoir F894009,
J'ai déjà employé cette forme, mais en fait ce n'est pas la structure, qui est un Type de variable, que l'on redimensionne mais le tableau du type de la structure.
J'ai déjà employé cette forme, mais en fait ce n'est pas la structure, qui est un Type de variable, que l'on redimensionne mais le tableau du type de la structure.
f894009
Messages postés
17185
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
15 avril 2024
1 702
29 nov. 2013 à 09:44
29 nov. 2013 à 09:44
Bonjour Polux31,
Sur une déclaration simple, c'est ok, mais la c'est une succession de définition en tableaux (trois niveaux). C'est la seule solution que j'ai trouve, parce qu'en général dans ce genre de définition type end type les dimensions des tableaux sont écrites directement (c'est ce que je fais).
Bye
Sur une déclaration simple, c'est ok, mais la c'est une succession de définition en tableaux (trois niveaux). C'est la seule solution que j'ai trouve, parce qu'en général dans ce genre de définition type end type les dimensions des tableaux sont écrites directement (c'est ce que je fais).
Bye
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
f894009
Messages postés
17185
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
15 avril 2024
1 702
28 nov. 2013 à 11:00
28 nov. 2013 à 11:00
Re,
Une variable declaree en double dataTab() dans local_sup et armoire
pas de simplification, redim en boucle pour redimensionner les tableaux (un peu curieux, mais ca marche)
code modifie: j'ai fait des boucle pour tester le remplissage des tableaux, y a pas d'erreur
A+
Une variable declaree en double dataTab() dans local_sup et armoire
pas de simplification, redim en boucle pour redimensionner les tableaux (un peu curieux, mais ca marche)
code modifie: j'ai fait des boucle pour tester le remplissage des tableaux, y a pas d'erreur
Option Base 1
Type dataTab_sup
localisation As String
type_sup As String
ipAddr As String
numLicense As String
memPhi As String
dateAcqui As String
dd As String
os As String
resEcran As String
printer As String
End Type
Type local_sup
dataTab() As dataTab_sup
End Type
Type batiment_sup
nb As Integer
locals() As local_sup
End Type
Public bat0_sup As batiment_sup
'Structures pour l'automation
Type dataTab_aut
type As String
ip As String
tension As String
obs As String
End Type
'Attention au declaration de variables identiques
'Type armoire
' dataTab() As dataTab_aut ------>local_sup
'End Type
Type armoire
dataTab_A() As dataTab_aut
End Type
Type local_aut
arms() As armoire
End Type
Type batiment_aut
locals() As local_aut
End Type
Public bat0_aut As batiment_aut
Sub test()
'Déclaration et initialisation des structures batiments
Dim i As Integer
'boucle initialisation
i = 2
ReDim Preserve bat0_sup.locals(i)
ReDim Preserve bat0_aut.locals(i)
For x = 1 To i
ReDim Preserve bat0_sup.locals(x).dataTab(i)
ReDim Preserve bat0_aut.locals(x).arms(i)
Next x
For x = 1 To i
For y = 1 To i
ReDim Preserve bat0_aut.locals(x).arms(y).dataTab_A(i)
Next y, x
For i = 1 To 2
For j = 1 To 2
bat0_sup.locals(i).dataTab(j).localisation = "0"
bat0_sup.locals(i).dataTab(j).type_sup = "0"
bat0_sup.locals(i).dataTab(j).ipAddr = "0"
bat0_sup.locals(i).dataTab(j).numLicense = "0"
bat0_sup.locals(i).dataTab(j).memPhi = "0"
bat0_sup.locals(i).dataTab(j).dateAcqui = "0"
bat0_sup.locals(i).dataTab(j).dd = "0"
bat0_sup.locals(i).dataTab(j).os = "0"
bat0_sup.locals(i).dataTab(j).resEcran = "0"
bat0_sup.locals(i).dataTab(j).printer = "0"
For k = 1 To 2
bat0_aut.locals(i).arms(j).dataTab_A(k).type = "0"
bat0_aut.locals(i).arms(j).dataTab_A(k).ip = "0"
bat0_aut.locals(i).arms(j).dataTab_A(k).tension = "0"
bat0_aut.locals(i).arms(j).dataTab_A(k).obs = "0"
Next k, j, i
'Gestion du nombre de batiments
'bat0_sup.ID = 1
'bat0_aut.ID = 1
'J 'ai l'appel de fonction suivant :
'Call add_elem("bat", "sup", ligFinSup)
End Sub
'J 'ai la fonction suivante l'erreur se situe dans l'instruction dans le if :
Private Function add_elem(elem As String, part As String, endSup As Integer)
If elem = "bat" And part = "sup" Then
MsgBox (bat0_sup.locals(1).dataTab(1).localisation)
End If
End Function
A+
winflow
Messages postés
156
Date d'inscription
mercredi 7 avril 2010
Statut
Membre
Dernière intervention
17 mars 2015
22
28 nov. 2013 à 13:35
28 nov. 2013 à 13:35
dans ce cas même problème avec locals que j'ai remplacé par local_s et local_a même chose effectivement pour dataTab dataTab_s et dataTab_a. il n'y a qu'une seule armoire qu'un seul local donc on aurait le code suivant :
Qui ne fonctionne pas ...
'Redimensionnement des tableaux
For x = 1 To i
ReDim Preserve bat0_sup.local_s(x).dataTab_s(i)
ReDim Preserve bat0_aut.local_a(x).arms(x).dataTab_a(i)
Next x
'Initialisation des structures
For j = 1 To 2
bat0_sup.local_s(1).dataTab_s(j).localisation = "0"
bat0_sup.local_s(1).dataTab_s(j).type_sup = "0"
bat0_sup.local_s(1).dataTab_s(j).ipAddr = "0"
bat0_sup.local_s(1).dataTab_s(j).numLicense = "0"
bat0_sup.local_s(1).dataTab_s(j).memPhi = "0"
bat0_sup.local_s(1).dataTab_s(j).dateAcqui = "0"
bat0_sup.local_s(1).dataTab_s(j).dd = "0"
bat0_sup.local_s(1).dataTab_s(j).os = "0"
bat0_sup.local_s(1).dataTab_s(j).resEcran = "0"
bat0_sup.local_s(1).dataTab_s(j).printer = "0"
bat0_aut.local_a(1).arms(1).dataTab_a(j).type = "0"
bat0_aut.local_a(1).arms(1).dataTab_a(j).ip = "0"
bat0_aut.local_a(1).arms(1).dataTab_a(j).tension = "0"
bat0_aut.local_a(1).arms(1).dataTab_a(j).obs = "0"
Next j
Qui ne fonctionne pas ...
f894009
Messages postés
17185
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
15 avril 2024
1 702
28 nov. 2013 à 14:26
28 nov. 2013 à 14:26
Re,
Avez-vous regarde le code que j'ai utilise pour redimensionner les tableaux !!!!!!!!!!!
Avez-vous regarde le code que j'ai utilise pour redimensionner les tableaux !!!!!!!!!!!
winflow
Messages postés
156
Date d'inscription
mercredi 7 avril 2010
Statut
Membre
Dernière intervention
17 mars 2015
22
28 nov. 2013 à 14:33
28 nov. 2013 à 14:33
Oui mais votre code comporte plusieurs armoires et plusieurs locals tant dit qu'il y a 1 armoire et un local donc le code se simplifie en celui que j'ai posté précédemment
f894009
Messages postés
17185
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
15 avril 2024
1 702
28 nov. 2013 à 14:46
28 nov. 2013 à 14:46
Re,
s'il n'y a qu'un local et une armoire, pourquoi vous utilisez des tableaux ?????
s'il n'y a qu'un local et une armoire, pourquoi vous utilisez des tableaux ?????
winflow
Messages postés
156
Date d'inscription
mercredi 7 avril 2010
Statut
Membre
Dernière intervention
17 mars 2015
22
28 nov. 2013 à 14:50
28 nov. 2013 à 14:50
parce que ce sont les deux structures de base... Par la suite, j'utiliserais les types défini convenablement pour le moment je voulais savoir comment avoir accès à justement une donnée de cette structure de base ...
Modifié par winflow le 26/11/2013 à 13:20
26 nov. 2013 à 13:20