Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1192to1196
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
Listbox Laufzeitfehler 381
Jörg
Hallo Forum,
ohne große Umschweife:
ich erhalte folgende Meldung: Laufzeitfehler 381, Eigenschaft List konnte nicht gesetzt werden. Index des Eigenschaftsfeldes ungültig. Und beim Debug ... Eigenschaft List konnte nicht abgerufen werden.
Umstände: ich wähle aus einer Tabelle in unterschiedlicher Reihenfolge verschiedene Zeilen (je nachdem, welche ich gerade brauche). Daraufhin werden diese Zeilen in ein neues Blatt kopiert. Sie halten allerdings die Zeilennummer bei. Was in der Tabelle Aktionen auf der 4. Zeile war, bleibt auch in Tabelle S2 auf der 4. Zeile. Einige Zeilen sind in der Tabelle S2 dann halt leer. Die 7. 3. 9. oder so sind dann wieder z.B. wieder vorhanden.
Untenstehendem Code wird dann die ZeileNr in der etwas steht, mitgeteilt. Anschließend kopiert das Modul z.B. die 4. Zeile in die Listbox. Hier sollte sie auch in der 4. Zeile auftauchen.
Wenn ich aber nach der 4. Zeile eine 2. Zeile in Tabelle Aktionen wähle (die dann ja auch in die zweite Zeile in Tabelle S2 kopiert wird) gibt es diesen Fehler.
Es hängt wohl mit den unterschiedlichen Zeilenpositionen in der Tabelle zusammen. Fülle Listbox kommt wohl nicht damit zurecht, dass dann nach der 4. Zeile auch eine 2. oder 1. belegt werden soll.
Private Sub FülleListboxS2(ZeileS2 As Long)
Dim RowS2 As Integer
RowS2 = ZeileS2
Hauptfeld.ListBoxStatus2.ColumnCount = 9
Hauptfeld.ListBoxStatus2.AddItem
Hauptfeld.ListBoxStatus2.ColumnWidths = "2cm;2cm;2cm;2cm;3cm;3cm;3cm;2cm"
Hauptfeld.ListBoxStatus2.ListIndex = 0
Hauptfeld.ListBoxStatus2.List(RowS2 - 1, 0) = Sheets("S2").Cells(ZeileS2, 2).Value ' _
Gemeinde
Hauptfeld.ListBoxStatus2.List(RowS2 - 1, 1) = Sheets("S2").Cells(ZeileS2, 3).Value ' _
Ortsgemeinde
Hauptfeld.ListBoxStatus2.List(RowS2 - 1, 2) = Sheets("S2").Cells(ZeileS2, 4).Value ' _
FhrzTyp
Hauptfeld.ListBoxStatus2.List(RowS2 - 1, 3) = Sheets("S2").Cells(ZeileS2, 5).Value ' _
name
Hauptfeld.ListBoxStatus2.List(RowS2 - 1, 4) = "verst.: " & Format(Worksheets("S2"). _
Cells(ZeileS2, 6).Value, "hh:mm:ss") 'verständigt
Hauptfeld.ListBoxStatus2.List(RowS2 - 1, 5) = "startklar : " & Format(Worksheets("S2").  _
_
Cells(ZeileS2, 7).Value, "hh:mm:ss") 'ist da
Hauptfeld.ListBoxStatus2.List(RowS2 - 1, 8) = "Auftrag : " & Sheets("S2").Cells(ZeileS2, _
_
10).Value 'Aufträge
End Sub
Ich habe momentan den Überblick verloren. Hatte sich ganz gut angelassen (1, 2, 3, usw. in der Reihenfolge geht; als ich dann die Reihenfolge veränderte 3, 1, 2 .... ging es schief).
Diese unreglemäßige reihenfolge müsste ich beibehalten. Die Einträge aus der 1. Listbox werden nach einer bestimmten Zeit in ein zweite geschoben, und anschließend in der ersten gelöscht (ich überschreibe die stelle mit einem Leerzeichen).
Könnt Ihr mir da mal auf die Sprünge helfen?
Vielen Dank
Jörg

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Listbox Laufzeitfehler 381
07.01.2011 09:16:14
gerwas
Hallo
ist klar, dass die reihenfoleg 1-2-3 funktioniert, weil:
dein macro erzeugt einen neuen listeneintrag (.add), der hat natürlich die laufende nummer 0, dann schreibst du deine daten in diesen eintrag (list(rowS2-1,0) usw. rowS2-1 ist hier natürlich=0, d.h. die zeile gibt es und damit kann sie auch gefüllt werden. forltlaufend genau so...
fängst du jetzt mit zeile 3 an, erzeugt dein macro wieder den neuen Eintrag mit der nummer 0, nur das schreiben in die zeile rowS2-1 hier dann 2 muß natürlich schief gehen, weil es die zeile nicht gibt!
warum willst du eigentlich leere zeilen in der box haben, du beginnst mit dem einlesen inspalte 2, steht in spalte 1 eventuell eine zeilennummer oder so?
gruß gerwas
Anzeige
AW: Listbox Laufzeitfehler 381
07.01.2011 12:41:36
Jörg
Guten Morgen Gerwas,
Du hast recht, ist ein Denkfehler, das hatte ich auch so - naja - vermutet. Konnte das aber nicht in
passende Zeilen umwandeln. Ich habe diese Frage nach einiger Zeit auch mal an office-lösungen gestellt
und habe dort gleichfalls Hilfe bekommen:
http://www.office-loesung.de/ftopic432896_0_0_asc.php#1801111
Ich danke Dir für Deine Reaktion auf meinen Hilferuf. Schau Dir mal die Lösung von Nepumuk an, läuft richtig
gut.
Zu Deiner Frage: die Einträge >>fallen eine Dritte. Wenn also eine Zeitbedingung (1. Lbox) erfüllt wurde kommt der Eintrag in die Zweite und
muss in der Ersten gelöscht (bei mir mit Leerzeichen überschrieben) werden. Die Zeilennummer zu dem
Ereignis aus einer Listbox bleibt auf dem Weg durch die 3 Lboxen erhalten....
Habe halt noch nicht so den Draht zu logischem Programmieren. Meine letzte Basic-Stunde ist ja
auch schon 27 Jahre her und nun hatte mich der Ehrgeiz gepackt; autsch :-))
Gruß
Jörg
Anzeige

13 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige