Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
292to296
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
292to296
292to296
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Benutzerdefinierte Typen in Collections

Benutzerdefinierte Typen in Collections
12.08.2003 09:53:10
Marco
Hallo,
wie bekomme ich benutzerdefinierte Typen (Records, Strukturen, wie auch immer
man sie nenen will) in Collections. Oder können VBA Collections nur
einfache Datentypen ("Sting, Integer usw...)aufnehmen ?
Dieser Quelltext steht in einem KlassenModul:
Private Type t_fahrzeug
colorindex As Integer
pos_nr As Integer
y_nr As String
verwendung As String
End Type
Private fahrzeuge As Collection
' Kontruktor
Public Sub Class_initialize()
Call SetFahrzeugData
End Sub

' Setzt memebervariable fahrzeuge

Private Sub SetFahrzeugData()
Dim i As Integer
Dim fahrzeug As t_fahrzeug
Set fahrzeuge = New Collection
Sheets("Fzg-Uebersicht").Activate
i = 1
Do Until ActiveCell.Value = ""
fahrzeug.colorindex = Range("quelle_color").Offset(i, 0).Value
fahrzeug.y_nr = Range("quelle_ynr").Offset(i, 0).Value
fahrzeug.verwendung = Range("quelle_verwendung").Offset(i, 0).Value
fahrzeug.pos_nr = Range("quelle_pos").Offset(i, 0).Value
' fahrzeug in Collection aufnehmen
---->    fahrzeuge.Add fahrzeug                -----> hier ist mein Problem !!
' nächste Zeile
ActiveCell.Offset(1, 0).Activate
Loop
Debug.Print ("Es wurden " & fahrzeuge.Count & " Fahrzeuge ermittelt")
End Sub

Als Fehlermeldung erscheint immer:
----------------------------------
Nur benutzerdefinierte Typen, die in öffentlichen Objektmodulen definiert wurden, können in den oder aus dem Typ Variant umgewandelt werden, oder an eine zur Laufzeit auflösbare Funktion weitergeleitet werden.

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Benutzerdefinierte Typen in Collections
13.08.2003 09:51:16
Michael Schirow
Hi Marco,
verwende eine Klasse für den benutzerdef. Typ. Beispiel s.u.
HTH, Michael
' -------------------------
' Klassenmodul: clsFahrzeug
' -------------------------
Option Explicit
' Eigenschaften
Public FarbCode As Integer
Public Hersteller As String
Public Typ As String
' Methoden
' -------------------------
' Klassenmodul: clsFahrzeuge
' -------------------------
Option Explicit
Private fahrzeugliste As Collection
' Konstruktor

Private Sub Class_Initialize()
Set fahrzeugliste = New Collection
End Sub

' öffentliche Methoden
Public Sub add(fahrzeug As clsFahrzeug)
fahrzeugliste.add fahrzeug
End Sub

Public Sub show(index As Integer)
Dim f As clsFahrzeug
Set f = fahrzeugliste(index)
With f
Debug.Print .Hersteller
Debug.Print .FarbCode
Debug.Print .Typ
End With
End Sub

' ---------------------------
' Modul: modTest
' ---------------------------
Option Explicit
Sub test_clsFahrzeuge()
Dim fahrzeug As clsFahrzeug
Dim fahrzeuge As clsFahrzeuge

Set fahrzeug = New clsFahrzeug
Set fahrzeuge = New clsFahrzeuge

With fahrzeug
.FarbCode = 1
.Hersteller = "Mercedes"
.Typ = "LKW"
End With

fahrzeuge.add fahrzeug
fahrzeuge.show (1)

End Sub


Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige