Discussion:
COMBOBOX, beide Spalten auswählen
(zu alt für eine Antwort)
Michael Huy
2005-01-01 21:45:10 UTC
Permalink
Hallo zusammen!

Habe auf einer Userform eine ComboBox ,die an meine Datenquelle gebunden ist.
Die Combo zeigt 2 Spalten: Name und Vorname an. Beim Anklicken erhalte ich
aber nur die 1. Spalte (Name) in der Box. Gibt es die Möglichkeit auch den
Vornamen mit zu erhalten?

Danke für eure Hilfe
Michael
Melanie Breden
2005-01-01 21:53:25 UTC
Permalink
Hallo Michael,
Post by Michael Huy
Habe auf einer Userform eine ComboBox ,die an meine Datenquelle gebunden ist.
Die Combo zeigt 2 Spalten: Name und Vorname an. Beim Anklicken erhalte ich
aber nur die 1. Spalte (Name) in der Box. Gibt es die Möglichkeit auch den
Vornamen mit zu erhalten?
versuchs mal so:

Private Sub ComboBox1_Change()
Dim strVorname As String
Dim strNachname As String

With ComboBox1
strNachname = .List(.ListIndex, 0)
strVorname = .List(.ListIndex, 1)
End With
MsgBox strVorname & " " & strNachname
End Sub
--
Mit freundlichen Grüssen

Melanie Breden
- Microsoft MVP für Excel -

http://excel.codebooks.de (Das Excel-VBA Codebook)
#Excel-Auftragsprogrammierung#
Melanie Breden
2005-01-01 22:00:23 UTC
Permalink
Hallo Michael,
Post by Michael Huy
Habe auf einer Userform eine ComboBox ,die an meine Datenquelle gebunden ist.
Die Combo zeigt 2 Spalten: Name und Vorname an. Beim Anklicken erhalte ich
aber nur die 1. Spalte (Name) in der Box. Gibt es die Möglichkeit auch den
Vornamen mit zu erhalten?
ich glaube, ich habe deine Frage eben falsch interpretiert :-(

Mit der ComboBox kannst du nur die erste Spalte anzeigen.
Lediglich im DropDown werden die Werte aller Spalten angezeigt.

Schau dir mal die ListBox an, damit geht es.
--
Mit freundlichen Grüssen

Melanie Breden
- Microsoft MVP für Excel -

http://excel.codebooks.de (Das Excel-VBA Codebook)
#Excel-Auftragsprogrammierung#
Michael Huy
2005-01-01 22:15:02 UTC
Permalink
Post by Melanie Breden
Hallo Michael,
Post by Michael Huy
Habe auf einer Userform eine ComboBox ,die an meine Datenquelle gebunden ist.
Die Combo zeigt 2 Spalten: Name und Vorname an. Beim Anklicken erhalte ich
aber nur die 1. Spalte (Name) in der Box. Gibt es die Möglichkeit auch den
Vornamen mit zu erhalten?
Private Sub ComboBox1_Change()
Dim strVorname As String
Dim strNachname As String
With ComboBox1
strNachname = .List(.ListIndex, 0)
strVorname = .List(.ListIndex, 1)
End With
MsgBox strVorname & " " & strNachname
End Sub
--
Mit freundlichen Grüssen
Melanie Breden
- Microsoft MVP für Excel -
http://excel.codebooks.de (Das Excel-VBA Codebook)
#Excel-Auftragsprogrammierung#
Hallo Melanie,
danke für schnelle Antwort, klappt fast, wollte nämlich Ausgabe in der
Combobox.
Habs umgebaut:

Dim strVorname As String
Dim strNachname As String

With ÄNDERUNGMA
strNachname = .List(.ListIndex, 0)
strVorname = .List(.ListIndex, 1)
End With
ÄNDERUNGMA.Value = strNachname & " " & strVorname

Folgende Fehlermeldung: Eigenschaft List konnte nicht abgerufen werden.Index
des Eigenschaftenfelds ungültig

mfg
Michael
Melanie Breden
2005-01-01 23:18:21 UTC
Permalink
Hallo Michael,
Post by Michael Huy
danke für schnelle Antwort, klappt fast, wollte nämlich Ausgabe in der
Combobox.
ÄNDERUNGMA.Value = strNachname & " " & strVorname
Folgende Fehlermeldung: Eigenschaft List konnte nicht abgerufen werden.Index
des Eigenschaftenfelds ungültig
die Fehlermeldung rührt daher, weil du die RowSource-Eigenschaft verwendest
und dort den Bereich Datenebreich vorgibst.
Dann kannst du keine manuellen Werte in der ComboBox definieren.

Fülle die ComboBox im Initialize-Ereignis und schreibe den zusammen-
gesetzten Wert bei Änderungen im Click-Ereignis in die ComboBox:

Private Sub UserForm_Initialize()
Dim rngSpalte1 As Range
Dim rngSpalte2 As Range
Dim lngRow As Long

Set rngSpalte1 = Worksheets("Tabelle1").Range("A1:A5")
Set rngSpalte2 = Worksheets("Tabelle1").Range("B1:B5")

With ComboBox1
For lngRow = 1 To rngSpalte1.Rows.Count
.AddItem rngSpalte1(lngRow)
.List(lngRow - 1, 1) = rngSpalte2(lngRow)
Next lngRow
End With
End Sub


Private Sub ComboBox1_Click()
Dim strVorname As String
Dim strNachname As String

With ComboBox1
If .ListIndex > -1 Then
strNachname = .List(.ListIndex, 0)
strVorname = .List(.ListIndex, 1)
.Text = strNachname & " " & strVorname
End If
End With
End Sub
--
Mit freundlichen Grüssen

Melanie Breden
- Microsoft MVP für Excel -

http://excel.codebooks.de (Das Excel-VBA Codebook)
#Excel-Auftragsprogrammierung#
Michael Huy
2005-01-02 01:33:04 UTC
Permalink
Post by Melanie Breden
Hallo Michael,
Post by Michael Huy
danke für schnelle Antwort, klappt fast, wollte nämlich Ausgabe in der
Combobox.
ÄNDERUNGMA.Value = strNachname & " " & strVorname
Folgende Fehlermeldung: Eigenschaft List konnte nicht abgerufen werden.Index
des Eigenschaftenfelds ungültig
die Fehlermeldung rührt daher, weil du die RowSource-Eigenschaft verwendest
und dort den Bereich Datenebreich vorgibst.
Dann kannst du keine manuellen Werte in der ComboBox definieren.
Fülle die ComboBox im Initialize-Ereignis und schreibe den zusammen-
Private Sub UserForm_Initialize()
Dim rngSpalte1 As Range
Dim rngSpalte2 As Range
Dim lngRow As Long
Set rngSpalte1 = Worksheets("Tabelle1").Range("A1:A5")
Set rngSpalte2 = Worksheets("Tabelle1").Range("B1:B5")
With ComboBox1
For lngRow = 1 To rngSpalte1.Rows.Count
.AddItem rngSpalte1(lngRow)
.List(lngRow - 1, 1) = rngSpalte2(lngRow)
Next lngRow
End With
End Sub
Private Sub ComboBox1_Click()
Dim strVorname As String
Dim strNachname As String
With ComboBox1
If .ListIndex > -1 Then
strNachname = .List(.ListIndex, 0)
strVorname = .List(.ListIndex, 1)
.Text = strNachname & " " & strVorname
End If
End With
End Sub
--
Mit freundlichen Grüssen
Melanie Breden
- Microsoft MVP für Excel -
http://excel.codebooks.de (Das Excel-VBA Codebook)
#Excel-Auftragsprogrammierung#
Hallo Melanie,

die Lösung ist Spitze! Hatte in zwischen etwas gebastelt und deine erste
Lösung umgebaut!
ÄNDERUNGMA Change()
Dim strVorname As String
Dim strNachname As String

With ÄNDERUNGMA
strNachname = .List(.ListIndex, 0)
strVorname = .List(.ListIndex, 1)
End With
NAMEMIT.Text = strNachname
VORNAMEMIT.Text = strVorname

End Sub

Dann die ComboEigenschaft auf transparent gesetzt und in den Hintergrund,
Labelfeld Name und Vorname drübergelegt und darunter die beiden Textfelder
NAMEMA und VORNAMEMA. Funktioniert sogar!
Anfänger mit Phantasie!
Verwende natürlich deine elegante Lösung!

Vielen Dank
Michael
Michael Huy
2005-01-02 02:27:01 UTC
Permalink
Post by Melanie Breden
Post by Melanie Breden
Hallo Michael,
Post by Michael Huy
danke für schnelle Antwort, klappt fast, wollte nämlich Ausgabe in der
Combobox.
ÄNDERUNGMA.Value = strNachname & " " & strVorname
Folgende Fehlermeldung: Eigenschaft List konnte nicht abgerufen werden.Index
des Eigenschaftenfelds ungültig
die Fehlermeldung rührt daher, weil du die RowSource-Eigenschaft verwendest
und dort den Bereich Datenebreich vorgibst.
Dann kannst du keine manuellen Werte in der ComboBox definieren.
Fülle die ComboBox im Initialize-Ereignis und schreibe den zusammen-
Private Sub UserForm_Initialize()
Dim rngSpalte1 As Range
Dim rngSpalte2 As Range
Dim lngRow As Long
Set rngSpalte1 = Worksheets("Tabelle1").Range("A1:A5")
Set rngSpalte2 = Worksheets("Tabelle1").Range("B1:B5")
With ComboBox1
For lngRow = 1 To rngSpalte1.Rows.Count
.AddItem rngSpalte1(lngRow)
.List(lngRow - 1, 1) = rngSpalte2(lngRow)
Next lngRow
End With
End Sub
Private Sub ComboBox1_Click()
Dim strVorname As String
Dim strNachname As String
With ComboBox1
If .ListIndex > -1 Then
strNachname = .List(.ListIndex, 0)
strVorname = .List(.ListIndex, 1)
.Text = strNachname & " " & strVorname
End If
End With
End Sub
--
Mit freundlichen Grüssen
Melanie Breden
- Microsoft MVP für Excel -
http://excel.codebooks.de (Das Excel-VBA Codebook)
#Excel-Auftragsprogrammierung#
Hallo Melanie,
die Lösung ist Spitze! Hatte in zwischen etwas gebastelt und deine erste
Lösung umgebaut!
ÄNDERUNGMA Change()
Dim strVorname As String
Dim strNachname As String
With ÄNDERUNGMA
strNachname = .List(.ListIndex, 0)
strVorname = .List(.ListIndex, 1)
End With
NAMEMIT.Text = strNachname
VORNAMEMIT.Text = strVorname
End Sub
Dann die ComboEigenschaft auf transparent gesetzt und in den Hintergrund,
Labelfeld Name und Vorname drübergelegt und darunter die beiden Textfelder
NAMEMA und VORNAMEMA. Funktioniert sogar!
Anfänger mit Phantasie!
Verwende natürlich deine elegante Lösung!
Vielen Dank
Michael
Sorry, natürlich Textfelder NAMEMIT und VORNAMEMIT!
Melanie Breden
2005-01-02 10:01:29 UTC
Permalink
Hallo Michael Huy,

Michael Huy schrieb:

[Snipp Code]
Post by Michael Huy
Dann die ComboEigenschaft auf transparent gesetzt und in den Hintergrund,
Labelfeld Name und Vorname drübergelegt und darunter die beiden Textfelder
NAMEMA und VORNAMEMA. Funktioniert sogar!
Anfänger mit Phantasie!
ist auch eine machbare Lösung, wenn auch etwas umständlich ;-)
Post by Michael Huy
Verwende natürlich deine elegante Lösung!
Danke für die Rückmeldung dass sie funktioniert :-)
--
Mit freundlichen Grüssen

Melanie Breden
- Microsoft MVP für Excel -

http://excel.codebooks.de (Das Excel-VBA Codebook)
#Excel-Auftragsprogrammierung#
Loading...