AW: Problem mit Daten in Listbox
Luschi
Hallo Ray,
habe mir den 2. Teil des Vba-Codes noch einmal angesehen und es sind einige Ungenauigkeiten aber auch falsche Anweisungen drin.
Mit 'Workbooks.Add' wird eine neue Arbeitsmappe (AM) erstellt. Diese AM ist jetzt die aktive AM und alle Cells/Range-Objektzuweisungen ohne explicite Punktzuweisung [.Cells()/.Range()]beziehen sich auf die 1. Tabelle dieser neuen AM.
1. Ungenauigkeit/Fehler?:
vRow = Application.Match(wks.Cells(iRow, 8).Value, Columns(10), 10)
Columns(10) zeigt nicht auf die 10. Spalte der wks-Tabelle sondern auf die 10. Spalte der ersten Tabelle in der neuen AM
Da in dieser 10. Spalte aber nie was steht, wird immer vRow einen Fehlerwert enthalten.
Frage - was soll diese Codezeile überhaupt machen?
Cells(iRowT, 1).Value = wks.Cells(iRow, 8).Value
Damit wird in die 1. Spalte der 1. Tabelle der neuen AM der Wert aus der 8. Spalte der wks-Tabelle mit der ZeilenNr iRow geschrieben.
Das heißt, es wird immer nur in die 1. Spalte geschrieben.
Bei Cells() kommt zuerst die Zeilen- und dann die Spaltennummer.
2. Ungenauigkeit:
With wks
vTemp1 = Range("A2").CurrentRegion.Value '.Range("A1:H" & .Cells(Rows.Count, 1).End(xlUp).Row)
End With
With wks ist nutzlos, da sich 'Range("A2").CurrentRegion.Value' auf die 1. Tabelle der neuen AM bezieht.
Da in dieser Tabelle nur Spalte A gefüllt ist kannst man in der Listbox auch nur eine Spalte sehen.
Um mit der neu geöffneten AM richtig umzugehen, sollte man hier auch mit Objekt-Variablen arbeiten.
Dim wbNeu As Workbook, wsNeu As Worksheet
Set wkbNeu = Workbooks.Add
Set wksNeu = wkbNeu.Worksheets(1)
Und dann stellt man allen jetzigen Cells()/Range-Objekten ohne Punktzuweisung 'wksNeu.' vorran.
Außerdem hast Du sicher die langsamste Methode gewählt, denn das schreiben vorhandener Daten in eine neue Tabelle in einer neuen AM, um diese dann in eine Listbox anzuteigen, ist nicht gerade schnell. Außerdem wird diese neue AM nie geschlossen und deshalb werden sich mit der Zeit neu geöffnete AM's ansammeln - immer dann, wenn sich der Wert in 'frmAuftragListe.lbWas' ändert.
Du siehst, es ist noch viel zu tun, aber ich helfe Dir auch gern weiter.
Gruß von Luschi
aus klein-Paris