Clever-Excel-Forum

Normale Version: Objekteigenschaften mit Variablen ansprechen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Guten Abend allerseits,

ich scheitere gerade an folgendem Vorhaben:
Ich möchte für ein Excelobjekt (= ein neues Blatt) dessen Name sowie Farbe des Tabellenreiters als Teile einer Eigenschaftsliste ansprechen.

Die Liste "Werte"  ("C8:D9") hält für Name und TabColorIndex die Werte bereit.

Um anzudeuten, was laufen soll, dieser Kurz-Code
Code:
Sub test()

Dim var As Variant
Dim sh As Worksheet

ReDim var(1 To 2, 1 To 2)

var = Range("Werte")

Set sh = ThisWorkbook.Sheets.Add

With sh

   .Name = var(1, 2)
   .Tab.ColorIndex = var(2, 2)

End With

Debug.Print

Tabelle1.Select

End Sub
Nun aber möchte ich  die Eigenschaften selbst mit meiner Auflistung ansprechen und es sollte in etwas so etwas ablaufen (was eben nicht funktioniert):
Code:
Sub test_Läuft_nicht()

Dim var As Variant
Dim sh As Worksheet
Dim z As Integer
ReDim var(1 To 2, 1 To 2)

var = Range("Werte")

Set sh = ThisWorkbook.Sheets.Add

For z = 1 To 2

   sh& "." & var(z, 1) = var(z, 2)

Next z

Debug.Print

Tabelle1.Select

End Sub
Kennt jemand von euch einen Weg, wie sich so etwas bewerkstelligen lässt?
Vielen Dank schon mal und schönen Abend.
(Und ich hoffe, ich konnte mein Anliegen einigermaßen verständlich erklären
Gruß
Ludwig
Hallo,

m.E. geht das nicht:

Zitat:sh& "." & var(z, 1) = var(z, 2)

Es müßte eher so sein (ungeprüft)
Code:
sh.name = var(1,1)
sh.color = var(2,1)

mfg

(PS: Anhang konnte nicht gelöscht werden)
Hi

ich denke du suchst im Prinzip das hier.  CallByName

Code:
Set sh = ThisWorkbook.Sheets.Add
CallByName sh, Sheets("Tabelle1").Cells(8, 3), 4, Sheets("Tabelle1").Cells(8, 4)
CallByName sh.Tab, Sheets("Tabelle1").Cells(9, 3), 4, Sheets("Tabelle1").Cells(9, 4)


In C9 steht jetzt nicht Tab.ColorIndex sondern nur noch ColorIndex.
Musst du halt noch etwas experimentieren.

Gruß Elex
Hallo Elex,

Blattschuss!

Danke, selbstverständlich auch an Fennek

Grüße Ludwig