Clever-Excel-Forum

Normale Version: Informationen in Userform laden und überschreiben
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
Hallo liebe VBA-Experten,
ich habe eine Frage an euch und hoffe ihr könnt mir helfen.
Ich möchte mit einer UserForm meine bereits vorhandenen bzw. neu eingetragenen Informationen überschreiben.
Ich habe das Layout dazu mal gemacht, damit man sich das besser vorstellen kann.
CB1 soll alle Arbeitsblätter anzeigen. Wähle ich eines aus, sollen in CB2 alle bisher eingetragenen Kunden in dem jeweiligen Arbeitsblatt angezeigt werden (Es kommen aber noch neue Kunden dazu, daher muss die ComboBox automatisch aktualisiert werden). Wenn ich CB2 ausgewählt habe, sollen wiederum in CB3 die dazugehörigen Bauteilbezeichnungen angezeigt werden. Und letztendlich mit CB4 die RFQ-Nummer. Diese 4 Auswahlmöglichkeiten geben eine eindeutige Zeile in meiner Exceltabelle an.
Mal als Bsp:
CB1
Auswahlmöglichkeiten: NOV WS; Nov Integral;
Ich wähle aus: NOV WS
CB2
Auswahlmöglichkeiten: Daimler; Valeo
Ich wähle aus: Daimler
CB3
Auswahlmöglichkeiten: Absorber; BR 213 Boden
Ich wähle aus: Absorber
CB4
Auswahlmöglichkeiten: 8SMER1301; 8SMER1302
Ich wähle aus: 8SMER1301

Anschließend klicke ich auf einen Button: Informationen laden
damit werden alle Infos aus der Zeile endsprechend in die dafür vorgesehenen Text und Comboboxen eingetragen (auch die Stückzahlen im 2. Reiter). Nun kann ich die Infos beliebig ändern und mit einem 2. Button "überschreiben" in meine Tabelle an der entsprechenden Stelle ändern.

Sorry ist etwas länger geworden und evtl auch etwas zu umfangreich. Aber vllt könnt ihr mir ja trotzdem helfen!
Ich bedanke mich schon mal recht herzlich.

Gruß
Jan
Hallo Jan,

Deine Frage ist ohne Antwort als erledigt gekennzeichnet. Ist sie das oder brauchst Du noch Hilfe?
Guten Morgen Schauan,
zum Teil ist sie beantwortet. Ich hatte die Frage in mehrere Foren relativ zeitnah gestellt und wurde darauf aufmerksam gemacht, wie ungünstig das ist. Daher habe ich sie vorerst als erledigt gesetzt, dass sich keiner unnötige Mühen macht!

Mein Grundgerüst steht, leider gibt es noch einen kleinen Fehler:

Ich lade meine Werte aus den Zellen ja in meine Text- und ComboBoxen. Wenn die Zelle, die eine ComboBox füllen soll, leer ist, öffnet sich der Debugger. Wieso verstehe ich, aber lösen kann ich es nicht.

Ich habe es ganz simpel mit
Code:
.AddItem = ""

versucht. Das wäre aber wohl zu einfach gewesen...

Vllt hast du ja eine Hife für mich

Gruß
Jan
Hallo,

wie lautet die Fehlermeldung und welche Codezeile aus welcher Prozedur ist markiert?
Hallo Jan,

in Deiner Beispielmappe lädst Du nur im Code definierte Daten. Sowohl das Hinzufügen eines Leerstrings als auch des Inhalts einer leeren Zelle funktioniert. Du müsstest genau angeben, wann bzw. wo das passiert.
Hallo Jan,

ich gehe davon aus, dass der Fehler bei Klick auf "Informationen laden" auftaucht.

Diese Zeile:


Code:
ComboBox1.Text = suche.Offset(0, 3)


müsste dann gelb hinterlegt sein, wenn Du auf debuggen klickst.

Den Fehler kannst Du so abfangen, dass Du entweder in der Prozedur CommandButton1_Click

statt der obigen Zeile folgenden Zeilen einsetzt

Code:
   If suche.Offset(0, 3) = "" Then
       ComboBox1.ListIndex = -1
   Else
       ComboBox1.Value = suche.Offset(0, 3)
   End If


oder, wie Du es gemacht hast ein Leerstring mit addItem in die Combox1 hinzufügen dann aber die obige Zeile so schreiben:


ComboBox1.Value = suche.Offset(0, 3).Value
Hallo Jan,


vergiss oben geschriebenes.
Die Combobox scheint entgegenkommender zu sein als ich dachte.

Die Zeile:

ComboBox1.Value = suche.Offset(0, 3).Value 

reicht aus. Du brauchst mit addItem keinen Leer-String in die Combobox schreiben.
Das Value kannst Du eigentlich überall mit dranschreiben.

Hier sieht man mal, das auch ein default Wert besser mit dazu geschrieben werden sollte.
Hallo Atilla,

genau das war mein Problem. Und danke, du hast es gelöst! Klappt alles perfekt :19:

Gruß
Jan
Hallo zusammen,

zunächst ein mal habe ich die aufeinander aufbauenen ComboBoxen um "Kunden Teilenummer" erweitert. Dies war nötig, um eine 100% genaue auswahl zu finden.

Daraufhin ist mir ein weiteres Problem aufgefallen:

Zu jedem Kunden wird einer Bauteilbezeichnung, RFQ-Nummer und Kunden Teilenummer zugeordnet.
Einen Kunden, sowie eine Bauteilbezeichnung gibt es immer! Es gibt jedoch die Fälle, dass entweder:
-RFQ-Nummer und Kunden Teilenummer vorhanden sind,
-nur die Kunden Teilenummer vohanden ist,
-nur die FRQ-Nummer vorhanden ist.

Wenn, wie in meiner Bsp.-Datei, bei 2 Kunden (siehe NOV WS - Daimler - Absorber) keine Kunden Teilenummer vorhanden ist, kann das Programm nicht zwischen den UNTERSCHIEDLICHEN RFQ-Nummern unterscheiden. Zur Erklärung:
Fülle ich die UserForm wie folgt aus Werk/Schaumart = NOV WS; Kunde = Daimler; Bauteilbezeichnung = Absorber; RFQ-Nummer = 8SMER1301
dann wird die Falsche Zelle übertragen.
Obwohl die RFQ-Nummer eindeutig ist. Ich vermute, dass wenn die Kunden Teilenummer (also die letzte ComboBox in meiner Verkettung der insgesamt 5 ComboBoxen) nicht gefüllt ist, sucht er die letzte beschriebene Zeile (egal welcher Kunde, Bauteilbezeichnung etc. ausgewählt wurde), in der die Zelle D leer ist und überträgt sie!

Vllt versteht ihr mein Problem bzw. könnt es nachvollziehen, wenn ihr mit meiner UserForm die von mir oben beschriebenen Schritte nachgeht.

Danke und liebe Grüße
Jan
Hallo Jan,

wenn Du bei leerer Teilnummer nach der RFQ-Nummer suchen willst, musst Du das entsprechend programmieren.
Prinzip:
Wenn Teilenummer nicht leer, dann
suche nach teilenummer
sonst
suche nach rfq-nummer
ende wenn
Seiten: 1 2 3