Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA-Hilfe benötigt: Anwahl eines Tabellenblatts

Forumthread: VBA-Hilfe benötigt: Anwahl eines Tabellenblatts

VBA-Hilfe benötigt: Anwahl eines Tabellenblatts
Andreas
Hallo,
ich bin relativer VBA-Neuling und plage mich gerade mit folgendem Problem ab:
Ziel: Ich habe zwei Excel-Dateien X und Y. In der Datei X möchte ich in Zelle B16 den Namen eines Tabellenblatts in Datei Y angeben können, die mir mein VBA-Makro später öffnet (Ich möchte dieses Tabellenblatt flexibel durch meine Eingabe in B16 wählen können).
Beispiel: In der Datei X schreibe ich in Zelle B15 den Namen der auszuwählenden Datei Y und in Zelle B16 den Text "Tabelle2" (ohne Anführungszeichen). Nun soll mein Makro (das ich in Datei X starte) in der (bereits geöffneten) Datei Y genau dieses Tabellenblatt Tabelle2 anwählen.
Problem: Wie kriege ich das hin?
Bisher habe ich Folgendes probiert:
"Sub MA_Datenexport
Zieldatei = Range("B15")
Zielregister = Range("B16")
Windows(Zieldatei).Activate
Sheets(Zielregister).Select
..."
Das Makro wählt zwar die Zieldatei (Datei Y), bricht dann aber mit dem Hinweis "Laufzeitfehler '9: Index außerhalb des gültigen Bereichs" ab.
Was mache ich falsch?
Vielen Dank im voraus für die Hilfe!
Andreas
Anzeige

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

Betreff
Benutzer
Anzeige
activesheet.Sheets(Zielregister).Select
30.08.2010 18:10:29
jowe
Tabellenblatt selektieren
30.08.2010 21:19:03
Erich
Hi Andreas,
eine recht häufige Ursache für Laufzeitfehler 9 ist, dass es kein Blatt mit dem Namen in Zielregister gibt.
Vielleicht ist der Blattname in der Zelle nicht exakt angegeben? (Manchmal ist es nur ein fast unsichtbares
Leerzeichen am Ende...)
Eine andere Ursache könnte die unzureichende Referenzierung sein. Wenn der Code im Modul "DieseArbeitsmappe"
oder im Modul einer Tabelle steht (also nicht in einem "normalen" Modul, das meist Modul1 o. ä. heißt).
Da würde VBA versuchen, das Blatt in der Mappe zu selektieren, in der der Code steht,
auch wenn zu dem Zeitpunkt eine andere Mappe aktiviert ist.
Probier mal:

Sub MA_Datenexport2()
Dim Zieldatei As String, Zielregister As String
Zieldatei = Range("B15")
Zielregister = Range("B16")
Workbooks(Zieldatei).Activate
ActiveWorkbook.Sheets(Zielregister).Select
'   oder
Workbooks(Zieldatei).Sheets(Zielregister).Select
'   oder    ' falsch, wenn Code nicht in normalem Modul steht:
Sheets(Zielregister).Select
End Sub
Nun noch meine Fragen:
1. Tritt der Fehler in der Zeile "Sheets(Zielregister).Select" auf oder vorher?
2. In welchem Modul steht dein Code?
Und noch ein Tipp: Schau dir mal die VBA-Hilfe zu "With" an. Das erleichtert die richtige Referenzierung
und macht den Code übersichtlicher. Probier mal

Zieldatei = Range("B15")
Zielregister = Range("B16")
With Workbooks(Zieldatei)
.Activate
.Sheets(Zielregister).Select
End With
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige