Anzeige
Archiv - Navigation
1676to1680
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

Im DropDown nur 15 Einträge

Im DropDown nur 15 Einträge
24.02.2019 15:20:57
Oisse
Hallo Zusammen,
ich durchsuche mittels VBA eine Tabelle und lese die Ergebnisse in ein Array. Dieses Array dient dann als Grundlage für ein Dropdown in allen Zellen von bestimmten Spalten.
Nun habe ich das Problem, dass bis zu 15 Einträge kein Problem darstellen. Alle Werte werden angezeigt. Sobald aber mehr Einträge im Array sind, erscheint kein DropDown mehr. Die Zelle ist einfach leer. Mein Code sieht wie folgt aus:

If Target.Column = 15 Or Target.Column = 16 Or Target.Column = 17 Or Target.Column = 19 Then
Zeitraum = Range("C" & Target.Row)
Tagel (Zeitraum)    'Hier wird die Funktion abgearbeitet und das Array gefüllt
On Error GoTo ende
Application.EnableEvents = False
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=Replace(Replace(Join(Arr_Alle, "~"), ",", ";"), "~", ",")
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
Rows.EntireRow.AutoFit
Application.EnableEvents = True
Exit Sub
Else
End If

Was bitte läuft hier schief und wie kann man das Problem lösen?
Gruß Oisse

20
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Im DropDown nur 15 Einträge
24.02.2019 15:52:52
Sepp
Hallo Oisse,
zeig bitte den gesamten Code.
 ABCDEF
1Gruß Sepp
2
3

Anzeige
AW: Im DropDown nur 15 Einträge
24.02.2019 15:57:44
Oisse
Meinst Du mit gesamten Code die Funktion oder den Code, der auf dem Tabellenblatt liegt?
AW: Im DropDown nur 15 Einträge
24.02.2019 16:03:09
Sepp
Hallo Oisse,
na einfach alles was mit deinem Problem zusammenhängt!
 ABCDEF
1Gruß Sepp
2
3

Anzeige
AW: Im DropDown nur 15 Einträge
24.02.2019 16:30:12
Oisse
Hallo Sepp,
ich habe jetzt mal den Sprung auf die Fehlermarke ausgeschaltet. Es kommt dann der Fehler:
Anwendungs- oder Objektdefinierter Fehler und zwar in dieser Zeile:
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=Replace(Replace(Join(Arr_Alle, "~"), ",", ";"), "~", ",")

Der gesamte Code im Tabellenblatt sieht so aus:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Zeitraum As Date
If Target.Column = 15 Or Target.Column = 16 Or Target.Column = 17 Or Target.Column = 19 Then
Zeitraum = Range("C" & Target.Row)
Tagel (Zeitraum)
'On Error GoTo ende
Application.EnableEvents = False
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=Replace(Replace(Join(Arr_Alle, "~"), ",", ";"), "~", ",")
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
Rows.EntireRow.AutoFit
Application.EnableEvents = True
Exit Sub
End If
ende:
Application.EnableEvents = True
End Sub
Hilft das?
Anzeige
Und was ist Tagel()? o.T.
24.02.2019 16:33:55
Sepp
 ABCDEF
1Gruß Sepp
2
3

Anzeige
AW: Und was ist Tagel()? o.T.
24.02.2019 16:45:08
Oisse
Tagel = Aufruf der Funktion und Übergabe des Datums. Es passiert folgendes in der Funktion:
Es soll überprüft werden wer von den Mitarbeitern an diesem Tag (Datum) anwesend ist. Die Namen werden dann ins Array geschrieben. Das Array ist Public sodass es dann im Tabellenblatt zur Verfügung steht.
Wie gesagt, funktioniert das Füllen des Arrays tadellos. Es kommen alle Werte sauber. Wenn 15 Einträge drinstehen oder darunter gibt es kein Problem, sie werden im DropDown aufgelistet. Wenn es aber mehr sind, dann kommt die Fehlermeldung. Die kommt nicht, wenn es unter 15 sind.
AW: Und was ist Tagel()? o.T.
24.02.2019 16:51:08
Sepp
Hallo Oisse,
was an "zeig bitte den gesamten Code." hast du nicht verstanden?
Soll ich mir dein Array aus den Fingern saugen?
Am besten du lädst eine Beispieldatei hoch oder du lässt es bleiben.
 ABCDEF
1Gruß Sepp
2
3

Anzeige
AW: Beispielmappe anbei
24.02.2019 17:43:11
Sepp
Hallo Oisse,
beschreib doch bite mal in einfachen Worten, welche Daten im Dropdown angezeigt werden sollen.
Der Code von 'Tagel()' ist ja zum fürchten, da hab ich keine Lust den zu analysieren.
Dein Problem ist die Beschränkung auf 255 Zeichen für die Datengültigkeit, wenn man die Liste als Text definiert.
 ABCDEF
1Gruß Sepp
2
3

Anzeige
AW: Beispielmappe anbei
24.02.2019 17:57:08
Oisse
Hallo Sepp,
zunächst mal Danke, dass du dich überhaupt mit meinem Problem auseinandersetzt. Wie du im Datenblatt Bau erkennen kannst stehen dort die Namen, an welchem Datum sie anwesend sind, und dass das Geschlecht männlich ist, die Abfragekriterien eben. In Tabelle 1 steht das Datum, mit dem die Daten in Tabelle Bau übereinstimmen müssen. In den Spalten O und P der Tabelle 1 sollen dann eben die DropDowns mit den Namen erscheinen.
Nun möchte ich diese Namen aus dem Datenblatt Bau in der DropDown-Liste haben (in der Beispielmappe sind es eben alle, die gelistet sind)
Ich hoffe, es ist einfach zu verstehen.
Und- ja, der Code ist zum fürchten, weil in der Spalte, in der die verschiedenen Daten (Datum) drinstehen, auch Bereiche sein können also bspw. 1.4. - 20.05.
Gruß Oisse
Anzeige
AW: Im DropDown nur 15 Einträge
24.02.2019 17:17:44
onur
Wo hast du den Code denn her?
Entweder
.Add Type:=xlValidateList

dann muss ein Bereich oder eine Liste als Formula1 übergeben werden - z.B.:
Formula1:="=$D$1:$D$8"

oder
.Add Type:=xlValidateWholeNumber, AlertStyle:=xlValidAlertStop,Operator:=xlBetween

dann müssen die Grenzwerte als Formeln übergeben werden - z.B.:
Formula1:="3", Formula2:="5"

oder du hast eine benutzerdef. Formel:
.Add Type:=xlValidateCustom

und z.B.:
Formula1:="=ZS>7"

Anzeige
AW: Im DropDown nur 15 Einträge
24.02.2019 17:26:49
Oisse
Ich habe, denke ich, den Code so vom Makrorekorder übernommen, als ich ein DropDown erstellt habe.
Was wäre denn dann jetzt richtig, wenn ich das über ein Array lösen will?
Gruß Oisse
AW: Im DropDown nur 15 Einträge
24.02.2019 17:47:34
onur

With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=Join(Arr_Alle, ";")
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With

AW: Im DropDown nur 15 Einträge
24.02.2019 18:02:04
Oisse
Hallo Onur,
danke auch dir, für deine Hilfe. Wenn ich den Code so in die Beispielmappe eingebe, kommt der gleiche Fehler. Die Lösung mit dem Einfügen der Tilden usw. habe ich übrigens hier im Forum als Hilfe erhalten.
Gruß Oisse
Anzeige
Deine Mappe hat´s bei mit gerade zerschossen
24.02.2019 18:17:01
Oisse
Nun ist mit deiner Mappe genau das passiert, was mit meiner Mappe schon einige male passiert ist: Ich habe sie bei mir gespeichert und geöffnet. Darauf kam die Fehlermeldung, dass sie repariert werden muss und ob so viel wie möglich wieder hergestellt werden soll. Bei ja kommt eine absolut kaputte Excel Anwendung heraus. Im VBA sieht man dann, dass Tabellen als Excelmappen angelegt wurden. Was bitte ist da dann passiert?
AW: Deine Mappe hat´s bei mit gerade zerschossen
24.02.2019 18:35:48
Sepp
Hallo Oisse,
das liegt an der Beschränkung der Länge des Strings. Wenn man mehr als 255 Zeichen eingibt (per VBA, händisch geht es gar nicht), dann funktioniert es scheinbar, aber beim Öffnen der Datei oder evtl. auch während der Arbeit mit der Datei funktioniert diese eben nicht mehr.
 ABCDEF
1Gruß Sepp
2
3

AW: Deine Mappe hat´s bei mit gerade zerschossen
24.02.2019 20:04:54
Oisse
Danke onur,
aber es ist das Gleiche in Grün. Schade dann werde ich die Werte wohl in einer Tabelle zwischenspeichern müssen um das Ganze irgendwie zu händeln.
Mal sehen wie das Ausgeht.
Gruß Oisse
Gelöst
25.02.2019 07:48:15
Oisse
Danke nochmal an euch, Sepp und onur.
Ich habe es jetzt so gemacht, dass ich die ausgelesenen Werte in eine Hilfstabelle einfüge. Diese habe ich mit Namen benannt und hole diese Werte dann ins DropDown. Dauert zwar etwas länger aber dafür läuft´s (hoffentlich) fehlerfrei.
Gruß Oisse

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige