captainchaos666
Goto Top

Tabellenname, welcher im Excel VBA Editor in Klammer aufgeführt ist auslesen

Hallo,
könnt ihr mich mal wieder unterstützen.

Im VBA Editor von Excel 2003 kann ich jedem Tabellenblatt nochmals ein Namen vergeben unter den Eigenschaften, welcher in Klammer steht. Bei meinem Beispiel MaxA und MaxB.

Kann ich über disen Tabellennamen das Tabellenblatt ansprechen und Werte in bestimmte Zellen schreiben, z.B. "ThisWorkbook.Worksheets(MaxA).Cells(1,1) = 45"

Ich würde gerne mit diesem Namen arbeiten, da meine Tabellenblätter öfters umbenannt werden und inhalb der Datei die position verschoben wird

Danke

927a61b83783622d08c460868d30998e

Content-Key: 146398

Url: https://administrator.de/contentid/146398

Printed on: April 24, 2024 at 01:04 o'clock

Member: TheJoker2305
TheJoker2305 Jul 07, 2010 at 08:56:14 (UTC)
Goto Top
Die Tabellen können über

Worksheets("Tabellenname")

angesprochen werden.

Also im Beispiel:

ThisWorkbook.Worksheets("MaxA").Cells(1,1) = 45
Member: captainchaos666
captainchaos666 Jul 07, 2010 at 09:09:24 (UTC)
Goto Top
Hallo,
Danke für deine Antwort.
über ThisWorkbook.Worksheets("MaxA").Cells(1,1) = 45 kann der Name in Klammer (MaxA) nicht angesprochen werden, bei meinem Beispiel würde es mit ThisWorkbook.Worksheets("Tabelle1").Cells(1,1) = 45 funktionieren. Wenn jetzt aber jemand das Tabellenblatt 1 umbenennt dann funktioniert die Adressierung nicht mehr.

Ich suche das Argument um den Namen in Klammer von den Eigenschaften auslesen oder schreiben zu können.
Member: captainchaos666
captainchaos666 Jul 07, 2010 at 10:39:57 (UTC)
Goto Top
Hallo,
mit: "DummyD = Sheets("Tabelle1").CodeName" kann ich den Namen "MaxA" auslesen. Brings aber nicht hin, dass ich über "MaxA" Zellen im Excel- Tabellenblatt schreiben oder lesen kann! Hat jemand eine Idee
Member: bastla
bastla Jul 07, 2010 at 12:03:53 (UTC)
Goto Top
Hallo captainchaos666!

Aus der Hüfte geschossen (und völlig ungetestet) würde ich es mit einer Zuweisung zu einem (Tabellen-) Objekt etwa so versuchen:
Gefunden = False
For Each Tabelle In ThisWorkbook.Worksheets
    If Tabelle.CodeName = "MaxA" Then  
        Set MaxA = Tabelle
        Gefunden = True
        Exit For
    End If
Next
If Not Gefunden Then
    MsgBox "Tabelle MaxA nicht gefunden!"  
    Exit Sub
End If
...
Falls es auch genügen würde, die entsprechende Tabelle zu aktivieren, wäre das auch für eine größere Anzahl von "benannten" Tabellen ein gangbarer Weg - dann müsste nur der vergebene Name (als Variable oder eher Parameter einer "Function") übergeben werden und an die Stelle des "Set MaxA = Tabelle" käme ein "Tabelle.Activate" ...

Grüße
bastla
Member: captainchaos666
captainchaos666 Jul 09, 2010 at 07:00:51 (UTC)
Goto Top
Hallo bastla,
Danke, habs jetzt so gemacht wie du vorgeschlagen hast. Eine direkte Adressierung über den CodeNamen bring ich zumindest nicht hin!

Danke für eure Mühe

Gruß