Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
1840to1844
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
Dropdown in Userform variabel Füllen
21.07.2021 12:50:34
Daniel
Hallo Leute,
ich wollte einmal fragen ob man ein Dropdown variabel füllen kann.
z.b. Wenn ich in meiner Spalte 3 das Wort "Weiß" stehen habe würde ich gerne alle Nummern die Dazu gehören aus Spalte 1 Angezeigt bekommen. Wie in dem Beispielbild, dass er mir dann im Dropdown nur die 2 Relevanten "Weißen" Nummern anzeigt. Jede Nummer ist einzigartig und kann nicht doppelt belegt werden.
LG Daniel
Userbild

26
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dropdown in Userform variabel Füllen
21.07.2021 13:27:21
Oberschlumpf
Hi Daniel,
ja, es ist problemlos möglich, ein Dropdown (richtig = Datengültigkeitsliste!) so oft, unter allen möglichen Bedingungen, usw...zu befüllen, wie du nur möchtest.
Ciao
Thorsten
AW: Dropdown in Userform variabel Füllen
21.07.2021 14:29:40
Daniel
Hi Thorsten,
danke dir für deine Antwort.
hättest du auch einen Ansatz dafür?
LG
Daniel
AW: Dropdown in Userform variabel Füllen
21.07.2021 14:36:16
Nepumuk
Hallo Daniel,
lade bitte eine Mustermappe mit dem Userform und ein Paar Spieldaten hoch.
Gruß
Nepumuk
AW: Dropdown in Userform variabel Füllen
21.07.2021 14:57:13
Daniel
Hallo Nepumuk,
https://www.herber.de/bbs/user/147226.xlsm das ist die Datei zum Rumspielen.
Also in Dropdown "Rückfragen" sollten dann die Weißen Änderungen auftauchen.
Dann nach Möglichkeit auch die Spalten 1 und 2 z.b. anzeigen.
Wenn du möchtest kannst du auch einmal über den link schauen den ich mir programmiert habe. dort passt irgendwas nicht. ich wollte nur eine zahl austauschen in dem link das er immer "Aktuell" ist und in Spalte 21 Schreiben.
Danke für deine Hilfe!
LG
Daniel
Anzeige
AW: Dropdown in Userform variabel Füllen
21.07.2021 15:28:22
Nepumuk
Hallo Daniel,
die Combobox füllst du damit:

Private Sub UserForm_Initialize()
Dim objCell As Range
Dim strFirsAddress As String
With Box1
.AddItem "Grün"
.AddItem "Gelb"
.AddItem "Rot"
.AddItem "Weiß"
End With
Set mobjCollection = New Collection
With Worksheets("Tabelle1")
With .Columns(19)
For Each objCell In .Cells
If IsEmpty(objCell.Value) Then
TextBox1.Text = objCell.Offset(0, -18).Value
TextBox2.Text = objCell.Offset(0, -17).Value
TextBox3.Text = objCell.Offset(0, 1).Value
Box1.Text = objCell.Offset(0, 1).Value
mlngrow = objCell.Row
Call mobjCollection.Add(Item:=mlngrow)
Exit For
End If
Next
End With
Set objCell = .Columns(20).Find(What:="Weiß", After:=.Cells(.Rows.Count, 20), _
LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=True)
If Not objCell Is Nothing Then
strFirsAddress = objCell.Address
Do
ComboBox1.AddItem objCell.Offset(0, -19).Value
Set objCell = .Columns(20).FindNext(After:=objCell)
Loop Until objCell.Address = strFirsAddress
Set objCell = Nothing
End If
End With
End Sub
Ich weiß nicht was am Hyperlink nicht stimmt, aber grundsätzlich würde ich das so machen:

Sub CommandButton8_Click()
Dim zeile As Long
With Worksheets("Tabelle1")
For zeile = 2 To .Cells(.Rows.Count, 21).End(xlUp).Row
.Hyperlinks.Add Anchor:=.Cells(zeile, 21), _
Address:="https://nntwww.mn-man.biz/elanis/ela011?goodluck=1&searchMode=package&" & _
"userpooldepartment=user&keyword=" & .Cells(zeile, 1).Value & "&ff_flag1=%2A&date_operator=%3D&mrl_relevant=" & _
"all&module=all&state=all&sortField=timestamp&sortDirection=DESC&rowsPerPage=50&doSearchECP=suchen", _
ScreenTip:="Zeichnung in EZIS", _
TextToDisplay:=.Cells(zeile, 21).Value
Next
End With
End Sub
Gruß
Nepumuk
Anzeige
AW: Dropdown in Userform variabel Füllen
21.07.2021 15:36:10
Daniel
Hi Nepumuk,
Funktioniert, dass ich mir die anzeigen kann danke dir!
nur die infos aus der Zeile werden nicht angezeigt
also in der Beispiel datei ist ja z.b. in Textfeld 1 die Änderungsnummer
und Textfeld 2 die Beschreibung
WIe bekomme ich es denn hin, dass wenn ich die aus dem Dropdown auswähle das er auch in die Zeile springt?
LG
Daniel
AW: Dropdown in Userform variabel Füllen
21.07.2021 15:44:55
Nepumuk
Hallo Daniel,
teste mal:

Private Sub ComboBox1_Change()
With ComboBox1
TextBox1.Text = .List(.ListIndex, 0)
TextBox2.Text = .List(.ListIndex, 1)
End With
End Sub
Private Sub UserForm_Initialize()
Dim objCell As Range
Dim strFirsAddress As String
With Box1
.AddItem "Grün"
.AddItem "Gelb"
.AddItem "Rot"
.AddItem "Weiß"
End With
Set mobjCollection = New Collection
With Worksheets("Tabelle1")
With .Columns(19)
For Each objCell In .Cells
If IsEmpty(objCell.Value) Then
TextBox1.Text = objCell.Offset(0, -18).Value
TextBox2.Text = objCell.Offset(0, -17).Value
TextBox3.Text = objCell.Offset(0, 1).Value
Box1.Text = objCell.Offset(0, 1).Value
mlngrow = objCell.Row
Call mobjCollection.Add(Item:=mlngrow)
Exit For
End If
Next
End With
With ComboBox1
.ColumnCount = 2
.ColumnWidths = "80;0"
End With
Set objCell = .Columns(20).Find(What:="Weiß", After:=.Cells(.Rows.Count, 20), _
LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=True)
If Not objCell Is Nothing Then
strFirsAddress = objCell.Address
Do
With ComboBox1
.AddItem objCell.Offset(0, -19).Value
.List(.ListCount - 1, 1) = objCell.Offset(0, -18).Value
End With
Set objCell = .Columns(20).FindNext(After:=objCell)
Loop Until objCell.Address = strFirsAddress
Set objCell = Nothing
End If
End With
End Sub
Gruß
Nepumuk
Anzeige
AW: Dropdown in Userform variabel Füllen
21.07.2021 16:06:06
Daniel
Hallo Nepumuk!
Danke dir funktioniert!
was wäre wenn wenn ich textboxen hinzufüge
ich drucke mal dick was ich denke was ich verändern müsste:

Private Sub ComboBox1_Change()
With ComboBox1
TextBox1.Text = .List(.ListIndex, 0)
TextBox2.Text = .List(.ListIndex, 1)
TextBox3.Text = .List(.ListIndex, 2)
TextBox4.Text = .List(.ListIndex, 3)
End With
End Sub
Private Sub UserForm_Initialize()
Dim objCell As Range
Dim strFirsAddress As String
With Box1
.AddItem "Grün"
.AddItem "Gelb"
.AddItem "Rot"
.AddItem "Weiß"
End With
Set mobjCollection = New Collection
With Worksheets("Tabelle1")
With .Columns(19)
For Each objCell In .Cells
If IsEmpty(objCell.Value) Then
TextBox1.Text = objCell.Offset(0, -18).Value
TextBox2.Text = objCell.Offset(0, -17).Value
TextBox3.Text = objCell.Offset(0, 1).Value
TextBox4.Text = objCell.Offset(0, -16).Value
Box1.Text = objCell.Offset(0, 1).Value
mlngrow = objCell.Row
Call mobjCollection.Add(Item:=mlngrow)
Exit For
End If
Next
End With
With ComboBox1
.ColumnCount = 2
.ColumnWidths = "80;0"
End With
Set objCell = .Columns(20).Find(What:="Weiß", After:=.Cells(.Rows.Count, 20), _
LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=True)
If Not objCell Is Nothing Then
strFirsAddress = objCell.Address
Do
With ComboBox1
.AddItem objCell.Offset(0, -19).Value
.List(.ListCount - 1, 1) = objCell.Offset(0, -18).Value
.List(.ListCount -2, 1) = objCell.Offset(0, 1).Value
 .List(.ListCount - 2, 1) = objCell.Offset(0, -17).Value
End With
Set objCell = .Columns(20).FindNext(After:=objCell)
Loop Until objCell.Address = strFirsAddress
Set objCell = Nothing
End If
End With
End Sub
Passt das so?
LG
Daniel
Anzeige
AW: Dropdown in Userform variabel Füllen
21.07.2021 16:12:23
Nepumuk
Hallo Daniel,
dann musst du hier:

With ComboBox1
.ColumnCount = 2
.ColumnWidths = "80;0"
End With
die Anzahl der benutzten Spalten angeben und die Spaltenbreite auf 0 festlegen. Z.B. so: .ColumnWidths = "80;0:0:0" für 4 Spalten.
Gruß
Nepumuk
AW: Dropdown in Userform variabel Füllen
21.07.2021 16:16:27
Daniel
Hallo Nepumuk,
ich möchte ja alle 21 Spalten haben ist das dann 80 und dann 20 mal 0?
aber der rest der dick gedruckt ist stimmt? mit -2,1 etc? bzw einmal müsste es ja -2,1 und einmal -3,1 sein oder? um in der gleichen zeile zu bleiben?
AW: Dropdown in Userform variabel Füllen
21.07.2021 16:24:40
Nepumuk
Hallo Daniel,
1, Ja.
2. So:

.List(.ListCount - 1, 1) = objCell.Offset(0, -18).Value
.List(.ListCount - 1, 2) = objCell.Offset(0, 1).Value
.List(.ListCount - 1, 3) = ......
.List(.ListCount - 1, 4) = ......
Gruß
Nepumuk
Anzeige
AW: Dropdown in Userform variabel Füllen
21.07.2021 16:31:40
Daniel
Danke dir!
weiß nicht was ich ohne dich machen würde :D
Liebe Grüße
Daniel
AW: Dropdown in Userform variabel Füllen
22.07.2021 07:53:26
Daniel
Hallo Nepumuk,
Ich habe es jetzt so gemacht aber es funktioniert irgendwie nicht...

Private Sub ComboBox1_Change()
With ComboBox1
TextBox1.Text = .List(.ListIndex, 0)
TextBox2.Text = .List(.ListIndex, 1)
TextBox3.Text = .List(.ListIndex, 2)
TextBox15.Text = .List(.ListIndex, 3)
End With
End Sub
Private Sub UserForm_Initialize()
Dim objCell As Range
Dim strFirsAddress As String
With Box1
.AddItem "Grün"
.AddItem "Gelb"
.AddItem "Rot"
.AddItem "Weiß"
End With
Set mobjCollection = New Collection
With Worksheets("Tabelle16")
With .Columns(19)
For Each objCell In .Cells
If IsEmpty(objCell.Value) Then
TextBox1.Text = objCell.Offset(0, -18).Value
TextBox2.Text = objCell.Offset(0, -17).Value
TextBox3.Text = objCell.Offset(0, 1).Value
TextBox15.Text = objCell.Offset(0, -12).Value
Box1.Text = objCell.Offset(0, 1).Value
mlngrow = objCell.Row
Call mobjCollection.Add(Item:=mlngrow)
Exit For
End If
Next
End With
With ComboBox1
.ColumnCount = 21
.ColumnWidths = "80;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0"
End With
Set objCell = .Columns(20).Find(What:="Weiß", After:=.Cells(.Rows.Count, 20), _
LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=True)
If Not objCell Is Nothing Then
strFirsAddress = objCell.Address
Do
With ComboBox1
.AddItem objCell.Offset(0, -19).Value
.List(.ListCount - 1, 1) = objCell.Offset(0, -18).Value
.List(.ListCount - 1, 2) = objCell.Offset(0, 1).Value
.List(.ListCount - 1, 3) = objCell.Offset(0, -12).Value
End With
Set objCell = .Columns(20).FindNext(After:=objCell)
Loop Until objCell.Address = strFirsAddress
Set objCell = Nothing
End If
End With
End Sub
kannst du mir da noch einmal helfen?
LG
Daniel
Anzeige
AW: Dropdown in Userform variabel Füllen
22.07.2021 07:58:20
Nepumuk
Hallo Daniel,
kannst du "funktioniert irgendwie nicht..." etwas präziser formulieren?
Gruß
Nepumuk
AW: Dropdown in Userform variabel Füllen
22.07.2021 08:02:40
Daniel
Hallo Nepumuk,
also TextBox1 und 2 Werden angezeigt
TextBox3 und 15 werden nicht angezeigt wenn ich sie über das dropdown auswähle. sonst werden sie schon angezeigt.
LG
Daniel
AW: Dropdown in Userform variabel Füllen
22.07.2021 08:16:10
Nepumuk
Hallo Daniel,
kann ich nicht nachvollziehen. Hast du in Spalte H und U auch Daten?
Gruß
Nepumuk
AW: Dropdown in Userform variabel Füllen
22.07.2021 08:26:01
Daniel
Hallo Nepumuk ja genau habe ich :)
ich hab nur eine kurze beispieldatei gemacht, damit ich die dann einfach erweitern kann.
ich habe auch noch daten in Spalte 10, 11, 14, 15, 17
Anzeige
AW: Dropdown in Userform variabel Füllen
22.07.2021 08:41:14
Daniel
Hallo Nepumuk,
ich verstehe nichts mehr.
der code funktioniert so wie er soll.
aber sobald ich auf meine liste gehe funktioniert es eben nicht mehr... ich verstehe es nicht.
Darf ich dir mal meinen ganzen code hier rein schreiben?
LG
Daniel
AW: Dropdown in Userform variabel Füllen
22.07.2021 08:43:38
Nepumuk
Hallo Daniel,
den relevanten Code habe ich ja, aber klar, zeig mal deinen Code.
Gruß
Nepumuk
AW: Dropdown in Userform variabel Füllen
22.07.2021 08:47:31
Daniel
Ich verstehe nur nicht warum er mir das eben nicht anzeigt... in der beispieldatei ist es ja passend

Option Explicit
Private mlngrow As Long
Private mobjCollection As Collection
Private Sub Label16_Click()
End Sub
Private Sub ComboBox1_Change()
With ComboBox1
TextBox1.Text = .List(.ListIndex, 0)
TextBox2.Text = .List(.ListIndex, 1)
TextBox3.Text = .List(.ListIndex, 2)
TextBox15.Text = .List(.ListIndex, 3)
End With
End Sub
Private Sub UserForm_Initialize()
Dim objCell As Range
Dim strFirsAddress As String
With Box1
.AddItem "Grün"
.AddItem "Gelb"
.AddItem "Rot"
.AddItem "Weiß"
End With
Set mobjCollection = New Collection
With Worksheets("Tabelle16")
With .Columns(19)
For Each objCell In .Cells
If IsEmpty(objCell.Value) Then
TextBox1.Text = objCell.Offset(0, -18).Value
TextBox2.Text = objCell.Offset(0, -17).Value
TextBox3.Text = objCell.Offset(0, 1).Value
TextBox15.Text = objCell.Offset(0, -12).Value
Box1.Text = objCell.Offset(0, 1).Value
mlngrow = objCell.Row
Call mobjCollection.Add(Item:=mlngrow)
Exit For
End If
Next
End With
With ComboBox1
.ColumnCount = 21
.ColumnWidths = "80;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0"
End With
Set objCell = .Columns(20).Find(What:="Weiß", After:=.Cells(.Rows.Count, 20), _
LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=True)
If Not objCell Is Nothing Then
strFirsAddress = objCell.Address
Do
With ComboBox1
.AddItem objCell.Offset(0, -19).Value
.List(.ListCount - 1, 1) = objCell.Offset(0, -18).Value
.List(.ListCount - 1, 2) = objCell.Offset(0, 1).Value
.List(.ListCount - 1, 3) = objCell.Offset(0, -12).Value
End With
Set objCell = .Columns(20).FindNext(After:=objCell)
Loop Until objCell.Address = strFirsAddress
Set objCell = Nothing
End If
End With
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Set mobjCollection = Nothing
End Sub
'Weiter Button Nächste Relevante
Private Sub CommandButton1_Click()
Dim lngRow As Long
With Worksheets("Tabelle16")
.Cells(mlngrow, 19).Value = Now
.Cells(mlngrow, 20).Value = Bearbeiter.Box1
For lngRow = mlngrow + 1 To .Rows.Count
If IsEmpty(.Cells(lngRow, 19).Value) Then
TextBox1.Text = .Cells(lngRow, 1).Value
TextBox2.Text = .Cells(lngRow, 2).Value
TextBox3.Text = .Cells(lngRow, 20).Value
TextBox15.Text = .Cells(lngRow, 7).Value
mlngrow = lngRow
Call mobjCollection.Add(Item:=mlngrow)
Exit For
End If
Next
End With
End Sub
Private Sub CommandButton4_Click()
Dim lngIndex As Long
With mobjCollection
For lngIndex = .Count To 1 Step -1
If .Item(lngIndex) 

Anzeige
AW: Dropdown in Userform variabel Füllen
22.07.2021 09:06:25
Nepumuk
Hallo Daniel,
dein Code funktioniert in meiner Mustermappe genau so.
Gruß
Nepumuk
AW: Dropdown in Userform variabel Füllen
22.07.2021 09:21:09
Daniel
Hi Nepumuk,
eine Frage noch. Es funktioniert jetzt auch bei mir...
.List(.ListCount - 1, 2) = objCell.Offset(0, 1).Value kann ich hier auch die aktuelle Zeile,Spalte also 0,0 Anzeigen lassen?
LG
Daniel
AW: Dropdown in Userform variabel Füllen
22.07.2021 09:25:23
Nepumuk
Hallo Daniel,
ääääääääääääää Bahnhof? Probier's doch einfach aus.
Gruß
Nepumuk
AW: Dropdown in Userform variabel Füllen
22.07.2021 09:28:28
Daniel
Danke dir Funktioniert alles :)
Bei 0,0 spinnt es etwas wegen dem offSet ich such mir da noch ne andere möglichkeit!
aber danke dir nochmal!
AW: Dropdown in Userform variabel Füllen
21.07.2021 16:16:31
Daniel
HI
das befüllen der Combobox1 nach Vorgaben der Box1 könntest du mit diesem Code machen, z.B. ausgelöst über das CLICK-Event der Box1
dieser Code übernimmt die kompleltte Tabelle und löschst dann die unerwünschten Zeilen raus.
welche Spalten in der Klappliste angezeigt werden, regelst du über ColumnWidth.
Das ist ein Textstring, der Semikolongetrennt die Spaltenbreite jeder Spalte in der Klappliste enthält. Mit Breite 0 wird die Spalte nicht angezeigt.
Welcher Wert dann im Textfeld angezeigt wird, regelt dann die Einstellung TextColumn, welcher Wert als .Value ausgegeben wird, die .Einstellung BoundColumn.
alle Einstellungen, die konstant bleiben, musst du nicht über Code machen, sondern können auch im Editor in der Eigenschaftsliste eingetragen werden.

Dim i As Long
With Sheets("Tabelle1").Cells(1, 1).CurrentRegion
ComboBox1.ColumnCount = .Columns.Count
ComboBox1.ColumnWidths = "50;20" & WorksheetFunction.Rept(";0", .Columns.Count - 2)
ComboBox1.List = Intersect(.Cells, .Offset(1, 0)).Value
End With
If Box1.ListIndex > -1 Then
With ComboBox1
For i = .ListCount - 1 To 0 Step -1
If .List(i, 19)  Box1.Value Then .RemoveItem i
Next
End With
End If
Gruß Daniel
Anzeige

100 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige