Collection d'objets crées

Bonjour

je n'arrive pas à comprendre pourquoi le code suivant, super simple pourtant, ne fonctionne pas

Sous Excel VBA, j'ai créé un module et j'ai écrit le code suivant

Type TA

a As Integer

b As Integer

End Type

Sub main()

Dim myT As Collection

Set myT = New Collection

Dim t1 As TA

With t1

.a = 1

.b = 2

End With

myT.Add (t1)

End Sub

je reçois le message suivant

"Erreur de compilation : seuls les types définis par l'utilisateur et qui sont définis dans les modules d'objets publics peuvent être convertis depuis ou vers un variant, ou passés à des fonctions à liaison tardive"

Une idée ?

Amicalement

Bonjour,

Je ne pense pas que votre code puisse fonctionner.

ci-dessous une proposition en utilisant plutôt un module de classe qu'un Type utilisateur

1- création d'un module de classe nommé TA

Private v1 As Integer, v2 As Integer

Public Property Let a(ByVal valeur As Integer)
    v1 = valeur
End Property
Public Property Get a() As Integer
    a = v1
End Property

Public Property Let b(ByVal valeur As Integer)
    v2 = valeur
End Property
Public Property Get b() As Integer
    b = v2
End Property

2- votre code modifié

Sub main1()
    Dim myT As New Collection
    Dim t1 As New TA

    With t1
    .a = 1
    .b = 2
    End With

    myT.Add t1
End Sub

Bonjour, Salut Thev !

Sinon, tu peux faire fonctionner ton type personnalisé avec un tableau :

Type TA
    a As Integer
    b As Integer
End Type

Sub main()
    Dim myT() As TA, i%
    ReDim myT(1)
    For i = 0 To 1
        With myT(i)
            .a = 1 + i * 2
            .b = 2 + i * 2
        End With
    Next i
    For i = 0 To 1
        MsgBox "a=" & myT(i).a & " - b=" & myT(i).b
    Next i
End Sub

Cordialement.

super

merci à vous tous pour ces deux propositions.

Rechercher des sujets similaires à "collection objets crees"