Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
340to344
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
340to344
340to344
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Dreispaltige Kombobox in UF

Dreispaltige Kombobox in UF
24.11.2003 09:00:12
Franz W.
Guten Morgen Forum,

ich bin ein Neuling mit UF und Combos, darum hab ich da so meine Schwierigkeiten.

- Ich habe eine dreispaltige Kombobox "cmbStrasse", die im Eigenschaftenfenster per RowSource gefüllt wird mit dem Namen eines dreispaltigen Bereiches. Die drei Spalten: Strasse - PLZ - Ort

- dann habe ich noch zwei weitere Textfelder "txtPLZ" für die PLZ und "txtOrt" für den Ort.

- Wenn in cmbStrasse ein Wert schon vorhanden ist, übergebe ich die jeweils dazugehörigen Werte an die anderen beiden Textfelder bisher mit folgendem Code:


Private Sub cmbStrasse_Change()
Set KdRng = Worksheets("help").Range("Adressen")
With Application.WorksheetFunction
Liste enthalten ist, dann ist der ListIndex > -1
If cmbStrasse <> "" And cmbStrasse.ListIndex > -1 Then
txtPLZ = Format(.VLookup(cmbStrasse, KdRng, 2, False), "00000")
txtOrt = .VLookup(cmbStrasse, KdRng, 3, False)
Else
txtPLZ = ""
txtOrt = ""
End If
End With
End Sub


Nun ist mir aber gesagt worden, dass der Umweg über "VLookup" viel zu umständlich ist, nachdem die Daten ohnehin schon mir RowSource eingelesen sind.

Wie kann ich denn die Daten einfacher direkt an die beiden Textfelder übergeben?

Vielen Dank schon mal für Eure Hilfe und Grüße
Franz

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dreispaltige Kombobox in UF
24.11.2003 09:33:45
Nepumuk
Hallo Franz,
ich habe dir mal ein kleines Beispiel gemacht. Das funktioniert allerdings nicht mit RowSource, da du mit der Methode die PLZ und den Ort nicht aus der Combobox bekommst. Die Style-Eigenschaft der Combobox ist auf 2 gestellt, so das nur vorhandene Einträge ausgewählt werden können. https://www.herber.de/bbs/user/2126.xls
Gruß
Nepumuk
AW: Dreispaltige Kombobox in UF
24.11.2003 09:41:46
Franz W.
Guten Morgen Nepumuk,

vielen Dank, ich mach mich mal drüber, melde mich dann wieder.

Beste Grüße bis dahin
Franz
Eine Frage noch...
24.11.2003 11:25:10
Franz W.
Hallo Nepumuk,

hab Deins jetzt bei mir eingearbeitet - und es klappt bestens!! Brauche es so, dass auch neue Einträge geschrieben werden können und hab darum Style wieder auf 0 gesetzt und den Code angepasst:


Private Sub UserForm_Activate()
Dim varArray As Variant
varArray = Range("Adressen")
cmbStrasse.List = varArray
End Sub



Private Sub cmbStrasse_Change()
If Not bolaendern And cmbStrasse.ListIndex > -1 Then
txtPLZ = cmbStrasse.List(cmbStrasse.ListIndex, 1)
txtOrt = cmbStrasse.List(cmbStrasse.ListIndex, 2)
Else
txtPLZ = ""
txtOrt = ""
End If
bolaendern = False
End Sub


Was ich allerdings noch gar nicht verstehe, ist Dein folgender Code:


Private Sub cmbStrasse_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 8 Or KeyCode = 46 Then bolaendern = True
End Sub


Was macht dieser Code? Für welche Tasten stehen KeyCode = 8 bzw. 46 (wo kann ich eine komplette KeyCode-Liste finden? In der Hilfe hab ich's nicht gefunden).

Vielleicht kannst Du mir bitte diese Fragen noch beantworten.

Vielen Dank und Grüße
Franz
Anzeige
AW: Eine Frage noch...
24.11.2003 11:34:04
Nepumuk
Hallo Franz,
ich lass mir die einfach über eine Msgbox ausgeben. 8 steht für Backspace und 46 für Entf. Der Code verhindert, dass die Combobox auf diese Tasten reagiert dann steht nämlich der Listindex auf -1 und es würde bei holen der Daten aus der List - Eigenschaft ein Fehler verursacht.
Gruß
Nepumuk
AW: Eine Frage noch...
24.11.2003 11:42:20
Franz W
Hallo Nepumuk,

kann das sein, dass bei meiner Einstellung mit "Style = 0" dieser von Dir beschriebene Fehler (wie würde der aussehen) auch ohne diesen Code NICHT auftritt. Bei meinen Versuchen hat es bisher nämlich noch keinen Fehler gegeben!?! Oder habe ich noch nicht alles mögliche durchgespielt?!?

Grüße
Franz
Anzeige
AW: Eine Frage noch...
24.11.2003 12:08:46
Nepumuk
Hallo Franz,
kommentiere diese drei Zeilen mal aus, wähle eine Straße aus und drücke auch Backspace. Da kommt bei mir sofort der Fehler: Laufzeitfehler 381


Private Sub ComboBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 8 Or KeyCode = 46 Then bolaendern = True
End Sub


Gruß
Nepumuk
AW: Eine Frage noch...
24.11.2003 12:45:46
Franz W.
Hallo Nepumuk,

hab das jetzt noch mal mit Deiner Originaldatei, die Du mir geschickt hast, durchgespielt.

Schritt für Schritt:

1. Ich kommentiere die drei KeyDown-Zeilen aus (Style = 2): gar kein Effekt, er reagiert nicht auf Rück- oder Entf-Taste

2. Lasse die Zeilen auskommentiert, ändere Style = 0 : Laufzeitfehler 381 wie bei Dir

3. Aber wegen meiner Änderung von Style auf 0 (weil ich eben auch Einträge zulassen will, die nicht in der Liste stehen), hab ich ja auch die Abfrage (If Not bolaendern Then) geändert in:
" If ComboBox1.ListIndex <> -1 Then ". Und damit gibt es keinen Fehler mehr.
Hab auch noch ein "Else" mit rein, damit die beiden Textboxen entsprechend reagieren.

Der gesamte Code jetzt:


Private Sub ComboBox1_Change()
If ComboBox1.ListIndex <> -1 Then
TextBox1 = ComboBox1.List(ComboBox1.ListIndex, 1)
TextBox2 = ComboBox1.List(ComboBox1.ListIndex, 2)
Else
TextBox1 = ""
TextBox2 = ""
End If
End Sub


Und jetzt ist es so flexibel, wie ich es haben möchte.

Wie beurteilst Du das jetzt? Glaubst Du, das ist sicher so und man kann es lassen???

Grüße
Franz
Anzeige
AW: Eine Frage noch...
24.11.2003 13:34:18
Nepumuk
Hallo Franz,
ich hätte es auch nicht anders gemacht.
Glückwunsch
Nepumuk
Jetzt werd ich aber rot...!!
24.11.2003 14:06:20
Franz W.
Hallo Nepumuk,

vielen Dank für die Blumen! Freut mich natürlich sehr, so ein Kompliment zu bekommen. Aber trotzdem ganz vielen Dank für Deine Vorlage, ohne die hätt ich das nie hingekriegt.

Besten Dank und Grüße
Franz

P.S.: Bin gleich mit einer neuen Frage zu Combos wieder im Forum ;-)))), versuch schon ne Weile, kriegs aber nicht hin. Vielleicht bis gleich ... :-))

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige