Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Informationen in Userform laden und überschreiben
#1
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


Angehängte Dateien
.xlsm   Kapa_Button_Probe.xlsm (Größe: 74,26 KB / Downloads: 8)
Antworten Top
#2
Hallo Jan,

Deine Frage ist ohne Antwort als erledigt gekennzeichnet. Ist sie das oder brauchst Du noch Hilfe?
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#3
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


Angehängte Dateien
.xlsm   Versuch.xlsm (Größe: 102,73 KB / Downloads: 10)
Antworten Top
#4
Hallo,

wie lautet die Fehlermeldung und welche Codezeile aus welcher Prozedur ist markiert?
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#5
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.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#6
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
Gruß Atilla
Antworten Top
#7
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.
Gruß Atilla
[-] Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:
  • Jan-Lan95
Antworten Top
#8
Hallo Atilla,

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

Gruß
Jan
Antworten Top
#9
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


Angehängte Dateien
.xlsm   Versuch.xlsm (Größe: 103,93 KB / Downloads: 7)
Antworten Top
#10
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
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste