Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CheckBox
BildScreenshot zu CheckBox CheckBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Label
BildScreenshot zu Label Label-Seite mit Beispielarbeitsmappe aufrufen

UserForm ComboBox



Excel-Version: 9.0 (Office 2000)

Betrifft: UserForm ComboBox
von: Daniele
Geschrieben am: 02.06.2002 - 19:02:42

Hallo liebe Leute

habe ein besonderes Problem mit ComobBox in UserForm:
Folgendes Makro (irgendwo in diesem Forum gefunden), gibt in der ComboBox-"Auswahl" die zweite Spalte wieder

Private Sub UserForm_Initialize()
ComboBox3.List = Range("L_list").CurrentRegion.Value
End Sub

Private Sub ComboBox3_Change()
If ComboBox3.ListIndex > -1 Then
ComboBox3.Value = ComboBox3.List(ComboBox3.ListIndex, 1)
End If
End Sub

nun möchte ich aber den Wert der ersten Spalte in einer Zelle schreiben damit ich mit diesem Wert weiterverfahren kann. Im ComboBox der UserForm gibt es auch kein "LinkedCell" wie sonst.

Hat jemand eine Idee? Das Problem ist eben dass für den User der Wert in der ersten Spalte bedeutungslos ist, jedoch für den Ablauf sehr wichtig .

Danke
Grüsse, Daniele

  

Re: UserForm ComboBox
von: Ramses
Geschrieben am: 02.06.2002 - 20:27:00

Hallo Daniele,

Ich weiss nicht was die Anweisung in dem Change-Ereignis erreichen soll, aber du müsstest das wechseln gegen:

Private Sub ComboBox3_Change()
If ComboBox3.ListIndex > -1 Then
'In B1 wird dein Wert aus der Combobox geschrieben
Range("B1").Value = Me.ComboBox3.Value
End If
End Sub


Code eingefügt mit Syntaxhighlighter 1.12


Gruss Rainer

  

Re: UserForm ComboBox
von: L.Vira
Geschrieben am: 02.06.2002 - 20:29:03

Es gibt aber ControlSouce, das entspricht LinkedCell.

  

Re: UserForm ComboBox
von: Daniele
Geschrieben am: 02.06.2002 - 20:52:18

Hallo L.Vira

Danke für den Tipp, allerdings nützt mit das nicht weil es den Wert der 2. Spalte (wie korrekterweise die Auswahl anzeigt) in der Zelle wiedergibt. ich möche jedoch den Wert der 1. Spalte in die Zelle schreiben, aber der Wert der 2. Spalte in der ComboBox-Auswahl erscheinen lassen.

Gruss, Daniele


  

Re: UserForm ComboBox
von: Daniele
Geschrieben am: 02.06.2002 - 21:07:54

Hallo Ramses

Danke dir für die Unterstützung
Die Anweisung soll erreichen (und macht es auch) dass bei der Auswahl eines ComboBox Dropdowns (ColumnCount=3, wobei die erste Column durch ColumnWidth unsichtbar bleibt) den Eintrag der zweite Spalte angezeigt wird.
wenn ich es ändere wie du vorgeschlagen hast, dann zeigt es mir wieder die 1. Spalte an.
Ich möchte aber dass:
a) in der ComboBox (wenn augewählt), der Wert der 2. Spalte und
b) in eine Zelle der Wert der 1. Spalte erscheint

Der Wert der 2. Spalte ist eben nicht eindeutig, so dass ich eine "ID"-Nummer in der 1. Spalte gesetzt habe

Gruss, Daniele

  

Re: UserForm ComboBox
von: Ramses
Geschrieben am: 02.06.2002 - 21:14:35

Hallo Daniele,

dann schreib folgendes:

Private Sub ComboBox3_Change()
If ComboBox3.ListIndex > -1 Then
'In B1 wird dein Wert aus der Combobox geschrieben
'Die Zählung der spalten beginnt bei 0
'die sichtbare Spalte ist demzufolge 1
Range("B1").Value = Me.ComboBox3.Column(0)
End If
End Sub


Code eingefügt mit Syntaxhighlighter 1.12

Gruss Rainer

  

Re: UserForm ComboBox
von: Daniele
Geschrieben am: 02.06.2002 - 21:47:04

Hi Ramses

Laufzeitfehler 381: Eigenschaft Column konnte nicht abgerufen werden. Index des Eigenschaftenfeldes ungültig.

ausserdem ist Eintrag:
ComboBox3.Value = ComboBox3.List(ComboBox3.ListIndex, 1)
erforderlich damit in der Auswahl die 2. Spalte angezeigt wird.

daniele

  

Ist das eine Combox in einer Tabelle oder ...
von: Ramses
Geschrieben am: 02.06.2002 - 21:56:05

Hallo,

in einer Userform ?
Wenn sie in einer Userform ist, dann ist die Colums-Eigenschaft nicht gesetzt.
Da ist dein Verfahren ganz einfach etwas komplizierter als meines.
In den Eigenschaften der ComboBox kannst du "ColumnsCount" einstellen. Stelle hier auf 2 dann hast du zwei Spalten zur Verfügung.
Unter "ColumnsWidth" stellst du "0;30" ein. Damit wird die erste Spalte ausgeblendet und nur die zweite Spalte in einer Breite von 30 Pic's angezeigt
Unter "ColumnsBound" stellst du "1" ein, dann wird dir zwar der Inhalt der zweiten Spalte angezeigt nach der Auswahl, aber der Rückgabewert der in der Box steht wird aus der Spalte 1 genommen. Also dein eindeutiger Wert.

Der Code ist getestet und funktioniert.

Gruss Rainer


  

Re: Ist das eine Combox in einer Tabelle oder ...
von: Daniele
Geschrieben am: 02.06.2002 - 22:27:20

Hi Ramses
du bist ein Assess :)
so klappt es.

Danke. Daniele

  

Re: UserForm ComboBox
von: L.Vira
Geschrieben am: 03.06.2002 - 09:23:51

schau dir mal Textcolumn und Boundcolumn an.

 

Beiträge aus den Excel-Beispielen zum Thema "UserForm ComboBox"