Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: In VBA variabler Dateiname

In VBA variabler Dateiname
21.11.2013 17:04:11
Raphael
Hallo Excelianer,
ich habe da mal ein Problem. und ich hoffe ihr könnt mir weiterhelfen:
Mit einem Marko springe ich in zwei ExcelSheets hin und her. Leider hat ein Sheet einen Variablen namen, der aber in Tabelle1: Zelle: A1 definiert ist.
Nun starte ich also das Makro in dem Sheet mit dem Variablen Dateinamen und öffne mit dem Marko die Datei DEF.xls.
Wie bringe ich dem Marko bei jetzt in das Workbook mit dem Variablen Dateinamen zurückzuspringen?
Windows("DEF.xls").Activate
Columns("A:A").Select
Selection.Copy
Windows("Variabler Name.xls").Activate
(Der Name steht in Tabelle1 ZelleA1)
Besten dank für eure Hilfe.
Raphael

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: In VBA variabler Dateiname
21.11.2013 20:09:05
Martin
Hallo Raphael,
im Prinzip gibt es zwei Möglichkeiten:
Wenn das Sheet mit dem Variablen immer an der selben Position ist (in meinem Beispiel an zweiter Stelle in der Arbeitsmappe), dann geht es so:
Sub Variante1()
Sheets(2).Activate
End Sub
Wenn Du wirklich immer den Namen aus der Zelle A1 eines anderen Sheets auslesen möchtest (in meinem Beispiel aus "Tabelle1"), dann geht es so:
Sub Variante2()
Sheets(Sheets("Tabelle1").Range("A1").Text).Select
End Sub
Viele Grüße
Martin

Anzeige
AW: In VBA variabler Dateiname
22.11.2013 10:18:28
Raphael
Hallo Martin,
besten dank, leider habe ich mich dann wohl unglücklich ausgedrückt. Es geht mir um das ganze Wokrbook nicht um ein einzelnes Sheet in dem Workbook.
ich starte in dem Workbook mit dem Variablen Namen ein Marko, welches die Datei Def.xls Öffne. Wenn ich jetzt dein Makro mit einsetze, sucht er ja in dem Sheet Def.xls den Namen in A1. Er soll aber den Dateinamen aus dem Wokrbook mit dem Variablen namen nehmen.
Besten Dank
Raphael

Anzeige
AW: In VBA variabler Dateiname
22.11.2013 11:05:59
Rudi
Hallo,
Dim wkbAkt as Workbook
Set wkbAkt = ActiveWorkbook
Workbooks.Open "def.xls"
Windows("DEF.xls").Activate
Columns("A:A").Select
Selection.Copy
wkbAkt.activate
Wobei Select/ Activate i.d.R. überflüssig sind.
Gruß
Rudi

AW: In VBA variabler Dateiname
26.11.2013 10:49:42
Raphael
Hallo Rudi,
Besten dank für deine Hilfe! du hast mir in den letzten Jahren schon auf weiterhelfen können!
Danke dir für deine Aktivitäten hier im Forum!
MFG
raphael
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Variabler Dateiname in VBA verwalten


Schritt-für-Schritt-Anleitung

Um in VBA mit einem variablen Dateinamen zu arbeiten, kannst du die folgenden Schritte befolgen:

  1. Definiere den aktiven Workbook: Verwende die Dim-Anweisung, um das aktuelle Workbook zu speichern.

    Dim wkbAkt As Workbook
    Set wkbAkt = ActiveWorkbook
  2. Öffne die andere Datei: Mit Workbooks.Open öffnest du die Datei, in diesem Beispiel "def.xls".

    Workbooks.Open "def.xls"
  3. Aktiviere das geöffnete Workbook: Verwende Windows("DEF.xls").Activate, um zu dem Workbook zu wechseln.

    Windows("DEF.xls").Activate
  4. Kopiere die benötigten Daten: Wähle die Spalte A aus und kopiere die Daten.

    Columns("A:A").Select
    Selection.Copy
  5. Wechsel zurück zum ursprünglichen Workbook: Aktiviere das vorher gespeicherte Workbook.

    wkbAkt.Activate

Häufige Fehler und Lösungen

  • Fehler: Workbook nicht gefunden

    • Lösung: Stelle sicher, dass der Dateiname korrekt ist und die Datei im richtigen Verzeichnis gespeichert ist.
  • Fehler: Ungültiger Blattname

    • Lösung: Überprüfe, ob der Blattname in der Zelle A1 korrekt ist und existiert.
  • Fehler: Select oder Activate kann nicht verwendet werden

    • Lösung: In vielen Fällen sind Select und Activate überflüssig. Überlege, ob du direkt mit Objekten arbeiten kannst.

Alternative Methoden

Wenn du den Namen des Workbooks in einer Zelle speichern möchtest und den Namen dynamisch abrufen willst, kannst du die folgende Methode verwenden:

Sub WechselWorkbook()
    Dim wbName As String
    wbName = Sheets("Tabelle1").Range("A1").Value
    Workbooks(wbName).Activate
End Sub

Diese Methode ist besonders nützlich, wenn der Workbook-Name häufig wechselt und du nicht manuell anpassen möchtest.


Praktische Beispiele

Hier sind einige praktische Beispiele zur Verwendung eines variablen Dateinamens in VBA:

  1. Kopieren von Daten aus einem variablen Workbook:

    Sub KopiereDaten()
       Dim wkbAkt As Workbook
       Dim wbName As String
    
       Set wkbAkt = ActiveWorkbook
       wbName = Sheets("Tabelle1").Range("A1").Value
       Workbooks.Open "def.xls"
       Windows("DEF.xls").Activate
       Columns("A:A").Select
       Selection.Copy
       wkbAkt.Activate
    End Sub
  2. Daten in ein variables Workbook einfügen:

    Sub FuegeDatenEin()
       Dim wbName As String
       wbName = Sheets("Tabelle1").Range("A1").Value
       Workbooks(wbName).Sheets(1).Range("B1").PasteSpecial
    End Sub

Tipps für Profis

  • Vermeide Select und Activate: Arbeite direkt mit Objekten, um den Code effizienter und schneller zu gestalten.
  • Fehlerbehandlung: Implementiere Fehlerbehandlung mit On Error Resume Next, um Probleme beim Öffnen von Workbooks zu vermeiden.
  • Modularer Code: Erstelle separate Funktionen für wiederkehrende Aufgaben, um deinen Code übersichtlicher zu gestalten.

FAQ: Häufige Fragen

1. Wie kann ich den Dateinamen automatisch in A1 aktualisieren?
Du kannst den Dateinamen mit ThisWorkbook.Name in die Zelle A1 schreiben, wenn du das Workbook speicherst.

2. Was passiert, wenn das Workbook nicht geöffnet werden kann?
Implementiere eine Fehlerbehandlung, um sicherzustellen, dass der Code nicht abbricht, wenn das Workbook nicht gefunden wird.

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