Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1396to1400
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
Userform und abhängige Comboboxen füllren
21.12.2014 08:26:27
Thomas
Hallo
ich bin heute das erste mal hier im Forum und hoffe auf Hilfe da ich nach stundenlanger Suche nicht weitergekommen bin und mir die Zeit davonläuft.
Ich habe im Tabellenblatt "Vorgabedaten" eine Userform mit der Combobox1, Combobox2,Combobox3. Im Tabellenblatt "Stammdaten Reinigung" in der Spalte "A" die Abfüllanlagen PET 1, PET 2, PET 3, PET 4, Sorten hinterlegt wobei jeder Text mehrfach vorkommen kann.
In der Spalte "B" finden sich dann die zur Anlage gehörenden Reinigungsabläufe und in der Spalte "C" die zur Spalte "B" gehörenden Vorgabezeiten. Auch der Spalte C kann es doppelte Texte geben, aber zur Abfüllanlage immer nur 1x. In der Spalte C gilt das Gleich
ich möchte nun die Combobox1 mit den Anlagennamen füllen, aber so dass jede nur 1x auswählbar ist.
In Combobox2 solln alle Texte der Spalte "B" welche in der Spalte "A" den Eintrag der Combobox1 haben auswählar sein. in der Combobox 3 sollten automatisch die zur Spalte B gehörenden Vorgabezeiten eingetragen werden.
https://www.herber.de/bbs/user/94530.xlsm
Herzlichen DANK
thomas

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Userform und abhängige Comboboxen füllren
21.12.2014 10:40:55
Christian
hallo Thomas,
in Tabelle "Stammdaten Reinigung" würde ich die Daten für PET1, PET2, etc. nicht nebeneinander sondern untereinander schreiben, denn prinzipiell gehören Daten gleicher Struktur in gleiche Felder.
Die Anlagennamen hast du ja schon in cboAnlagenname übernommen. Mit ComboBox1 läuft das genauso.
Dann im Change_Ereignis von ComboBox1 Spalte A durchlaufen und wenn hier der Eintrag aus ComboBox1 steht, den Eintrag aus Spalte B in die Liste von ComboBox2 aufnehmen.
Schau dir hierzu mal die AddItem-Methode der ComboBox an.
Eleganter und bei großen Datenmengen schneller wäre es, die Werte zuvor in ein Array (respektive ein Dictionary) zu schreiben und dieses per List-Methode an die ComboBox zu ergeben. "List" kennst du ja schon von ComboBox1
ComboBox3 würde ich nicht als ComboBox ausführen, sondern als (gesperrtes) Textfeld. Hier gibt es ja zur getroffenen Auswahl dann immer nur einen Wert.
Gruß
Christian

Anzeige
AW: Userform und abhängige Comboboxen füllren
21.12.2014 13:14:41
Hajo_Zi
Combobox1 konnte ich ja noch finden, obwohl Sie nicht den Namen "Combobo1 hat. die weiteren Konnte ich nicht finden. Das wolltest Du bestimmt selber lösen. Ich speichere keine Datei von Herber, darum keine weitere Lösung.
Private Sub UserForm_Activate()
With Worksheets("Stammdaten Reinigung")
Dim LoLetzte As Long
Dim LoI As Long
LoLetzte = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(xlUp).Row, . _
Rows.Count)
For LoI = 2 To LoLetzte
If .Cells(LoI, 1)  "" Then
If WorksheetFunction.CountIf(.Range("a1:a" & LoI), .Cells(LoI, 1)) = 1 Then
cboAnlagenname.AddItem .Cells(LoI, 1)
End If
End If
Next LoI
End With
End Sub
'dieser Bereich übernimmt automatisch Werte in das Formular, z. B Datum und Combo Boxen  _
Auswahlen
Private Sub UserForm_Initialize()
Dim rngKategorien As Range
With Me
.txtDatum.Value = Date
.txtArtikeltext.Text = Worksheets("Vorgabedaten").Range("F10").Value
.txtGebinde.Text = Worksheets("Vorgabedaten").Range("G10").Value
.txtAuftragsnummer.Text = Worksheets("Vorgabedaten").Range("H10").Value
'.cboAnlagenname.Text = Worksheets("Vorgabedaten").Range("K4").Value
.txtMaterialnummer.Text = Worksheets("Vorgabedaten").Range("I10").Value
.txtKalenderwoche.Text = dt_Kalenderwoche(Date)
.txtoffeneMenge.Text = Worksheets("Vorgabedaten").Range("M6").Value
.txtPlanmenge.Text = Worksheets("Vorgabedaten").Range("S4").Value
.txtMonat.Text = Format(Date, "MM")
.txtProduktMHD.Text = Worksheets("Vorgabedaten").Range("X2").Value
.cboSchichtfuehrer.List = Range("Schichtführer").Value
.cboSchicht.List = Range("Schichtnummer").Value
.cboAnzahlMA.List = Range("AnzahlMA").Value
.cboReinigung.List = Range("Reinigungen").Value
.cboOrgStillstand.List = Range("organisatorische_geplante_Stillstände").Value
.cboUrsacheInfrastruktur.List = Range("Infrastruktur_Ursache").Value
.cboUrsacheOrganisation.List = Range("organisatoirsche_ungepl_Stillstände").Value
.cboAnlagenteil.List = Range("anlagenteil").Value
.cboPreform.List = Range("Preformfehler").Value
'.cboAnlagenname.List = Range("Anlagenname").Value
.cboArtUmstellung.List = Range("ArtUmstellung").Value
.cboRepAbgeschlossen.List = Range("EntscheidungJA_Nein").Value
End With
End Sub


Anzeige
Toll
21.12.2014 14:13:10
Christian
hallo Hajozi
was versprichst du dir davon, die ComboBox "cboAnlagenname" jetzt per AddItem zu füllen, wo sie zuvor schon beim Initialize-Ereignis per List gefüllt wurde ?
Wahrscheinlich nur einen weiteren Beitrag ...
Schöne Feiertage
Gruß
Christian

AW: Toll
21.12.2014 14:17:43
Hajo_Zi
Du solltest schon den gesamten Code beachten.
Das wolltest Du aber nicht um einen Beitrag zu schreiben.
Ich lege darauf keinen Wert.
Gruß Hajo

zu Hajozi kein weiterer Kommentar (owT)
21.12.2014 14:37:45
Christian
Schöne Feiertage
Gruß
Christian

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige