Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1788to1792
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
Inhaltsverzeichnis

Listbox befüllen

Listbox befüllen
01.11.2020 04:13:18
Demech
Hallo Zusammen
Ich verzweifle fast. Sitze jetzt schon 6 Stunden an dem Problem und komme nicht weiter.
Ich habe eine UserForm welche folgende Objekte enthält:
1 X ComboBox1
1 X ComboBox2
1 X ListBox
1 X CommandButton1
ComboBox1: Diese wird aus einem Sheet (Tabelle1) befüllt.
TextBox1: Hier wird eine Zahl manuell eingegeben oder Ausgewählt (Befüllt aus Tabelle2)
Mittels CommandButton1 möchte ich nun die Listbox folgender massen befüllen.
Spalte eins in ListBox = Auswahl aus ComboBox1
Spalte zwei in ListBox = Eingabe aus ComboBox2
Spalte drei in ListBox = *Preis * Formel in Tabelle6 Spalte 3
Diese ganze Abfrage möchte ich dann endlos wiederholen können. Jede Eingabe soll in der Listbox eine weitere Zeile generieren.
Am Ende sollte ich dann eine Liste erhalten mit allen eingegebenen werten.
Ich habe nun eine Sheet mit Namen ListBoxDaten erstellt und darin die Tabelle6 gemacht welche leer ist.
Überschriften: Produkt | Menge | Preis
Nun möchte ich mittels ComandBatton1 die Werte aus ComboBox1 + 2 in die Tabelle6 schreiben.
Mit jedem klick soll eine neue Zeile in der Tabelle generiert werden.
Am Ende des Codes gebe ich den Befehl mit, dass die Tabelle in der ListBox1 angezeigt werden soll.
Am Anfang hat mein Code noch funktioniert. Jetzt erzeugt er jedoch einen Überlauf und ich weis nicht wieso.
Private Sub CommandButton1_Click()
Dim z As Integer
z = ThisWorkbook.Sheets("ListBoxDaten").Range("Tabelle6").End(xlDown).Row + 1
If z 

Ich Danke euch für konstruktive Ratschläge. Bin wirklich ein Anfänger in VBA
Gruss
Demech

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
probier mal AS LONG statt Integer ... owT
01.11.2020 04:43:34
Matthias
.
AW: probier mal AS LONG statt Integer ... owT
01.11.2020 11:44:26
Demech
Guten Morgen
Habe nun As Long verwendet. Der Überlauf kommt nun nicht mehr.
Meine Tabelle ist 3 Spalten breit und am Anfang leer.
Sie wird sozusagen als Zwischenspeicher verwendet.
Momentan bekomme ich folgende Fehler:
Anwendungs oder Objektorientierter Fehler
Beim Debuggen gibt es mir die Zeile
ThisWorkbook.Sheets("ListBoxDaten").Cells(z, 1) = ComboBox1.Value
Wenn ich .End(xlDown) zu .End(xlUp) ändere funktioniert es, jedoch überschreibt es mir dann immer die eingetragene Zeile.
Sprich Es erstellt einen Zeile in der Tabelle, welche immer wieder überschrieben wird, anstatt dass es eine neue Zeile generiert.
Fehlt mir hier noch ein Teil, welcher der Tabelle sagt, dass Sie den Eintrag immer in die nächste freie Zeile eintragen soll?
Habe gedacht, dass Ich dies mit .Row + 1 mache?
Danke dir auf jeden Fall
Gruss
Demech
Anzeige
AW: probier mal AS LONG statt Integer ... owT
01.11.2020 11:47:20
Hajo_Zi
Hallo Demech,
Zu Deiner Datei kann ich nichts schreiben, was wohl daran liegt das ich nicht auf fremde Rechner schaue.Ich baue keine Datei nach.
Sollte die Datei verlinkt werden?
Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, kannst du diese Daten
http://www.ms-office-forum.de/forum/showthread.php?t=322895
änderrn.
Bilder lade ich mir nicht runter, da Excel damit nichts anfangen kann.
http://www.excel-ist-sexy.de/bilder-statt-datei/
Hochgeladene Bilder können zwar als solche in Excel importiert werden, sind jedoch bei der Lösung von Problemen nicht sehr hilfreich, da man die eigentlichen Daten nicht ohne große und zeitraubende Umwege direkt in die Tabelle übertragen kann.
Das ist nur meine Meinung zu dem Thema.

Anzeige
AW: probier mal AS LONG statt Integer ... owT
01.11.2020 12:55:19
Demech
Hallo Hajo
Habe die Datei hochgeladen.
Sind keine sensiblen Daten drin. Aber ist alles erst noch im Aufbau.
https://www.herber.de/bbs/user/141223.xlsm
Ich glaube mein Problem besteht noch in der Definition von z
Eigentlich möchte ich z auf die Tabell "DatenListBox" im Blatt "ListBoxDaten" definieren.
z gibt mir jedoch eine Grösse von 1048577 an obwohl die Tabelle nur eine Zeile hat.
Danke dir auf jedenfall fürs lesen.
Gruss
Demech
AW: probier mal AS LONG statt Integer ... owT
01.11.2020 13:04:51
Daniel
Hi
Grundproblem der Sprungfunktion End.
Wenn die Zelle unter der Absprungzelle leer ist, ist das Sprungziel die nächste befüllte Zelle oder eben das Ende des Tabellenblatts, wenn es darunter keine befüllte Zelle mehr gibt.
Dann muss man diesen Fall abfragen und ggf unterschiedlich reagieren.
Sinnvoller ist meistens der Sprung von der letzten Blattzeile nach oben: Cells(Rows.Count, 1).End(xlup)
In dem Bereich sind die Zellen in der Regel leer so dass es keine Sonderfälle zu unterscheiden gibt.
Gruß Daniel
Anzeige
AW: probier mal AS LONG statt Integer ... owT
01.11.2020 13:14:51
Hajo_Zi
Hallo Demech,
Private Sub CommandButton1_Click()
Dim z As Long
With ThisWorkbook.Sheets("ListBoxDaten")
z = .UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1
If z 


AW: probier mal AS LONG statt Integer ... owT
01.11.2020 13:26:23
Demech
Hallo Hajo
Das funktioniert wunderbar.
Nur kurz zum lernen:
Mit ".UsedRang.spezialCells" fragt man im angegebenen Worksheet speziell formatierte Zellen ab?
Oder speziell Tabellenformatierte Zellen?
mit xlCellTypLastCell steht für die letzte befüllte Zelle irgend wo im Blatt?
Verstehe ich das richtig?
Danke dir auf jeden Fall! :-)
Anzeige
AW: probier mal AS LONG statt Integer ... owT
01.11.2020 13:36:46
Hajo_Zi
keine weitere Antwort, da Crossposting.-
Gru� Hajo
AW: probier mal AS LONG statt Integer ... owT
01.11.2020 13:45:26
Demech
Hallo Hajo
Wurde darauf hingewiesen und habe mich da auch entschuldigt. Die Querverweise sind nun in beiden Foren bekannt. Habe mich auch in beiden Foren entschuldigt. Crossposting kannte ich nicht.
Verstehe jedoch deine Reaktion und Danke dir auf jeden Fall für deine Hilfe.
Demütige Grüsse
Demech
AW: Crossposting
01.11.2020 13:07:34
Demech
Hallo SF
Sorry wusste nicht dass das eine Rolle spielt.
Bin mit dem Tema in beiden Foren unterwegs, da ich möglichst viel lernen möchte und daher auf verschiedene Varianten, Gedankengänge und Lösungsansätze hoffte.
Tut mir leid, wenn ich damit gegen Foren Regeln verstossen habe. War mir nicht klar, dass man dass nicht machen sollte.
Anzeige
AW: Crossposting
01.11.2020 13:19:47
Daniel
Das Risiko ist aber groß, dass du nicht unterschiedliche Lösungen bekommst, sondern gleiche, wenn Antworter 2 nicht sehen kann was Antworter 1 schon geschrieben hat.
Du solltest nicht vergessen, dass du dich in jedem Forum für jede Antwort in gleichem Maß bedanken solltest, unabhängig davon ob sich die Antwort schon mehrfach wiederholt und vielleicht einen Tag später kommt, aber das ist für die meisten Crossposter dann wieder zu lästig und wird nicht gemacht (auch wenn sie zu Beginn das Gegenteil hoch und heilig versprechen)
Das ist dann ärgerlich.
Auch sollten alle Antworter die Möglichkeit haben, die anderen unterschiedlichen Lösungswege zu sehen um dann ggf selber noch etwas dazuzulernen, wenn einer der anderen Antworter eine clevere Idee hat.
Diese Möglichkeit, auch als Antworter noch dazuzulernen ist mit ein Grund, warum sich viele hier beteiligen und dir kostenfrei Hilfe leisten.
Dies solltest du durch Crosdposting ohne Quervernetzung nicht kaputt machen.
Anzeige
AW: Crossposting
01.11.2020 13:33:23
Demech
Ok ich verstehe. Tut mir leid. Gebe die Antwort welche ich von Daniel erhalten habe auch im anderen Forum weiter. Diese finde ich wirklich gut und möchte auch das andere davon profitieren können.
Ich habe spass am ganzen und schätze die Antworten wirklich sehr.
Ich entschuldige mich für mein Fehlverhalten.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige