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

Datenüberprüfung mit dynamischer Liste

Datenüberprüfung mit dynamischer Liste
04.09.2019 13:56:20
Stefan
Moin Forum,
ich bekomme es nicht hin, innerhalb einer Datenüberprüfung einen dynamischen Zugriff auf eine Datenspalte einer anderen (intelligenten) Tabelle einzurichten. Dazu folgende (hoffentlich vollständigen) Hintergrundinformationen:
+ zwei Tabellenblätter in einer Mappe
+ erstes Tabellenblatt "Desktop" dient als Benutzeroberfläche
+ zweites Blatt "ICT" enthält einen einzigen als intelligente Tabelle mit Namen ICT
formatierten Datenbereich mit Überschriftenzeile, dessen erste Spalte (A) den Spaltennamen "Code" trägt
+ im ersten Tabellenblatt "Desktop" möchte ich nach Bedarf in Zelle O10 eine Datenüberprüfung einrichten, die auf eben jene Spalte "Code" in der Tabelle ICT zugreift und zwar nur auf die Spaltenwerte, ohne Übeschrift. Und das nicht händisch sondern aus meinem VBA-Code heraus.
Und nun kommt das Problem:
mache ich das händisch über Daten/Datenüberprüfung gebe ich dort an:
Zulassen: Liste
Quelle: =indirekt("ICT[Code]")
und es funktioniert.
Lasse ich den Makro-Recorder mitlaufen zeigt der mir als Code:
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=indirekt(""ICT[Code]"")"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
(Hervorhebung Fett/Kursiv durch mich)
Das funktioniert aber nicht, wenn ich es exakt so in meinen Code einbette.... es gibt den berühmten Laufzeitfehler 1004 - Anwendungs- oder Objektdefinierter Fehler
Auszug aus meinem Code:
With Desktop
.Range("O10").Validation.Add Type:=xlValidateList, _ AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=indirekt(""ICT[Code]"")"
'.Range("B12").Validation.Delete
'.Range("I9").Validation.Delete
'If Not .Range("F9").Value = "" Then .Range("F9").Hyperlinks.Add _ anchor:=.Range("F9"), Address:=.Range("F9").Value
'If Not .Range("F10").Value = "" Then .Range("F10").Hyperlinks.Add _ anchor:=.Range("F10"), Address:=.Range("F10").Value
'.Range("F9").Comment.Delete
'.Range("F10").Comment.Delete
.Range("L6").Select
.CMD7.Caption = "Änderungen speichern"
.CMD7.ForeColor = RGB(255, 0, 0)
.Protect
End With
Da ist im Moment einiges anderes auskommentiert, bitte nicht dran stören.
Warum funktioniert das Fragment Formula1:="=indirekt(""ICT[Code]"")" nicht? Wo, verflixt, ist mein Fehler?

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datenüberprüfung mit dynamischer Liste
04.09.2019 13:59:28
Torsten
Du musst die Formel in englisch eingeben in VBA
AW: Datenüberprüfung mit dynamischer Liste
05.09.2019 16:24:05
Stefan
Danke!!! Ich ahnte schon, dass es eine Lappalie ist.
Funktioniert jetzt, ich geh mir einen Baum suchen (zum Kopf gegenschlagen ;) )
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige