Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1172to1176
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
Inhaltsverzeichnis

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

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

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige