Dropdown mit VBA bitte helft mir

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Dropdown mit VBA bitte helft mir
von:
Geschrieben am: 17.08.2015 11:03:15

Hallo,
Ich bin leider vollkommener Neuling im Umgang mit VBA und bräuchte mal eure Hilfe...
Also folgendes: In meiner einen Arbeitsmappe (Mappe 1) befindet sich eine Tabelle mit Textwerten. Die Spalte ist fest (Spalte C), jedoch kann sich die Anzahl der Zeilen verändern, wo die Liste steht.
Nun möchte ich in einer anderen Arbeitsmappe (Mappe 2) ein Dropdown-Feld anlegen, das auf diese Werte zugreift.
Ich habe versucht mit VBA selbst einen Code zu schreiben, jedoch wird bei der Dropdown-Auswahl immer nur #N/A angezeigt. Bitte helft mir
ich habe zuerst in Mappe 1 eine Formel eingefügt, die die Anzahl der Werte in der Liste ermittelt. Diese steht in Zelle D1.
Mein Code sieht so aus:
Sheets("Mappe 1").Activate
Dim i As Long
Dim j As Long
i = 1
While Not (Cells(i, 3)"größer als" Cells("D1").Value)
(das größer als - Zeichen kann irgendwie hier nicht dargestellt werden)
i = i + 1
Wend
j = i + Range("D1").Value
Range(Cells(1, 3), Cells(j, 3)).Select
ActiveWorkbook.Names.Add Name:="Liste", RefersToR1C1:= _
"='Mappe 1'!R[1]C[3]:R[" & j & "]C[3]"
Sheets("Mappe 2").Activate
Cells(1, 1).Select
With Selection.Validation
.Delete
.Add Type:=x1ValidateList, AlertStyle:=x1ValidAlertStop, Operator:= _
x1Between, Formula1:=Liste
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
Der Fehler wird immer in dieser Zeile: .Add Type:=x1ValidateList, AlertStyle:=x1ValidAlertStop, Operator:= _
x1Between, Formula1:=Liste angezeigt.
Da wo die Schrift fett ist, wird immer der Fehler angezeigt.
Ich hoffe, ihr habt mein Problem verstanden und könnt mir weiterhelfen
Schon mal vielen Dank

Bild

Betrifft: AW: Dropdown mit VBA bitte helft mir
von: SF
Geschrieben am: 17.08.2015 11:23:17
Hola,
nicht vergessen in den Foren auf das jeweilige andere Forum hinzuweisen.
Gruß,
steve1da

Bild

Betrifft: AW: Dropdown mit VBA bitte helft mir
von: Rudi Maintaire
Geschrieben am: 17.08.2015 11:38:47
Hallo Namenloser,
es muss
xlValidateList, xlValidAlertStop, xlBetween
heißen. Du hast eine 1 drin statt einem l (Eins statt L)
Gruß
Rudi

Bild

Betrifft: dynamischer Namensbereich
von: RPP63
Geschrieben am: 17.08.2015 12:02:36
Hallo!
Suche mal nach "excel dynamischer namensbereich".
Dafür brauchst Du kein VBA.
Gruß Ralf

Bild

Betrifft: Sorry Rudi, falscher "Ast" owT
von: RPP63
Geschrieben am: 17.08.2015 12:03:33


Bild

Betrifft: AW: Dropdown mit VBA bitte helft mir
von: Matthias
Geschrieben am: 17.08.2015 13:16:51
Hallo User,
zunächst vornweg eine Frage:
Du beziehst dich hier auf "Mappe 1" und "Mappe 2". Aus deinem Code heraus ergibt sich die Annahme, dass du hier von zwei Tabellenblättern und nicht zwei verschiedenen Arbeitsmappen (Excel-Dokumenten) redest, richtig?
"&_gt" bzw. "&_lt (ohne Unterstrich) ergeben übrigens ">" bzw. "<"
Abgesehen davon, dass deine Berechnung von i und j für mich nicht nachvollziehbar ist, sind darin zwei Fehler versteckt:

 While Not (Cells(i, 3).??? > Cells("D1").Value) 

"???" musst du durch ".Value", ".Row" oder welche Information der Zelle du auch immer haben willst ersetzen.
"Cells" funktioniert nur mit Koordinaten, du benötigst hier "Range("D1").Value"
Die Berechnung von i und j kannst du durch eine Messagebox anzeigen lassen und prüfen bevor du weitermachst.
 MsgBox "i: " & i & "   j: " & j

Die eckigen Klammern bedeuten einen relativen (inkrementalen) Bezug.
"='Mappe 1'!R[1]C[3]:R[" & j & "]C[3]"

Du markierst vorher C1 bis C&j und gehst von dort +3 Spalten (C[3]) nach rechts und landest in Spalte F, wodurch dein Bereich deine Dropdown auf leere Zellen verweist. i ist nach den gleichen Prinzip verkehrt (kannst du im Namens-Manager übrigens prüfen was rauskommt, wenn du alle Fehler in Folgezeilen erstmal als Kommentar ausblendest). Einfach die Klammern rauslöschen und du erhältst einen absoluten Bezug.
Des weiteren ändere bitte
 x1Between, Formula1:=Liste 
in
 x1Between, Formula1:="=Liste"
Beim testen funktioniert das Anlegen von Bereich und Dropdown soweit (abgesehen davon dass ich i und j willkürlich festgelegt hab').
mfg Matthias

Bild

Betrifft: AW: Dropdown mit VBA bitte helft mir
von:
Geschrieben am: 18.08.2015 08:14:06
Vielen Dank. Jetzt läuft es super

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Dropdown mit VBA bitte helft mir"