Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema ListBox
BildScreenshot zu ListBox ListBox-Seite mit Beispielarbeitsmappe aufrufen

Listbox macht sich selbstständig

Betrifft: Listbox macht sich selbstständig von: Frank_S
Geschrieben am: 16.08.2020 13:07:44

Hallo zusammen,

gestern hab ihr mir sehr weitergeholfen bei einem Problem mit einer Listbox, welche gefilterte Werte anzeigt.

Nun taucht aber leider ein weiteres Problem auf. Wenn ich einen gefilterten Wert anklicke, ändert sich iwi von selbst der Filter (eingestellt per Combobox). Eine Demo-Mappe habe ich mal hochgeladen. Es ist der rudimentäre Anfang einer Lagerverwaltung mit Seriennummerführung, aber ohne Verkauf.

Da ich nicht weiß, in welchem Codeblock der Fehler steckt, poste ich hier auch keinen Code. Damit mein Problem zu beobachten ist, muss die Lagerverwaltung geöffnet werden, der 2. Artikel angeklickt werden und unter der Listbox der OptButton "Gefiltert" gewählt sein. Dann zB nach "inform.at" filtern und Seriennummer anklicken. Dabei springt der Filter wieder auf den ersten Wert "POS Hagen" zurück.

Habs im Stepmodus versucht herauszufinden, finde den Fehler aber nicht.

Kann mir jemand vielleicht helfen?


Vielen Dank im Voraus....


https://www.herber.de/bbs/user/139650.xlsm

Betrifft: AW: Listbox macht sich selbstständig
von: onur
Geschrieben am: 16.08.2020 13:34:28

"Dann zB nach "inform.at" filtern" - und wie genau soll das gehen ?

Betrifft: AW: Listbox macht sich selbstständig
von: Frank_S
Geschrieben am: 16.08.2020 13:49:39

Hi, das habe ich doch im Anfang genau beschrieben. Unter der Listbox mit den fiktiven Seriennummern sind 2 Optionsbutton. Einer ist mit "gefiltert" beschriftet. Wenn dieser aktiv ist, kann man die Anzeige der Listbox je nach Standort beeinflussen.

Betrifft: AW: Listbox macht sich selbstständig
von: onur
Geschrieben am: 16.08.2020 14:14:36

STANDORT HAST DU NICHT ERWÄHNT, EBENSOWENIG DIE COMBOBOX STANDORT/LAGER !!!
NUR DU KENNST DIE FUNKTIONEN DEINER DATEI, WIR NICHT!

Betrifft: AW: Listbox macht sich selbstständig
von: onur
Geschrieben am: 16.08.2020 14:25:34

Hier liegt der Hund begraben:
lastSN = ewb.Worksheets(lastItem).Cells(i + 2, "A").Value
Me.cbLager.ListIndex = CInt(ewb.Worksheets(lastItem).Cells(lastSN, "C").Value)

LastSN=2
lastItem= NET00100100
daraus folgt:

CInt(ewb.Worksheets("NET00100100").Cells(2N, "C").Value)= 0

Betrifft: ich habe...
von: Oberschlumpf
Geschrieben am: 16.08.2020 14:07:00

....auch keinen Eintrag a la "inform.at" gefunden, so wie du es beschrieben hast

Betrifft: AW: Listbox macht sich selbstständig
von: ralf_b
Geschrieben am: 16.08.2020 14:12:40

Me.cbLager.ListIndex = CInt(ewb.Worksheets(lastItem).Cells(lastSN, "C").Value)

der Wert ist 0 und dann wird eben auf den ersten Listboxeintrag gesetzt. Die macht also was sie soll.

Betrifft: AW: Listbox macht sich selbstständig
von: Frank_S
Geschrieben am: 16.08.2020 14:33:19

Hallo Ralf,
da hast du nur zum Teil Recht. Da die gefiltertetn aktuellen Seriennummern in der Listbox anhand des .ListIndex gefiltert wurden, kann kein falscher Index vorkommen und damit das Neufiltern auslösen.
Damit meine ich, in:

Me.cbLager.ListIndex = CInt(ewb.Worksheets(lastItem).Cells(lastSN, "C").Value)

wird der Value genau diesem gefilterten ListIndex entsprechen und nicht plötzlich 0 sein. Außer ich habe da noch einen Denkfehler drin.

Betrifft: AW: Listbox macht sich selbstständig
von: onur
Geschrieben am: 16.08.2020 14:40:00

ListBox_Cliock löst Call SN_Select aus (DEIN Code)
und SN_Select setzt Listindex der Combobox auf 0, da auf Blatt "NET00100100" in C2 0 steht.

Betrifft: zum Teil stimmt schon.....
von: ralf_b
Geschrieben am: 16.08.2020 14:49:56

..wenn man die eigentliche Ursache noch herausfinden will. Aber das war ja nicht deine Frage.

Kommentiert man die angesprochene Zeile aus, bleibt auch dein Listboxeintrag auch so wie er ist.
Zwei Ratschläge noch bevor ich mich hier verabschiede und onur das Feld überlasse. :)

Die Listboxen sollten meines Erachtens im ersten Eintrag leer sein, einen Nullwert oder Defaulteintrag haben. Dann sieht man solche "Fehler" einfacher. Und die Anzeige an sich ist etwas konsistenter. Aktuell steht da ja schon zu Beginn "POS Hagen" drin, was ja so gesehen nicht immer zutreffend ist.

Deinen Code mit Kommentaren zu ergänzen empfehle ich auch dringend. Aus eigener leidlicher Erfahrung heraus.

Viel Erfolg

Betrifft: AW: zum Teil stimmt schon.....
von: Frank_S
Geschrieben am: 16.08.2020 15:21:43

Hallo Leute, vielen Dank für eure Antworten.
Den Fehler habt ihr gefunden. Allerdings ist auskommentieren der Zeile sicher keine Option, da im umgekehrten Fall die Combobox (Standort) bei der ungefilterten Liste den aktuellen Standort zur ausgewählten SN anzeigen soll.
Habt ihr vielleicht noch eine andere Lösung für das Problem? Eine zusätzliche Public Variable vielleicht?

Gruß, Frank

Betrifft: AW: zum Teil stimmt schon.....
von: onur
Geschrieben am: 16.08.2020 15:24:28

Ich bin sowieso raus, da du meine letzten Antworten einfach ignoriert hast.

Betrifft: AW: zum Teil stimmt schon.....
von: Frank_S
Geschrieben am: 16.08.2020 16:02:27

Sorry, da kam wohl deine Antwort zeitgleich und mit fast gleichem Inhalt.
Ok, dann such ich alleine weiter nach einer Lösung.

Schönen Sonntag noch.

Betrifft: wenn du so fragst...
von: ralf_b
Geschrieben am: 16.08.2020 17:08:39

Ich habe das Auskommentieren nicht empfohlen, sondern beschrieben wie der Fehler nicht auftritt.

Du suchst nach Hilfe bei deiner Lagerverwaltung?
Wie wärs wenn du deine Formularaufteilung überdenkst und die Reaktion auf vermutliche Fehlerursachen, die man dir mitteilt?

Ein Mischmasch aus Datenanzeige und Suchfunktion bei dem selben Control wird dir Kopfzerbrechen bereiten. Und wie es aussieht auch den Leuten, die du dann fragst.

Ich weis nicht ob du dir andere Lagerverwaltungen schon mal angesehen hast. Aber die Multipagevariante ist aus meiner Sicht ungünstig. Eine Trennung von Datenanzeige und Funktionen sollte einige Probleme von vornherein vermeiden. Natürlich geht es bestimmt auch irgendwie mit der Mischmaschsache. Ich schätze da werden einige boolesche Werte benötigt oder eine Statusvariable in der drin steht was du gerade machst in deinem Formular.

Betrifft: AW: wenn du so fragst...
von: Frank_S
Geschrieben am: 16.08.2020 20:25:58

Hallo Ralf,
danke für deine ausführliche Antwort.
Zu den einzelnen Punkten: Mischmasch aus Daten- und Suchfunktion.
Ja, da hast du im Prinzip völlig Recht. In dem Fall hier bietet es sich aber quasi schon an. Seriennummer auswählen und neuen Standort zuweisen. Das ganze mit akt. Datum und ggf Auftragsnummer versehen...fertig. Der Rest wird logischerweise vom Code her blockiert werden.

Andere Lagerverwaltungen angesehen?
Jepp, habe echt lange gesucht, einiges heruntergeladen und ausprobiert. Aber unsere Firma ist nun mal ein Spezialfall, wo normale einfache Lagerverwaltungen nicht zu gebrauchen sind. Da wir nicht speziell mit Stückzahlen und Verkauf arbeiten. Sondern wir lagern Geräte ein für unsere Kunden, bzw. unseren Partnern, bis sie zum Einsatz in Filialen des Kunden gelangen. Das heißt, wir müssen ständig wissen, wo welches Gerät zur Zeit ist und dem Kunden darüber Rechenschaft erteilen können.
Das nur im Groben, wozu ich nun noch eine Lagerverwaltung programmiere.

PS: Die Idee mit den Statusvariablen (Boolean) finde ich prima und ich versuche mal damit weiter zu kommen.

Danke für deine Zeit und Hilfe.
Gruß, Frank

Betrifft: AW: wenn du so fragst...
von: Frank S.
Geschrieben am: 17.08.2020 13:14:46

Hallo Ralf,
eine Frage von dir habe ich leider noch nicht beantwortrt. Das hole ich hiermit nach.
Für die Multipage habe ich mich aus optischen Gründen und der Übersichtlichkeit wegen entschieden. Ein großer Nachteil ist natürlich, es dürfen erstmal nicht mehr als 100 verschiedene Artikel anfallen. Im Schnitt sind es bei uns ca 40 bis 60 verschiedene Artikel pro Kunde. Von den Artikeln dann aber eine gewisse Anzahl, welche wir sehr genau verwalten müssen.
Allerdings hab ich noch keinen Plan, wie ich es mit Kabel und Netzteilen halte, die werden nur Stückzahl mäßig geführt. Aber das wird mir zu gegebener Zeit auch noch einfallen.

Im übrigen habe ich mein Problem doch selber lösen können, indem ich den selektierten Value (nicht Index)mit den vorhandenen Einträgen im Tabellenblatt vergleiche.

Beiträge aus dem Excel-Forum zum Thema "Listbox macht sich selbstständig"