15.11.2018, 20:05
Guten abend zusammen,
ich möchte aus einer Liste, die ich in ein Klassenobjekt einlese, in einem Nachfolgeschritte eine Attributliste wieder ausgeben.
Dabei schaffe ich es nicht, bei der Ausgabe den unerwünschten Effekt zu vermeiden, dass meine Ausgabe erst in Zeile 2 beginnt.
--> d.h. ich suche nach dem Zauberhandgriff, der die Ausgabe in Zeile 1 beginnen lässt.
Der Reihe nach:
Die angehängte Datei hat auf der Tabelle 1 einen definierten Bereich "Liste" mit Einzelspalten als Unterbereiche
"No_Spalte", "Bez_Spalte", "MB_Spalte" und "St_Spalte"
In dieser Liste sind 20 Teile beschrieben: Zählnummer, Name, Kennzeichnung (M/B) und Stückzahl
Ich habe die Klasse "Teile" definiert:
diese befülle ich mit der Prozedur "ObjektListe_Erstellen", die zum Schluss die Ausgabe der Namen in Spalte J erreicht:
Leider schaffe ich es nicht, diese Ausgabe in der Excelzeile 1 beginnen zu lassen, was eigentlich mein gewünschtes Ergebnis wäre.
Kann mir hier jemand einen heißen Tipp geben?
Vielen Dank schon mal und schönen Abend noch.
Gruß Ludwig
ich möchte aus einer Liste, die ich in ein Klassenobjekt einlese, in einem Nachfolgeschritte eine Attributliste wieder ausgeben.
Dabei schaffe ich es nicht, bei der Ausgabe den unerwünschten Effekt zu vermeiden, dass meine Ausgabe erst in Zeile 2 beginnt.
--> d.h. ich suche nach dem Zauberhandgriff, der die Ausgabe in Zeile 1 beginnen lässt.
Der Reihe nach:
Die angehängte Datei hat auf der Tabelle 1 einen definierten Bereich "Liste" mit Einzelspalten als Unterbereiche
"No_Spalte", "Bez_Spalte", "MB_Spalte" und "St_Spalte"
In dieser Liste sind 20 Teile beschrieben: Zählnummer, Name, Kennzeichnung (M/B) und Stückzahl
Ich habe die Klasse "Teile" definiert:
Code:
Option Explicit
Private mintNummer As Integer
Private mstrBezeichnung As String
Private mstrM_B As String
Private mintStueck As Integer
'----------------------------------'----------------------------------Nummer
Public Property Get Nummer() As Integer
Nummer = mintNummer
End Property
'----------------------------------
Public Property Let Nummer(ByVal vNewValue As Integer)
mintNummer = vNewValue
End Property
'----------------------------------
'----------------------------------Bezeichnung
Public Property Get Bezeichnung() As String
Bezeichnung = mstrBezeichnung
End Property
'----------------------------------
Public Property Let Bezeichnung(ByVal vNewValue As String)
mstrBezeichnung = vNewValue
End Property
'----------------------------------
'----------------------------------M_B
Public Property Get M_B() As String
M_B = mstrM_B
End Property
'----------------------------------
Public Property Let M_B(ByVal vNewValue As String)
mstrM_B = vNewValue
End Property
'----------------------------------
'----------------------------------Stueck
Public Property Get Stueck() As Integer
Stueck = mintStueck
End Property
'----------------------------------
Public Property Let Stueck(ByVal vNewValue As Integer)
mintStueck = vNewValue
End Property
'----------------------------------
Code:
Option Explicit
Public i As Integer, k As Integer, j As Integer 'Zähler
Public Teile() As cls_Teile 'Klasse
Public myArray() As Variant 'Hilfsarray
Sub ObjektListe_Erstellen()
'##############################################
'##### Prozedur zur Erstellung einer ##########
'##### internen Teileliste ##########
'##############################################
i = Empty 'Sicherstellen, dass die Zählvarianten den Startwert 0 haben
j = Empty
k = Empty
i = Range("Liste").Rows.Count 'Listenlänge ermitteln
ReDim Teile(1 To i) 'cls_Teile dimensionieren
For k = 1 To i
Set Teile(k) = New cls_Teile
Teile(k).Nummer = Cells(Range("Liste").Row + k - 1, Range("No_Spalte").Column).Value
Teile(k).Bezeichnung = Cells(Range("Liste").Row + k - 1, Range("Bez_Spalte").Column).Value
Teile(k).M_B = Cells(Range("Liste").Row + k - 1, Range("MB_Spalte").Column).Value
Teile(k).Stueck = Cells(Range("Liste").Row + k - 1, Range("St_Spalte").Column).Value
Next
ReDim myArray(1, i) 'Hilfsarray dimensionieren
For j = 1 To i
myArray(1, j) = Teile(j).Bezeichnung 'Hilfsarray bestücken mit Attribut Teilebezeichnung
Next
'Attribut in Spalte ausgeben
Cells(1, 10).Resize(i + 1, 1) = _
WorksheetFunction.Index(WorksheetFunction.Transpose(myArray), 0, 2)
i = Empty
j = Empty
k = Empty 'Zähler leeren
End Sub
Kann mir hier jemand einen heißen Tipp geben?
Vielen Dank schon mal und schönen Abend noch.
Gruß Ludwig