Array / UDT : tableau de type défini par l'utilisateur
Le
jean-paul.bataille

Bonjour,
Je désire utiliser un type personnel "objetAccess" , défini comme
ceci
Type objetAccess
strNomObjet As String
dateCréation As Date
dateRévision As Date
End Type
Puis dans une routine je veux affecter des valeurs aux divers éléments
de mon type pour constituer un tableau listeObjet "array"
Sub tst_USD_et_array()
Dim UnObjet As objetAccess
Dim ListeObjet() As Variant
UnObjet.strNomObjet = "tata"
UnObjet.dateCréation = #1/2/2009#
UnObjet.dateRévision = #12/2/2009#
MsgBox UnObjet.strNomObjet & " " & Format(UnObjet.dateCréation, "dd
mmm yy")
'?????
ListeObjet(1) = UnObjet
MsgBox ListeObjet(1).strNomObjet & """" & ListeObjet(1).dateCréation
'??????
End Sub
Je planche et séche sur comment placer les valeurs dans le tableau.
merci de votre collaboration
Jean-Paul
Je désire utiliser un type personnel "objetAccess" , défini comme
ceci
Type objetAccess
strNomObjet As String
dateCréation As Date
dateRévision As Date
End Type
Puis dans une routine je veux affecter des valeurs aux divers éléments
de mon type pour constituer un tableau listeObjet "array"
Sub tst_USD_et_array()
Dim UnObjet As objetAccess
Dim ListeObjet() As Variant
UnObjet.strNomObjet = "tata"
UnObjet.dateCréation = #1/2/2009#
UnObjet.dateRévision = #12/2/2009#
MsgBox UnObjet.strNomObjet & " " & Format(UnObjet.dateCréation, "dd
mmm yy")
'?????
ListeObjet(1) = UnObjet
MsgBox ListeObjet(1).strNomObjet & """" & ListeObjet(1).dateCréation
'??????
End Sub
Je planche et séche sur comment placer les valeurs dans le tableau.
merci de votre collaboration
Jean-Paul
Déclaration de la variable personnalisée dans
le haut du module
'--------------------------------------
Type objetAccess
strNomObjet As String
dateCréation As Date
dateRévision As Date
End Type
'--------------------------------------
Il s'agit simplement de définir la variable "UnObject" comme
un tableau (array) en indiquant les bornes de ce dernier.
IL existe différentes manières de définir les bornes de ce dernier !
'--------------------------------------
Sub tst_USD_et_array()
Dim UnObjet(1 To 10) As objetAccess
Dim ListeObjet() As Variant
For a = 1 To 10
UnObjet(a).dateCréation = #1/2/2009#
UnObjet(a).dateRévision = #12/2/2009#
UnObjet(a).strNomObjet = "tata"
Next
End Sub
'--------------------------------------
Dans l'exemple suivant, supposons que vous avez une plage de données
A1:C10 dont vous voudriez mettre les valeurs dans votre tableau :
'----------------------------------------------
Sub tst_USD_et_array()
Dim UnObjet() As objetAccess
Dim A As Long, R As Range
With Range("A1:C10")
ReDim UnObjet(1 To .Rows.Count)
For Each R In .Rows
A = A + 1
UnObjet(A).dateCréation = R.Cells(A, 1).Value
UnObjet(A).dateRévision = R.Cells(A, 2).Value
UnObjet(A).strNomObjet = R.Cells(A, 3).Value
Next
End With
MsgBox UnObjet(1).strNomObjet & " " & _
Format(UnObjet(1).dateCréation, "dd mmm yy")
End Sub
'----------------------------------------------
Il y a toujours l'option de définir la taille du tableau à chaque fois
que l'on veut y entrer une nouvelle valeur
'------------------------------------------------
Sub tst_USD_et_array()
Dim UnObjet() As objetAccess
Dim A As Long, R As Range
With Range("A1:C10")
For Each R In .Rows
A = A + 1
ReDim Preserve UnObjet(1 To A)
UnObjet(A).dateCréation = R.Cells(A, 1).Value
UnObjet(A).dateRévision = R.Cells(A, 2).Value
UnObjet(A).strNomObjet = R.Cells(A, 3).Value
Next
End With
MsgBox UnObjet(1).strNomObjet & " " & _
Format(UnObjet(1).dateCréation, "dd mmm yy")
End Sub
'------------------------------------------------
Bonjour,
Je désire utiliser un type personnel "objetAccess" , défini comme
ceci
Type objetAccess
strNomObjet As String
dateCréation As Date
dateRévision As Date
End Type
Puis dans une routine je veux affecter des valeurs aux divers éléments
de mon type pour constituer un tableau listeObjet "array"
Sub tst_USD_et_array()
Dim UnObjet As objetAccess
Dim ListeObjet() As Variant
UnObjet.strNomObjet = "tata"
UnObjet.dateCréation = #1/2/2009#
UnObjet.dateRévision = #12/2/2009#
MsgBox UnObjet.strNomObjet & " " & Format(UnObjet.dateCréation, "dd
mmm yy")
'?????
ListeObjet(1) = UnObjet
MsgBox ListeObjet(1).strNomObjet & """" & ListeObjet(1).dateCréation
'??????
End Sub
Je planche et séche sur comment placer les valeurs dans le tableau.
merci de votre collaboration
Jean-Paul
merci MichDenis
Je regarde tes ^propositions" dés que j'ai une minute.
Car, il me semble, que la réponse cherchée est celle fournie..
Merci MichDenis