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

Grösse Dropdown-Liste Datenüberprr

Grösse Dropdown-Liste Datenüberprr
02.09.2021 16:21:38
Marc
Hallo zusammen
Ich frage im Menupunkt Daten/Datenüberprüfung eine Liste mit ca. 50 Werten ab. Das Dropdown Menu zeigt mir dann auch alle Werte schön an, der User scrollt und scrollt bis er oder sie zum Ende der Liste kommt. Die Suche gestaltet sich so relativ schwierig. Ich möchte diesen einfachen Weg gehen, und nicht mit einem Kombinationsfeld arbeiten.
Gibt es irgendwo versteckt im Excel die Möglichkeit die Länge dieser Dropdown Liste anzupassen? Ich weiss, mit dem Kombinationsfeld könnte ich die Länger der angezeigten Elemente anpassen, aber ich will wie gesagt diesen einfachen Weg gehen.
Danke für eure Hilfe und sonnige Grüsse aus der Schweiz
Marc

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Grösse Dropdown-Liste Datenüberprr
02.09.2021 17:11:22
onur
"Ich möchte diesen einfachen Weg gehen" - wie du siehst, ist dieser Weg NICHT sooo einfach, also entweder so oder Combobox/Listbox..
AW: Grösse Dropdown-Liste Datenüberprr
02.09.2021 17:52:42
Marc
Mein Problem ist, dass ich in dem File etwa 300 Zeilen habe. Das Kopieren von der Com Box ist ja nun auch nicht so super, wenn ich jedes Mal wieder die Bezugszelle von Hand anpassen muss. Oder?
AW: Grösse Dropdown-Liste Datenüberprr
02.09.2021 21:57:20
Daniel
Hi
Verwende nur eine Combobox (Typ ActiveX)
Im SelctionChange- Event verschiebst du dann diese Combobox auf die angeklickte Zelle und setzt diese Zelle als LinkedCell der Combobox ein.
Klickt der Anwender eine Zelle an, für die das Dropdown nicht gelten soll, blendest du es aus.
Somit kannst du das mit geringem Aufwand für eine beliebige Anzahl von Zellen realisieren und den Komfort Vorteil der Combobox nutzen.
Gruß Daniel
Anzeige
AW: Grösse Dropdown-Liste Datenüberprr
03.09.2021 09:13:54
Marc
Hi Daniel
Danke vielmals für den Tipp. Für einen VBA Profi ist das sicher eine leichte Aufgabe. Ich versuche mal herauszufinden wie das konkret gehen soll. Ein bisschen VBA Training tut mir gut :)
Gruss
Marc
AW: Grösse Dropdown-Liste Datenüberprr
03.09.2021 10:09:03
Marc
Hi Daniel
Danke vielmals für den Tipp. Für einen VBA Profi ist das sicher eine leichte Aufgabe. Ich versuche mal herauszufinden wie das konkret gehen soll. Ein bisschen VBA Training tut mir gut :)
Gruss
Marc
AW: Grösse Dropdown-Liste Datenüberprr
03.09.2021 13:58:32
Daniel
Da gibts nicht viel zu tun.
Die ActiveX-Combobox kannst du manuell erstellen, dh in der Eigenschaftsliste den Zellbereich mit der Liste zuweisen (Listfillrange) und die Anzuzeigenden Zeilen definieren.
dann musst du im SelectionChange-Makro nur noch die Top-, Left- und ggf Height- und Width-Eigenschaft der Box gleich den selben Eigenschaften der angeklickten Zelle setzen:

Combobox1.Top = Target.Top
...
Und die Combobox mit der Zelle verknüpfen:

Combobox1.LinkedCell = Target(1).Address
Viel mehr ist nicht zu tun.
Gruß Daniel
Anzeige
AW: Grösse Dropdown-Liste Datenüberprr
03.09.2021 15:28:17
Marc
Danke für deine Tipps, Daniel. Ohne eine detaillierte Anweisung packe ich es dennoch nicht, meine VBA Kenntnisse sind zu schwach.
Grüess
Marc
AW: Grösse Dropdown-Liste Datenüberprr
03.09.2021 17:51:31
Daniel
du meinst Code, den du einfach kopieren und einfügen kannst und der dann funktioniert , ohne dass du selber denken musst?
nimm mal den im Modul des Tabellenblatts.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Range("A2:A99")) Is Nothing Then
ComboBox1.Visible = False
Else
ComboBox1.Top = Target.Top - 1
ComboBox1.Left = Target.Left
ComboBox1.Width = Target(1).Width + 15
ComboBox1.Height = Target(1).Height + 4
ComboBox1.LinkedCell = Target(1).Address
ComboBox1.Visible = True
End If
End Sub
die Combobox mit dem Namen musst du vorher anlegen (irgendwo auf dem Tabellenblatt) und mit dem Zellbereich verknüpfen, der die Daten für die Auswahl enthält.
Den zellbereich, für den die Combobox dann angewendet werden soll, gibtst du bei der IF-Prüfung an.
Gruß Daniel
Anzeige
AW: Grösse Dropdown-Liste Datenüberprr
04.09.2021 08:18:26
Marc
Hi Daniel
Danke vielmals für den detaillierten Code. Ich habe schon versucht, wenigstens mitzudenken, aber ich hänge tatsächlich völlig in der Luft mit dieser Box, oder besser gesagt, ich hing in der Luft.
Also, herzlichen Dank, dann setze ich die Lösung mal so um.
Es grüsst
Marc
AW: Grösse Dropdown-Liste Datenüberprr
04.09.2021 11:35:17
Marc
Der Code hat leider nicht funktioniert. Ich habe nun einen Weg gefunden, welcher auch für VBA Afänger taugt. In einem Forum fand ich den folgenden VBA Code. Mit diesem können Comboxes eingefügt werden, welche den Wert "LinkedCell" schon wunderschön ansteuern. Für alle Anfänger - wie ich einer bin - habe ich unten in Grossbuchstaben Anmerkungen hinzugefügt:

Sub AddComboBox()
Dim oObj As OLEObject
Dim oCBox As MSForms.ComboBox
Dim lloRow As Long, oCMB As OLEObject, liCount As Integer
Dim liStartRow As Integer, liEndRow As Integer
liStartRow = 2 'in welcher Zeile beginnt das Einfügen von Comboboxen
liEndRow = 100  'wieviele Zeilen sollen hinzugefügt werden
'es wird geprüft, ob "alte" Comboboxen vorhanden sind   DIESER GANZE ABSCHNITT KANN NATÜRLICH GELÖSCHT WERDEN
For Each oCMB In ActiveSheet.OLEObjects
If Left(oCMB.Name, 8) = "ComboBox" Then
liCount = liCount + 1
End If
Next
'wenn es alte Comboboxen gibt...
If liCount > 0 Then
'...werden diese gelöscht
For lloRow = liStartRow To liEndRow
ActiveSheet.OLEObjects("ComboBox" & lloRow).Delete
Range("AC" & lloRow).Value = ""
Next
End If
'beginnend bei liStartRow und endend bei liEndRow werden so viele Comboboxen hinzugefügt wie gewünscht
For lloRow = liStartRow To liEndRow
With Range("AB" & lloRow)
.RowHeight = 20
Set oObj = ActiveSheet.OLEObjects.Add( _
ClassType:="Forms.ComboBox.1", _
Link:=False, _
DisplayasIcon:=False, _
Left:=.Left, _
Top:=.Top, _
Width:=.Width, _
Height:=.Height)
oObj.ListFillRange = "Artikel"  DIESER RANGE WIRD ALS NAMEN IN EINEM ZWEITEN TABELLENBLATT DEFINIERT
Set oCBox = oObj.Object
oCBox.ColumnCount = 2
oCBox.LinkedCell = .Offset(0, 1).Address
oCBox.ListIndex = 0
oCBox.ListRows = 50  DIESES FELD HABE ICH HINZUGEFÜGT, DIES FUNKTIONIERT MIT ALLEN FELDERN DER EIGENSCHAFTEN DER BOX
oCBox.BoundColumn = 2
oCBox.ColumnWidths = "200 Pt;49,95 Pt"
oCBox.Name = "ComboBox" & lloRow
End With
Next
End Sub

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige