Bonsoir à tous.
Dans un module standard, je déclare un tableau dynamique de type particulier
de la façon suivante :
Private Type TaillesChamps
Nom_Champ As String
taille_maxi As Integer
End Type
Private MonTableau() As TaillesChamps
Dans la procédure 1, je remplis ce tableau (je peux d'ailleurs suivre son
évolution dans la fenêtre des variables locales en exécutant le code pas à
pas). Jusque là pas de problème.
Dans une procédure 2 du même module lancée par la procédure 1, je ne peux
pas faire référence à ce tableau. Dans la fenêtre Exécution, j'ai essayé
?Ubound(MonTableau), ?MonTableau(0,0).Nom_Champ. J'ai toujours l'erreur n°9
: l'indice n'appartient pas à la sélection. Pourtant, ces mêmes instructions
sont acceptées quand je suis dans la procédure 1.
Alors quoi ? Une déclaration d'une variable au niveau module qui ne peut
être utilisée n'importe où dans le module ? Quelque chose m'échappe et je ne
vois pas où est l'erreur. Merci à qui pourra me mettre sur la bonne voie.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Eric
Bonjour Thierry,
Un truc du genre: Private Type TaillesChamps Nom_Champ As String taille_maxi As Integer End Type Private MonTableau() As TaillesChamps
Sub zz() ReDim MonTableau(9)'borne pour l'exemple Dim i As Integer For i = 0 To 9 MonTableau(i).Nom_Champ = "Champ" & i MonTableau(i).taille_maxi = i + 10 Next i Call zz2 'Appel affichage dans la fenêtre Exécution Erase MonTableau ' si plus besoin par la suite End Sub
Sub zz2() For i = 0 To UBound(MonTableau) With MonTableau(i) Debug.Print " Nom du champ : "; .Nom_Champ _ & " - Taille : " & .taille_maxi End With Next i End Sub
Bonsoir à tous. Dans un module standard, je déclare un tableau dynamique de type particulier de la façon suivante : Private Type TaillesChamps Nom_Champ As String taille_maxi As Integer End Type Private MonTableau() As TaillesChamps
Dans la procédure 1, je remplis ce tableau (je peux d'ailleurs suivre son évolution dans la fenêtre des variables locales en exécutant le code pas à pas). Jusque là pas de problème.
Dans une procédure 2 du même module lancée par la procédure 1, je ne peux pas faire référence à ce tableau. Dans la fenêtre Exécution, j'ai essayé ?Ubound(MonTableau), ?MonTableau(0,0).Nom_Champ. J'ai toujours l'erreur n°9 : l'indice n'appartient pas à la sélection. Pourtant, ces mêmes instructions sont acceptées quand je suis dans la procédure 1.
Alors quoi ? Une déclaration d'une variable au niveau module qui ne peut être utilisée n'importe où dans le module ? Quelque chose m'échappe et je ne vois pas où est l'erreur. Merci à qui pourra me mettre sur la bonne voie.
-- A+ Eric http://users.skynet.be/mpfa/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonjour Thierry,
Un truc du genre:
Private Type TaillesChamps
Nom_Champ As String
taille_maxi As Integer
End Type
Private MonTableau() As TaillesChamps
Sub zz()
ReDim MonTableau(9)'borne pour l'exemple
Dim i As Integer
For i = 0 To 9
MonTableau(i).Nom_Champ = "Champ" & i
MonTableau(i).taille_maxi = i + 10
Next i
Call zz2 'Appel affichage dans la fenêtre Exécution
Erase MonTableau ' si plus besoin par la suite
End Sub
Sub zz2()
For i = 0 To UBound(MonTableau)
With MonTableau(i)
Debug.Print " Nom du champ : "; .Nom_Champ _
& " - Taille : " & .taille_maxi
End With
Next i
End Sub
Bonsoir à tous.
Dans un module standard, je déclare un tableau dynamique de type particulier
de la façon suivante :
Private Type TaillesChamps
Nom_Champ As String
taille_maxi As Integer
End Type
Private MonTableau() As TaillesChamps
Dans la procédure 1, je remplis ce tableau (je peux d'ailleurs suivre son
évolution dans la fenêtre des variables locales en exécutant le code pas à
pas). Jusque là pas de problème.
Dans une procédure 2 du même module lancée par la procédure 1, je ne peux
pas faire référence à ce tableau. Dans la fenêtre Exécution, j'ai essayé
?Ubound(MonTableau), ?MonTableau(0,0).Nom_Champ. J'ai toujours l'erreur n°9
: l'indice n'appartient pas à la sélection. Pourtant, ces mêmes instructions
sont acceptées quand je suis dans la procédure 1.
Alors quoi ? Une déclaration d'une variable au niveau module qui ne peut
être utilisée n'importe où dans le module ? Quelque chose m'échappe et je ne
vois pas où est l'erreur. Merci à qui pourra me mettre sur la bonne voie.
--
A+
Eric
http://users.skynet.be/mpfa/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Un truc du genre: Private Type TaillesChamps Nom_Champ As String taille_maxi As Integer End Type Private MonTableau() As TaillesChamps
Sub zz() ReDim MonTableau(9)'borne pour l'exemple Dim i As Integer For i = 0 To 9 MonTableau(i).Nom_Champ = "Champ" & i MonTableau(i).taille_maxi = i + 10 Next i Call zz2 'Appel affichage dans la fenêtre Exécution Erase MonTableau ' si plus besoin par la suite End Sub
Sub zz2() For i = 0 To UBound(MonTableau) With MonTableau(i) Debug.Print " Nom du champ : "; .Nom_Champ _ & " - Taille : " & .taille_maxi End With Next i End Sub
Bonsoir à tous. Dans un module standard, je déclare un tableau dynamique de type particulier de la façon suivante : Private Type TaillesChamps Nom_Champ As String taille_maxi As Integer End Type Private MonTableau() As TaillesChamps
Dans la procédure 1, je remplis ce tableau (je peux d'ailleurs suivre son évolution dans la fenêtre des variables locales en exécutant le code pas à pas). Jusque là pas de problème.
Dans une procédure 2 du même module lancée par la procédure 1, je ne peux pas faire référence à ce tableau. Dans la fenêtre Exécution, j'ai essayé ?Ubound(MonTableau), ?MonTableau(0,0).Nom_Champ. J'ai toujours l'erreur n°9 : l'indice n'appartient pas à la sélection. Pourtant, ces mêmes instructions sont acceptées quand je suis dans la procédure 1.
Alors quoi ? Une déclaration d'une variable au niveau module qui ne peut être utilisée n'importe où dans le module ? Quelque chose m'échappe et je ne vois pas où est l'erreur. Merci à qui pourra me mettre sur la bonne voie.
-- A+ Eric http://users.skynet.be/mpfa/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Thierry
Ton exemple fonctionne et m'a permis de découvrir l'erreur que j'ai commise. En effet, je déclare MonTableau au niveau module, mais je le déclare aussi dans la procédure 1. Le dernier est apparemment prioritaire et on ne peut pas y faire référence à partir de la procédure 2. L'erreur me crevait les yeux et je ne la voyais pas. Merci à Eric pour son aide.
Ton exemple fonctionne et m'a permis de découvrir l'erreur que j'ai commise.
En effet, je déclare MonTableau au niveau module, mais je le déclare aussi
dans la procédure 1. Le dernier est apparemment prioritaire et on ne peut
pas y faire référence à partir de la procédure 2.
L'erreur me crevait les yeux et je ne la voyais pas. Merci à Eric pour son
aide.
Ton exemple fonctionne et m'a permis de découvrir l'erreur que j'ai commise. En effet, je déclare MonTableau au niveau module, mais je le déclare aussi dans la procédure 1. Le dernier est apparemment prioritaire et on ne peut pas y faire référence à partir de la procédure 2. L'erreur me crevait les yeux et je ne la voyais pas. Merci à Eric pour son aide.