Live-Forum - Die aktuellen Beiträge
Datum
Titel
19.04.2024 12:23:24
19.04.2024 11:45:34
Anzeige
Archiv - Navigation
876to880
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
876to880
876to880
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Tabellen via VBA "indirekt" ansprechen

Tabellen via VBA "indirekt" ansprechen
19.06.2007 07:57:33
Peter
Guten Tag
Ich spreche Tabellen z.B. mit ThisWorkbook.Worksheets("Tabelle1") an.
Nun möchte ich, dass es möglich ist, dass Tabellennamen geändert werden und der Code trotzdem läuft. Dies möchte ich wie folgt bewerkstelligen:
Ich vergebe der jeweiligen Tabelle in einer bestimmten Zelle einen Namen, z.B. "Tab1". Dieser wird ja bei einer Änderung des Tabellennamens nicht tangiert.
Im Code möchte ich den Tabellennamen aus dem Range("Tab1") ableiten, wobei mir klar ist, dass dieser Name nur in einer Tabelle vorkommen darf.
Wie leite ich von Range("Tab1") den Tabellennamen ab und weise diesen einer Variablen WSa zu (ich gehe davon aus, dass der eingangs erwähnte Teilcode dann ThisWorkbook.Worksheets(WSa) heissen würde)?
Vielen Dank für ein Feedback.
Danke, Peter

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellen via VBA "indirekt" ansprechen
19.06.2007 08:11:26
Hajo_Zi
Hallo Peter,
Wsa=Range("Tab")

AW: Tabellen via VBA "indirekt" ansprechen
19.06.2007 08:40:07
Peter
Hallo Hajo
Vielen Dank.
Wahrscheinlich habe ich falsch dimensioniert oder sonst ein Fehler gemacht, denn ich erhalte die Fehlermeldung:
Laufzeitfehler '91': Objektvariable oder With-Blockvariable nicht festgelegt.
Dim WSa as Worksheet
This Workbook.Activate
WSa = Range("xWSa") 'xWSa ist ein benannter Bereich in der anzusprechenden Tabelle
...
Danke für eine Rückmeldung.
Peter

AW: Tabellen via VBA "indirekt" ansprechen
19.06.2007 08:44:20
Hajo_Zi
Hallo Peter,
es ist eine Zelle und kein Bereich?
ThisWorkbook hast Du schon zusammengeschrieben?
Gruß Hajo

Anzeige
AW: Tabellen via VBA "indirekt" ansprechen
19.06.2007 08:55:05
Peter
Hallo Hajo
Ja, ThisWorkbook.Activate habe ich zusammen geschrieben
Die Zelle AC1 ist mit xWSa benant.
Die Fehlermeldung kommt bei der Zeile WSa = Range("xWSa")
Gruss, Peter

AW: Tabellen via VBA "indirekt" ansprechen
19.06.2007 08:57:39
Hajo_Zi
Hallo Peter,
DEine Definition ist falsch, du liest den Namen einer Tabelle ein.
Dim WSa As String
Gruß Hajo

AW: Tabellen via VBA "indirekt" ansprechen
19.06.2007 09:11:00
Peter
Hallo Hajo
Ich habe mich wohl nicht klar ausgedrückt.
In der Zelle AC1 steht nichts, diese Zelle hat nur den Namen "xWSa"
Wenn ich im Direktbereich ?range("xwsa").name
eingebe, erhalte ich
='Journal-zum-bearbeiten'!$AC$1
Ziel wäre, den den Tabellennamen, hier als "'Journal-zum-bearbeiten'" einer Variablen zuzuweisen und dann diese im Code zu verwenden, anstatt einen festen Namen. Dies hat den Vorteil, dass ich mal den Tabellennamen umbenennen kann, ohne, dass ich den VBA Code anpassen muss.
Gruss, Peter

Anzeige
AW: Tabellen via VBA "indirekt" ansprechen
19.06.2007 09:20:00
Hajo_Zi
Hallo Peter,
geht es nicht noch ein wenig komplizierter?
ActiveSheet.Name
Gruß Hajo

AW: Tabellen via VBA "indirekt" ansprechen
19.06.2007 09:28:29
Peter
Hallo Hajo
Das Problem ist ja, dass diese Tabelle nicht unbedingt aktiv ist. Deshalb muss ich feststellen können, in welcher Tabelle sich die mit "xWSa" benannte Zelle befindet.
Gruss, Peter

AW: Tabellen via VBA "indirekt" ansprechen
19.06.2007 09:32:02
Hajo_Zi
Hallo Peter,
MsgBox Mid(Range("xWSa").Name, 2, InStr(Range("xWSa").Name, "!") - 2)
Gruß Hajo

Anzeige
AW: Tabellen via VBA "indirekt" ansprechen
19.06.2007 10:18:20
Peter
Hallo Hajo
Hoffe, dass ich dich nicht erzürne. Doch wir sollten schon bald am Ziel sein. Nachdem ich nun den Tabellennamen als String habe, möchte ich diesen der Variable WSa als Worksheet zuweisen. Weshalb geht das nicht? Ist das Problem, dass ich Sonderzeichen im Tabellennamen habe? Name = "Journal-zum-bearbeiten"
Gruss, Peter
Sub Tabelle()
Dim WSa As Worksheet
Dim strWSa As String
strWSa = Mid(Range("xWSa").Name, 2, InStr(Range("xWSa").Name, "!") - 2)
Set WSa = ThisWorkbook.Worksheets(strWSa)

AW: Tabellen via VBA "indirekt" ansprechen
19.06.2007 10:35:00
Hajo_Zi
Hallo Peter,
ich habe jetzt keine Grund. anderer Vorschlag benutze den internen Namen der Tabelle Also nicht
Worksheets("Journal-zum-bearbeiten").Range("A1") sondern Tabelle1.Range("A1")
Damit ist Dir Egal welchen Namen die Tabelle hat und den internen Namen kann nur im VBA Editor geändert werden.
Gruß Hajo

Anzeige
AW: Vielen Dank! owT
19.06.2007 11:42:00
Peter

AW: Tabellen via VBA "indirekt" ansprechen
19.06.2007 16:08:41
Hajo_Zi
Hallo Peter,
Wsa=Range("Tab")

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige