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

Zwischen verschiedenen Dateien wechseln

Forumthread: Zwischen verschiedenen Dateien wechseln

Zwischen verschiedenen Dateien wechseln
24.09.2013 08:33:41
kultnoob
Hallo zusammen,
habe hier ein kleines Verständnisproblem und bin gerade nicht in der Lage dieses zu lösen. Bevor ich nun Stunden verbringe dieses Problem zu lösen, bitte ich kurzerhand um Hilfe.
Zu meiner Frage/Problem.
In einer Datei ist eine Userform hinterlegt. Damit werden 2 Exceldateien geöffnet/geladen etc. Das klappt auch wunderbar. Um später auf die Datei zugreifen zu können, habe ich diese mit einem Namen versehen.
Auf der Userform ist ein Commandbutton, mit welcher man die Auswertung starten kann (sobald diese mal funktioniert).
Zuerst vergebe ich der Datei in welcher die Userform vorhanden ist einen Namen. Ebenso den Dateien in den jeweiligen Textboxen.
Nur wie wechsle ich zwischen den Dateien?
Anbei mein bisheriger Code.
  • 
    Sub Auswertung_Click()
    'Der Auswertungdatei den Namen JV = Jahresvergleich zuweisen
    JV = ActiveWorkbook.Name
    'Datei aus Textbox1 den Namen LJ = letztes Jahr zuweisen
    Workbooks.Open Filename:=TextBox1.Value
    LJ = ActiveWorkbook.Name
    'Datei aus Textbox1 den Namen AJ = aktuelles Jahr zuweisen
    Workbooks.Open Filename:=TextBox2.Value
    AJ = ActiveWorkbook.Name
    With Workbooks(JV).Sheets(2)
    Sheets(2).Name = "TA's letztes Jahr"
    End With
    With Workbooks(JV).Sheets(3)
    Sheets(3).Name = "TA's aktuelles Jahr"
    End With
    End Sub
    


  • Mir geht es nur darum, wie ich zwischen Dateien wechsle. Den Rest will ich selber machen. Mit diesem Code vergibt er einen Namen aber wechselt nicht zwischen den Dateien und somit wird in die Datei AJ die Bezeichnung der Sheets 2 und 3 geändert.
    Besten Dank

    Anzeige

    8
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Zwischen verschiedenen Dateien wechseln
    24.09.2013 08:37:05
    Hajo_Zi
    du solltest es korrekt schreiben.
    .Sheets(2).Name = "TA's letztes Jahr"
    Punkt ist ein kleines Zeichen, aber wichtig.

    AW: Zwischen verschiedenen Dateien wechseln
    24.09.2013 08:45:14
    kultnoob
    Hi Hajo_Zi,
    vielen Dank für den Tip. Doch leider behebt das nicht mein Problem.
    Wenn ich
    With Workbooks(JV).Sheets(2)
    .Sheets(2).Name = "TA's letztes Jahr"
    end with
    eingebe, dann wechselt er leider nicht in die Datei JV sondern ändert die Sheets in AJ um.
    Oder habe ich Dich falsch verstanden?

    Anzeige
    AW: Zwischen verschiedenen Dateien wechseln
    24.09.2013 08:46:25
    Hajo_Zi
    With Workbooks(JV)
    Gruß Hajo

    AW: Zwischen verschiedenen Dateien wechseln
    24.09.2013 08:50:42
    kultnoob
    Hi,
    habs raus...
  • Sub Auswertung_Click()
    'Der Auswertungdatei den Namen JV = Jahresvergleich zuweisen
    JV = ActiveWorkbook.Name
    'Datei aus Textbox1 den Namen LJ = letztes Jahr zuweisen
    Workbooks.Open Filename:=TextBox1.Value
    LJ = ActiveWorkbook.Name
    'Datei aus Textbox1 den Namen AJ = aktuelles Jahr zuweisen
    Workbooks.Open Filename:=TextBox2.Value
    AJ = ActiveWorkbook.Name
    With Workbooks(JV).Sheets(2).Activate
    Sheets(2).Name = "TA's letztes Jahr"
    End With
    With Workbooks(JV).Sheets(3).Activate
    Sheets(3).Name = "TA's aktuelles Jahr"
    End With
    End Sub
    


  • Keine Ahnung ob das jetzt doppelt gemoppelt ist. Aber so wechsel ich zwischen den Dateien. Das Wort Activate war das Stichwort. Hoffe das klappt jetzt so und es war kein Zufall.
    Vielen Dank für die Hilfe Hajo_Zi. Hast mir wieder einmal geholfen.

    Anzeige
    AW: Zwischen verschiedenen Dateien wechseln
    24.09.2013 08:51:53
    Hajo_Zi
    auf select usw. kann in VBA zu 99,9% verzichtet werden
    Gruß Hajo

    AW: Zwischen verschiedenen Dateien wechseln
    24.09.2013 08:55:03
    kultnoob
    Hi,
    wenn ich mir meine bisherigen Codes so anschaue, dann habe ich diesen Befehl
    .select
    sehr oft verwendet. Werde mir das aber merken. Testen und testen und testen. Learning by doing.
    Vielen Dank für den Tipp.

    Anzeige
    Da ist so ziemlich alles doppelt oder...
    24.09.2013 09:12:46
    EtoPHG
    falsch gemoppelt, kultnoob
    ActiveWorkbook Ist das aktive, aber nicht gezwungenermassen die Arbeitsmappe in welcher der Code läuft. Also besser ThisWorkbook.
    Nach einem Open einer zusätzlichen Mappe ist die geöffnete das Activeworkbook, also ist es dort richtig, aber eigentlich überflüssig. Der Name ist nämlich der gleiche wie die Datei, die du öffnest!
    With Workbooks(JV).Sheets(2) bedarf keines .Activate. With dient zur _ Referenzierung eines definierten Objekts (Mappe, Blatt, Bereich, Collections etc...). Mit .Sheets(2).Name = "..." würdest du Workbooks(JV).Sheets(2).Sheets(2) referenzieren, was natürlich nicht geht, da ein Blatt nicht andere Blätter enthalten kann. Also kann das Ganze ganz einfach so geschrieben werden:
    
    With ThisWorkbook
    .Sheets(2).Name = "TA's letztes Jahr"
    .Sheets(3).Name = "TA's aktuelles Jahr"
    End With
    

    Gruess Hansueli

    Anzeige
    AW: Da ist so ziemlich alles doppelt oder...
    24.09.2013 15:42:45
    kultnoob
    Hi EtoPHG,
    vielen Dank für die Info. Mir fehlen in VBA noch viele Grundlagen, da ich eigentlich nur Learning by doing betreibe.
    Aber ich werde mir das merken und testen.
    ;
    Anzeige
    Anzeige

    Infobox / Tutorial

    Zwischen zwei Excel Dateien wechseln


    Schritt-für-Schritt-Anleitung

    Um zwischen zwei Excel-Dateien zu wechseln, kannst Du VBA verwenden. Hier ist eine einfache Anleitung:

    1. Öffnen der Dateien: Zuerst öffnest Du die beiden Excel-Dateien, die Du vergleichen oder bearbeiten möchtest. Du kannst dies über Textboxen in einer Userform tun.

      Workbooks.Open Filename:=TextBox1.Value ' Datei LJ
      Workbooks.Open Filename:=TextBox2.Value ' Datei AJ
    2. Ändern der Arbeitsblätter: Um zwischen den geöffneten Dateien zu wechseln und die Arbeitsblätter zu ändern, verwende den With-Befehl. Hier ein Beispiel:

      With Workbooks("DeineDatei.xlsx").Sheets(2)
         .Name = "Neuer Name"
      End With
    3. Aktivieren von Arbeitsblättern: Wenn Du in die entsprechende Datei wechseln möchtest, musst Du die Methode Activate verwenden:

      Workbooks("DeineDatei.xlsx").Activate
      Sheets(2).Activate

      Alternativ kannst Du direkt auf die Blätter zugreifen, ohne sie zu aktivieren.


    Häufige Fehler und Lösungen

    • Fehler: Arbeitsmappe wird nicht gefunden: Stelle sicher, dass der Dateiname korrekt ist und die Datei geöffnet wurde.

    • Lösung: Verwende ThisWorkbook: Wenn Du innerhalb einer Userform arbeitest, ist es besser, ThisWorkbook zu verwenden, um auf die Arbeitsmappe zuzugreifen, in der der Code ausgeführt wird.

    • Fehler: .Activate bringt nichts: Denke daran, dass .Activate nicht notwendig ist, um auf Blätter zuzugreifen. Es kann sogar zu Verwirrungen führen, wenn Du mehrere Dateien geöffnet hast.


    Alternative Methoden

    Wenn Du zwischen zwei Excel-Dateien wechseln möchtest, kannst Du auch Tastenkombinationen verwenden. Hier sind einige Optionen:

    • Alt + Tab: Wechselt zwischen den offenen Anwendungen, einschließlich Excel-Dateien.
    • Strg + Tab: Wenn Du in einer Excel-Anwendung mehrere Dateien geöffnet hast, kannst Du mit dieser Tastenkombination zwischen den Dateien wechseln.

    Praktische Beispiele

    Hier ist ein vollständiges Beispiel, das zeigt, wie Du zwischen zwei Excel-Dateien mit VBA wechselst:

    Sub WechselZwischenDateien()
        Dim LJ As Workbook
        Dim AJ As Workbook
        Dim JV As Workbook
    
        ' Aktuelle Arbeitsmappe
        Set JV = ThisWorkbook
    
        ' Dateien öffnen
        Set LJ = Workbooks.Open(Filename:=TextBox1.Value)
        Set AJ = Workbooks.Open(Filename:=TextBox2.Value)
    
        ' Arbeitsblätter benennen
        With JV.Sheets(2)
            .Name = "TA's letztes Jahr"
        End With
        With JV.Sheets(3)
            .Name = "TA's aktuelles Jahr"
        End With
    
        ' Wechseln zur Datei LJ
        LJ.Activate
    End Sub

    Dieses Skript öffnet zwei Excel-Dateien und benennt die Arbeitsblätter in der aktuellen Datei.


    Tipps für Profis

    • Vermeide unnötiges .Select und .Activate: Diese Befehle sind oft überflüssig und können den Code langsamer machen.

    • Nutze Application.ScreenUpdating = False: Das kann helfen, die Ausführungsgeschwindigkeit zu erhöhen, wenn Du viele Änderungen an Arbeitsblättern vornimmst.

      Application.ScreenUpdating = False
      ' Code hier
      Application.ScreenUpdating = True
    • Archiviere Deine VBA-Codes gut: Dokumentiere Deine Codes, um später leichter Anpassungen vornehmen zu können.


    FAQ: Häufige Fragen

    1. Wie wechsle ich zwischen mehreren Excel-Dateien?
    Du kannst die Methode Activate verwenden, um die gewünschte Datei aktiv zu schalten. Auch Tastenkombinationen wie Alt + Tab können hilfreich sein.

    2. Was ist der Unterschied zwischen ActiveWorkbook und ThisWorkbook?
    ActiveWorkbook ist die aktuell aktive Arbeitsmappe, während ThisWorkbook die Arbeitsmappe ist, in der der VBA-Code läuft. Es ist oft besser, ThisWorkbook zu verwenden, um Verwirrung zu vermeiden.

    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