Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1004to1008
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

Combobox füllen

Combobox füllen
27.08.2008 15:25:00
Uwe
Hallo
falls die Frage auftaucht: Im Archiv habe ich nichts gefunden oder meine Intelligenz reicht dazu nicht aus....
habe hier folgende Datei
https://www.herber.de/bbs/user/54961.xls
und auch schon bisschen Codes reingebastelt gehabt...(aber aus lauter Schmach, dass es nicht lief, wieder entfernt... :-) )
folgendes soll passieren:
cob_marke soll die Automarken ohne leere Zellen und Duplikate aus der Tabellen enthalten
cob_modell soll die Modelle finden, die zum Beispiel bei dem Begriff "Audi" verfügbar sind.
Anschliessend sollen entsprechend der Kilometerstand und das Baujahr automatisch in den Textboxen erscheinen und nach einem Klick auf erfassen, sollen die Infos ins Excelblatt in die Rot markierten Zellen geschrieben werden...
soweit so gut...hört sich einfach an, isses aber nich... denke ich
Vielen Dank

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

Betreff
Datum
Anwender
Anzeige
AW: Combobox füllen
27.08.2008 16:52:00
fcs
Hallo Uwe,
einfach ist relativ. Wenn man weiss wie, dann geht es meistens besser :-)
Ich hab die Cobobox für die Modellauswahl auf 3 Spalten eingestellt und in der Auswahlliste werden Baujahr und Kilometer mit angezeigt. So lassen sich die Daten im Userform besser verwalten und die Auswahl ist erleichtert.
https://www.herber.de/bbs/user/54967.xls
Gruß
Franz
AW: Combobox füllen
28.08.2008 07:08:00
Uwe
Guten Morgen Franz!
Du bist Spitze! genau die Vorlage habe ich gesucht.
Kannst du mir noch sagen, was das "Me" für eine Funktion hat? Das kenne ich nämlich noch gar nicht....
MfG Uwe
Anzeige
AW: Combobox füllen
28.08.2008 09:13:00
fcs
Hallo Uwe,
das "Me" ist der Platzhalter für das Objekt dem das Code-Modul zugeordnet.
Er kann in Prozeduren unter
- Tabellenblättern
- Userforms
- DieseArbeitsmappe
verwendet werden.
Er erleichtert die Code-Erstellung, da nach der Eingabe des Punktes hinter "Me" neben den zulässigen Methoden/Eigenschaften auch die in der Tabelle/dem Userform angelegten Steuerelemente in der Auswahlliste angeboten werden.
Gruß
Franz
AW: Combobox füllen
28.08.2008 09:21:00
Uwe
aha...also etwas für schreibfaule ;-)
ich habe deinen Code jetzt soweit umgearbeitet. Habe aber folgende Annahme getroffen:
in deinem Code lautet es doch zum Bleistift:
Me.tb_kilometer= .List(.ListIndex, 2)
auf was bezieht sich dieses ListIndex? Sicherlich NICHT auf das Tabellenblatt, sondern eher auf die Comboboxauswahl im Vorhergehenden Fenster, stimmts?
Ich müsste aber, da ich nicht nur Werte, wie Baujahr und Kilometer, sondern auch: zulässige Gesamtgewichte (VA,HA,Ges), Radstand, Rahmenspur, Getriebe, Federnsystem usw. eintragen muss, fällt deine eigentlich gute Idee mit der Übersichtlichkeit leider der Unübersichtlichkeit halber ( ;-) ) weg.
Müsste den Code also so umarbeiten, dass er die Werte aus der Tabelle zieht....
Vielen Dank, vom Unfähigen...
Anzeige
AW: Combobox füllen
28.08.2008 12:26:26
fcs
Hallo Uwe,
ListIndex ist die Nummer des Ausgewählten Eintrags in der Auswahlliste, wobei die Zählung bei 0 beginnt.
Möglichkeit 1:
Du erhöhst unter Eigenschaften die Zahl der Spalten für die Combobox zut Modellauswahl so, dass du beim Aktualiseren der Auswahlliste alle gewünschten Daten einlesen kannst. Falls du diese Daten in der Auswahlliste nicht anzeigen willst, dann setzt du du ColumnWiths für diese Spalten auf 0Pt.
Möglichkeit 2:
Erhöhe die Zahl der Spalten für für Modell-Combobox um 1.
Beim Aktualisieren dieser Combobox liest du in diese Spalte die Zeilennummer ein, aus der die jeweiligen Daten eingelesen werden.
Für das Übertragen der Daten des ausgewählten Modells kannst du dann auf die Zeilennummer zurückgreifen, um die Daten in die "rote" Zeile zu übertragen.
Viel Erfolg beim Basteln
mfg
Franz
P.S. Warum hast du die Beispieldatei nicht gleich mit kompletten Beispieldaten hochgeladen. Dann wäre das Problem gleich mit erledigt gewesen.
Anzeige
AW: Combobox füllen
28.08.2008 13:10:00
Uwe
Hi Franz,
wenn du mir deine Mailadresse gibst, dann würde ich dir das gerne zukommen lassen...
um Spam zu vermeiden bitte in folgender Form:
xyz [at] provider [dot] de
Viele Grüße und vielen herzlichen Dank
AW: Combobox füllen
28.08.2008 15:00:00
fcs
Hallo Uwe,
du muss die nachfolgenden beiden Prozeduren anpassen.
Zusätzlich im VBA-Editor für die Combobox cob_modell unter Eigenschaften
ColumnCount von 3 auf 4 ändern
und
ColumnWidths ändern in: 120 Pt;30 Pt;40 Pt;0 Pt
In Prozedur "erfassen_Click" muss du ggf. weitere Zellen ergänzen, die du in die Auswahlzeile übertragen willst.
Gruß
Franz

Private Sub cob_marke_Change()
Dim Zeile As Long
'Auswahlliste für Modell mit Tabellendaten füllen
With Me.cob_modell
.Clear
For Zeile = 3 To ZeileRot - 2
If wks.Cells(Zeile, 1).Value = Me.cob_marke Then
.AddItem wks.Cells(Zeile, 2).Value 'Modell
.List(.ListCount - 1, 1) = wks.Cells(Zeile, 3).Value 'Baujahr
.List(.ListCount - 1, 2) = wks.Cells(Zeile, 4).Value 'Kilometer
.List(.ListCount - 1, 3) = Zeile
End If
Next
'Textfelddaten löschen
Me.tb_baujahr = ""
Me.tb_kilometer = ""
End With
End Sub
Private Sub erfassen_Click()
'Daten in Tabelle schreiben
Dim lngZeile As Long
With Me.cob_modell
If .ListIndex = -1 Then
MsgBox "Es wurde noch kein Modell gewählt!"
Else
lngZeile = CDbl(.List(.ListIndex, 3))
With wks
.Cells(ZeileRot, 1) = .Cells(lngZeile, 1)
.Cells(ZeileRot, 2) = .Cells(lngZeile, 2)
.Cells(ZeileRot, 3) = .Cells(lngZeile, 3)
.Cells(ZeileRot, 4) = .Cells(lngZeile, 4)
.Cells(ZeileRot, 5) = .Cells(lngZeile, 5)
.Cells(ZeileRot, 6) = .Cells(lngZeile, 6)
.Cells(ZeileRot, 7) = .Cells(lngZeile, 7)
End With
Unload Me
End If
End With
End Sub


Anzeige
AW: Combobox füllen
28.08.2008 15:18:21
Uwe
Hi Franz. ich habe die Wurzel allen übels dann doch mal hochgeladen.
Nach Eingabe des gewünschten Produktes und des Fahrgestell, sollen sich die entsprechenden Textboxen automatisch füllen, soweit ein Wert vorhanden ist. Wie du sicherlich erkennst, ist das Sheet "Kalender" die Quelltabelle. dies bitte auch so beibehalten, da die Leute, die das Makro dann pflegen, wahrscheinlich keine Ahnung von VBA haben werden, so dass ich die Möglichkeit schaffen wollte, die Dateien in Excel zu pflegen...
Ich hab mal probiert deinen Code umzubasteln, aber vielleicht wäre es doch besser gewesen, gleich das ganze File upzuloaden...sorry, für das mangelnde Vertrauen....
Bei mir direkt bestand nun das Problem Möglichkeit, dass ich zwar das Produkt auswählen konnte und - juhuuu - auch das zugehörige Fahrgestell, aber der Radstand zum Bleistift ja zwischen Produkt und Fahrgestell auftaucht...wie bekomm ich den trotzdem ins Formular...
Daten SOLL werden von der Verwaltung ausgefüllt und Daten IST, beim Wareneingang.
Ausserdem besteht das Problem, dass Fahrzeuge, die eingenommen werden, zum Teil noch nicht zugeordnet werden können, also nur IST ausgefüllt wird und dann später - wenn es zugeordnet werden kann, mit dem SOLL verglichen wird. (Die Vergleichsoptionen zwischen Soll und Ist siehste ja...)
Haste nen Geistesblitz...?
Achso: 'Kommentare erwünscht....
Vielen Dank für deine Mühe
Anzeige
AW: Combobox füllen
28.08.2008 15:21:00
Uwe
sorry...datei zu groß!
bitte kurze mail an:
u dot laugwitz [ät] gmx dot de
senden, damit ich die Datei zuschicken kann... Danke
AW: Combobox füllen
28.08.2008 16:40:00
fcs
Hallo Uwe,
hab z. Zt. nur einen Firmen-Account für e-mail. Sa möchte ich die e-mail nicht drüber laufen lassen.
Du kannst die Excel-Datei aber hier auch als ZIP-File kleiner 300 KB hochladen.
Wenn du weitere Textboxen nach der Modell-Auswahl mit Daten füllen willst, dann muss du ähnlich vorgehen, wie in der neuen Erfassen-Prozedur und die cbo_modell_Change Prozedur entsprechend anpassen.
Beispiel:

Private Sub cob_modell_Change()
'Daten zum gewählten Modell in Textboxen schreiben
Dim lngZeile As Long
With Me.cob_modell
If .ListIndex = -1 Then Exit Sub
lngZeile = CDbl(.List(.ListIndex, 3))
End With
With wks
Me.tb_baujahr = .Cells(lngZeile, 3)
Me.tb_kilometer = .Cells(lngZeile, 4)
Me.tb_Achsabstand = .Cells(lngZeile, 6)
Me.tb_FahrGestNr = .Cells(lngZeile, 8)
'usw.
End With
End Sub


Gruß
Franz

Anzeige
AW: Combobox füllen
29.08.2008 08:46:58
Uwe
Hi
https://www.herber.de/bbs/user/55013.zip
so, hab den Speicherfresser gefunden...jetzt gehts...
schaus dir mal bitte an...das Tabellenblatt Katalog wird momentan durch einen Mitarbeiter noch ausgefüllt...ist also bei weitem noch nicht vollständig...
wenn fragen sind, bitte melden!
AW: Combobox füllen
29.08.2008 19:27:00
fcs
Hallo Uwe,
ich hab jetzt mal den Code so angepasst, dass die Daten beim Öffnen des Formulars aus dem Blatt system ausgelesen werden. Das war bisher auch schon so.
So kann man ggf. das Forular nochmals für Daten Korrekturen/Ergänzungen öffnen.
Wenn ein Produkt ausgewählt wird, dann werden die Formulardaten zurückgesetzt. Hier muss du noch den Code Teil für die Solldaten ergänzen.
Wird anschließend ein Fahrgestell gewählt, dann werden die Daten aus dem Katalog-Blatt ins Formular geladen.
Ich hab einige Prozeduren in Sub-Prozeduren ausgelagert. Dadurch wird der Code insgesamt etwas übersichtlicher/pflegeleichter.
In der Initialisierungsprozedur werden die Tabellenblätter "Katalog" und "system" den als Private deklarierten Objektvariablen wksKatalog und wksSystem zugewiesen. So kann im gesamten Code auf Daten (Zellen) in diesen Blättern durch Verwendung der beiden Variablen zugegriffen werden.
Im Code muss du die Spaltennummern von Katalogdaten noch anpassen, da noch nicht für alle Formularfelder Spalten angelegt sind. Ich hab hier provisorisch Spaltennummer größer 100 verwendet und ? in Bemerkungen eingefügt.
Bevor du anfängst den Code endgültig zu bearbeiten solltest du die Spalten im Blatt Katalog mit deinen Kollegen endgültig festlegen. Zumindest sollten zusätzliche Informationen immer nur in der nächsten rechten Spalte ergänzt werden, damit du nicht forlaufend die Spaltennummern im Code anpassen muss.
https://www.herber.de/bbs/user/55035.xls
Gruß
Franz
Anzeige
Kleiner Fehler drin...
08.09.2008 09:31:00
Uwe
Hallo Nochmal!
Vielen Vielen Herzlichen Dank für deine Arbeit, Franz.
Leider funktioniert die Auswahl nicht. Egal ob ich nun das Erste oder das letzte mögliche Fahrzeug eines Produktes in der Liste auswähle, es werden immer nur Werte aus der ersten Zeile übernommen. Also nur die Werte für das erste Fahrzeug eines Types.
Habe schon geschaut, aber bin zu keinem Entschluss gekommen...denke sicherlich nur kleiner dreher drin...sonst passt alles Prima...
Vielen Dank nochmal
Mfg Uwe

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige