Dropdownliste aus anderem Reiter mit leeren Zellen

Bild

Betrifft: Dropdownliste aus anderem Reiter mit leeren Zellen
von: assel90
Geschrieben am: 15.05.2015 12:00:58

Hallo zusammen!
Ich möchte per VBA eine Dropdownliste erstellen, da die normale "Länge" die Excel anbietet für die Anzahl an Auswahlmöglichkeiten nicht ausreicht.
Mein Vorhaben sieht wie folgt aus: Ich möchte im ersten Tabellenblatt eine Dropdownliste erzeugen, die ihre Werte aus einer "Datenbank" aus dem zweiten Tabellenblatt bezieht. Zwischen den auszuwählenden Werten sind jedoch jeweils leere Zellen, die ich nicht mit drin haben möchte. Alle Werte befinden sich in einer Zeile.
Optimal wäre nach meiner Ansicht eine VBA-Lösung, die mit einer Schleife die Zeile durchgeht und aus allen ausgefüllten Zellen die Dropdownliste erzeugt.
Ich habe mich jetzt schon länger daran versucht und bekomme es einfach nicht hin. Ich hoffe mir kann jemand helfen!

Bild

Betrifft: AW: Dropdownliste aus anderem Reiter mit leeren Zellen
von: Nepumuk
Geschrieben am: 15.05.2015 13:15:39
Hallo,
ohne Mustermappe kann ich dir nur ein Beispiel liefern welches du noch anpassen musst:

Public Sub Beispiel()
    Dim avntValues As Variant
    Dim strText As String
    With Tabelle2
        avntValues = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp)).Value
    End With
    strText = Join(WorksheetFunction.Transpose(avntValues), ";")
    strText = Replace(strText, ";;", ";")
    strText = Replace(strText, ";", ",")
    With Tabelle1.Cells(1, 1).Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
            xlBetween, Formula1:=strText
        .IgnoreBlank = True
        .InCellDropdown = True
    End With
End Sub

Gruß
Nepumuk

Bild

Betrifft: AW: Dropdownliste aus anderem Reiter mit leeren Zellen
von: assel90
Geschrieben am: 15.05.2015 13:38:45
Danke schonmal!!!
Hab es eben versucht, aber es kommt der Fehler, dass ein Objekt fehlt...
Also die Zelle in der die Dropdownliste sein soll ist im Reiter "Arbeitsblatt" Zelle B2. Der Datenbankreiter heißt "Grundwinkel" und die Zeile in der die auszulesenden Werte stehen, ist Zeile 2 beginnend in Spalte B.

Bild

Betrifft: AW: Dropdownliste aus anderem Reiter mit leeren Zellen
von: Nepumuk
Geschrieben am: 15.05.2015 13:54:22
Hallo,
lad halt eine Mustermappe hoch.
Gruß
Nepumuk

Bild

Betrifft: AW: Dropdownliste aus anderem Reiter mit leeren Zellen
von: assel90
Geschrieben am: 15.05.2015 14:02:19
https://www.herber.de/bbs/user/97659.xlsm
hier die Test-Datei. Ich möchte im Prinzip die 3 Dropdownlisten auf dem Reiter "Arbeitsblatt" mit einer Makro erzeugen, damit ich alle Daten erfassen kann und das Ganze dynamisch funktioniert wenn mal etwas geändert wird. Danke!

Bild

Betrifft: AW: Dropdownliste aus anderem Reiter mit leeren Zellen
von: Nepumuk
Geschrieben am: 15.05.2015 14:20:03
Hallo,
und was sollen die genau für Daten aus welcher Tabelle beinhalten?
Gruß
Nepumuk

Bild

Betrifft: AW: Dropdownliste aus anderem Reiter mit leeren Zellen
von: assel90
Geschrieben am: 15.05.2015 14:31:18
Hi,
in den "Datenbanken" stehen Teilenummern drin. Also in den Reitern "Grundwinkel" Vorrichtungen" und "Oberteile". Diese Teilenummern möchte ich im Reiter "Arbeitsblatt" in den jeweiligen Dropdowns zur Auswahl haben. Beim Testen hat das Ganze mit der "normalen" Excel-Dropdown Funktion ausgereicht. Wenn ich jetzt aber alle Nummern einfüge wird das zu viel und funktioniert nicht mehr. Deshalb sollte das jetzt per VBA realisiert werden. Ist das verständlich? :-D

Bild

Betrifft: AW: Dropdownliste aus anderem Reiter mit leeren Zellen
von: Nepumuk
Geschrieben am: 15.05.2015 14:55:41
Hallo,
dann teste mal:

Option Explicit

Public Sub CreateValidation()
    Dim avntValues As Variant, avntSheetNames As Variant
    Dim strValidationList As String
    Dim ialngIndex As Long, lngOldLength As Long
    avntSheetNames = Array("Grundwinkel", "Vorrichtungen", "Oberteile")
    For ialngIndex = 0 To 2
        With Worksheets(avntSheetNames(ialngIndex))
            avntValues = .Range(.Cells(2, 2), .Cells(2, .Columns.Count).End(xlToLeft)).Value
        End With
        strValidationList = Join(WorksheetFunction.Transpose( _
            WorksheetFunction.Transpose(avntValues)), ";")
        Do
            lngOldLength = Len(strValidationList)
            strValidationList = Replace(strValidationList, ";;", ";")
        Loop Until lngOldLength = Len(strValidationList)
        strValidationList = Replace(strValidationList, ";", ",")
        With Worksheets("Arbeitsblatt").Cells(2, 2 + ialngIndex * 4).Validation
            .Delete
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
                xlBetween, Formula1:=strValidationList
            .IgnoreBlank = True
            .InCellDropdown = True
        End With
    Next
End Sub

Gruß
Nepumuk

Bild

Betrifft: AW: Dropdownliste aus anderem Reiter mit leeren Zellen
von: assel90
Geschrieben am: 18.05.2015 08:03:59
Das funktioniert super! Ich danke dir, habe mir da echt die Zähne dran ausgebissen!!

Bild

Betrifft: AW: Dropdownliste aus anderem Reiter mit leeren Zellen
von: assel90
Geschrieben am: 20.05.2015 13:31:22
Hallo,
nochmal eine Frage: Als ich die Tabellenblätter nach und nach mit den richtigen Daten gefüllt habe kam der Fehler: Entferntes Feature: Datenüberprüfung von /xl/worksheets/sheet1.xml-part
Durch Recherche habe ich herausgefunden, dass es wahrscheinlich an einem Befehl in dem eingefügten Quellcode liegt, der nicht mit Excel 2007 kompatibel ist. Speichere ich die Datei als Excel-2003 Version als .xls ab funktioniert alles fehlerfrei. Weiß jemand welcher Befehl das sein könnte und durch was er ersetzt werden muss?
Danke!

Bild

Betrifft: AW: Dropdownliste aus anderem Reiter mit leeren Zellen
von: Nepumuk
Geschrieben am: 20.05.2015 13:46:04
Hallo,
ich hab das unter Excel 2013 erstellt und da funktioniert es einwandfrei. Am Code kann es demnach nicht liegen. Nachdem die Datenüberprüfung jedes mal neu erstellt wird, lösch die alten einfach mal dann Mappe speichern, schließen, erneut öffnen und dann das Makro ausführen.
Gruß
Nepumuk

Bild

Betrifft: AW: Dropdownliste aus anderem Reiter mit leeren Zellen
von: assel90
Geschrieben am: 20.05.2015 14:14:55
Hallo,
ich habe sowohl die Zellen geleert als auch den Quellcode entfernt, abgespeichert neu geöffnet und wieder eingefügt. Der Fehler tritt immer wieder auf. Ich dachte es liegt evtl. daran, dass die maximale Zeichenzahl für die Dropwonliste möglicherweise überschritten wurde, aber auch nach Reduzierung ist der Fehler immer noch aufgetreten.
Gruß

Bild

Betrifft: AW: Dropdownliste aus anderem Reiter mit leeren Zellen
von: Nepumuk
Geschrieben am: 20.05.2015 14:30:47
Hallo,
das ist aber nicht zufällig eine englische Excelversion?
Gruß
Nepumuk

Bild

Betrifft: AW: Dropdownliste aus anderem Reiter mit leeren Zellen
von: assel90
Geschrieben am: 20.05.2015 14:33:56
Hallo,
als Sprache ist auf jeden Fall deutsch eingestellt. Ob die Ausgangsversion englisch ist, weiß ich nicht. Wo sehe ich das denn?
Gruß

Bild

Betrifft: AW: Dropdownliste aus anderem Reiter mit leeren Zellen
von: Nepumuk
Geschrieben am: 20.05.2015 14:45:18
Hallo,
gib mal eine Gültigkeitsliste manuell ein. Musst du dann Semikolons oder Kommas als Trennzeichen eingeben?
Gruß
Nepumuk

Bild

Betrifft: AW: Dropdownliste aus anderem Reiter mit leeren Zellen
von: assel90
Geschrieben am: 20.05.2015 14:48:20
Hallo,
mit Semikolons!
Und by the way, das Betriebssystem läuft auf englisch.
Gruß

Bild

Betrifft: AW: Dropdownliste aus anderem Reiter mit leeren Zellen
von: Nepumuk
Geschrieben am: 20.05.2015 14:59:02
Hallo,
dann lösch mal in der Prozedur diese Zeile:
strValidationList = Replace(strValidationList, ";", ",")
Gruß
Nepumuk

Bild

Betrifft: AW: Dropdownliste aus anderem Reiter mit leeren Zellen
von: Nepumuk
Geschrieben am: 20.05.2015 15:00:45
Hallo,
dann lösch mal in der Prozedur diese Zeile:
strValidationList = Replace(strValidationList, ";", ",")
Gruß
Nepumuk

Bild

Betrifft: AW: Dropdownliste aus anderem Reiter mit leeren Zellen
von: assel90
Geschrieben am: 20.05.2015 15:19:05
Hallo,
dann steht alles in einer Zeile. Also ich habe nur noch einen Wert zur Auswahl in der Dropdownliste in dem alle Werte stehen

Bild

Betrifft: AW: Dropdownliste aus anderem Reiter mit leeren Zellen
von: Nepumuk
Geschrieben am: 20.05.2015 15:30:19
Hallo,
dann fällt mir auch nichts mehr ein. Ist dein Office auf dem aktuellsten Stand was Updates betrifft?
Gruß
Nepumuk

Bild

Betrifft: AW: Dropdownliste aus anderem Reiter mit leeren Zellen
von: assel90
Geschrieben am: 20.05.2015 15:35:55
Hallo,
sollte es eigentlich sein... In den nächsten Monaten wird sowieso auf ein neues Office-Paket umgestellt. Bis dahin speichere ich die Datei einfach als .xls, da sie da ja funktioniert.
Ich danke dir für deine ausgiebige Hilfe!
Gruß

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Dropdownliste aus anderem Reiter mit leeren Zellen"