Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
492to496
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
492to496
492to496
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Tabellenfunktion INDIREKT() in VBA

Tabellenfunktion INDIREKT() in VBA
04.10.2004 17:50:46
Sebastian
Hallo!
Ich habe das Problem, die Tabellenfunktion INDIREKT "dynamisch" in vba zu übernehmen.
Situation: Bei Ausführen dieser Prozedur wird im selektierten Feld eine abhängige Drop-Down-Liste erzeugt, im Moment abhängig von E3. Die Liste greift indirekt über E3(.Range("E3").Value = Wert) auf einem Wertebereich zu(.Range("A1:A5").Name = Wert)
das funktioniert auch alles und sieht so aus:

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

Problem: Ich möchte gerne nicht immer auf eine feste Zelle zugreifen(wie E3), sondern auf eine Zelle links neben der aktuell selektierten Zelle. Jetzt habe ich das Problem, die Zelle E3 in dem oben gezeigten programm durch eine variable zu ersetzen. Schreibe ich z.B. Formula1:=aktZelle, wobei jetzt aktZelle Range("E3") (Value = Wert) entspricht, steht in der Drop-Down-Liste nur der Text "Wert" zur Verfügung. Es fehlt der Bezug zu dem Wertebereich (A1:A5), den ich über die Funktion INDIRECT noch hatte.
Kann mir bitte jemand helfen und mir einen vorschlag machen, wie ich über eine beliebige Zelle(mit value = Wert)auf den Wertebereich mit dem Namen "Wert" (s.o.) zugreifen kann?
Freu mich über gute Vorschläge.
Gruß Sebastian

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenfunktion INDIREKT() in VBA
04.10.2004 18:15:35
Herbert
hallo sebastian,
wenn ich dich richtig verstanden habe, dann versuche mal eine dieser möglichkeiten:
1. ActiveCell.Offset(0, -1).Range("A1").Select 'zelle links neben der aktiven
2. Cells(ActiveCell.Row, ActiveCell.Column - 1) 'zelle links neben der aktiven
3. Activecell.Value ' aktive zelle
gruß herbert
AW: Tabellenfunktion INDIREKT() in VBA
05.10.2004 09:10:16
Sebastian
Hallo Herbert,
das sind zwar gute Vorschläge, aber diese ersetzen nicht die Funktion "INDIREKT". Ich bekomme so nur die Werte der linken benacharten Zelle, aber nicht den Bezug über diese Werte zu dem Wertebereich. Ich habe mal ein Beispiel auf dem Server geladen.
https://www.herber.de/bbs/user/11676.xls
Zum Beispiel, so wie die gelb hinterlegten Zellen sollte es funktionieren. Nur soll es für den Rest der Spalte auch so gehen. Deswegen will ich es über VBA lösen.
In einem Ereignis der Tabelle1 wird für zwei Spalten die DropDownListe erzeugt.
Im Modul1, Macro2 würde es funktionieren, aber nur im Bezug auf eine feste Zelle, es soll aber auf die linke benchbarte zugegriffen werden.
es wäre super, wenn noch weiter gute Vorschläge bei mir eingehen.
Danke!
Sebastian
Anzeige
AW: Tabellenfunktion INDIREKT() in VBA
05.10.2004 15:41:07
Herbert
hallo sebastian,
bei mir hat es hiermit funktioniert:
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=INDIRECT(INDIRECT(""E""&ROW()))"
probiers mal!
gruß herbert.
AW: Tabellenfunktion INDIREKT() in VBA
05.10.2004 17:32:57
Sebastian
Danke Herbert,
deine Lösung funktioniert auch bei mir! Inzwischen habe ich mir einen String zusammengebastelt:
Dim linkeZelle As String
Set aktZelle = ActiveSheet.Cells(Target.row, Target.Column)
linkeZelle = "=INDIRECT(" & aktZelle.Cells.offset(0, -1).Address & ")"
...
xlBetween, Formula1:=linkeZelle
...
mit dem es ebenfalls funktioniert. ich guck mal, ob ich mit deinem Lösungsansatz dann besser fahre. Da ich das "E" noch flexiel gestalten muss. ich arbeite mit Spaltennamen.
das werd ich mir morgen anschauen!
Vielen vielen Dank für die Hilfe und Bemühungen!
Sebastian
Anzeige
gerne geschehen! ;o)=) OT
05.10.2004 19:35:48
Herbert
,,

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige