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

Aktives Fenster in VBA wählen

Forumthread: Aktives Fenster in VBA wählen

Aktives Fenster in VBA wählen
06.08.2005 16:10:02
Frank
Hallo.
Ich habe folgendes Problem:
Über einen Makro werden aus einer Datei heraus drei andere Dateien geöffnet und anschließend Abfragen durchgeführt und die Ergebnisse in der Ausgangsdatei gespeichert.
Workbooks.Open Filename:= _"C:\....xls"
Workbooks.Open Filename:= _"C:\....xls"
Workbooks.Open Filename:= _ "C:\....xls"
Windows("Vorlage.xls").Activate
Range("A12").Select usw.
Das funktioniert auch solange, bis die Ausgangsdatei (im Beispiel Vorlage.xls) nicht unter einem anderen Namen gespeichert wird.
Ich suche also einen Weg, den Ausgangsdateinamen in einer Variablen zu speichern, so dass ich ihn anschließend über Windows(...).Activate (oder einen gleichwertigen Befehl) verwenden kann.
Mein Lösungsansatz:
Dim Dateiname As String
Dateiname = ActiveWorkbook.FullName
Workbooks(Dateiname).Activate
funktioniert leider nicht.
Vielen Dank im Voraus!
Frank
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Aktives Fenster in VBA wählen
06.08.2005 16:19:29
Leo
Hi,
lass das selecten und activaten weg, dann hast du das Problem nicht.
Thisworkbook.Activate (Das, in dem der Code läuft).
mfg Leo
AW: Aktives Fenster in VBA wählen
06.08.2005 16:24:18
Ralf
Hallo Frank,
immer wenn Du Dateiname aktualisierst, nimmt die Variable logischerweise den kompletten Pfad der aktuellen Anwendung an. Du bräuchtest also noch eine Variable für den alten Namen. Und nur wenn dieser Name leer ist, weist Du ihr den Namen der aktiven Anwendung zu. Dazu bietet sich das Ereignis BeforeClose an. Bsp.: (nicht getestet)
dim Dateiname$, DateiAlt$
Dateiname = activeworkbook.fullname
if DateiAlt = "" then DateiAlt = Dateiname
Ciao, Ralf
Anzeige
;
Anzeige

Infobox / Tutorial

Aktives Fenster in VBA wählen


Schritt-für-Schritt-Anleitung

Um das aktive Fenster in VBA auszuwählen, ohne dass Probleme beim Speichern unter einem neuen Namen auftreten, kannst Du die folgenden Schritte befolgen:

  1. Erstelle ein Makro in der Excel-Datei, in der der Code laufen soll.
  2. Definiere Variablen für den Dateinamen und den alten Dateinamen:
    Dim Dateiname As String
    Dim DateiAlt As String
  3. Speichere den aktuellen Dateinamen in der Variable:
    Dateiname = ActiveWorkbook.FullName
  4. Setze eine Bedingung, um den alten Dateinamen nur einmal zu speichern:
    If DateiAlt = "" Then DateiAlt = Dateiname
  5. Verwende ThisWorkbook, um das aktive Fenster auszuwählen, ohne es zu aktivieren:
    ThisWorkbook.Activate
  6. Führe Deine Abfragen durch und speichere die Ergebnisse.

Häufige Fehler und Lösungen

  • Fehler: Das Makro kann das Arbeitsblatt nicht finden.

    • Lösung: Vergewissere Dich, dass der Dateiname korrekt gespeichert wird und keine Leerzeichen enthält.
  • Fehler: Fehlermeldung beim Aktivieren des Fensters.

    • Lösung: Statt Windows(...).Activate verwende ThisWorkbook.Activate, um das Problem zu umgehen.

Alternative Methoden

Eine alternative Methode ist die Verwendung von Workbook-Objekten, um die Arbeit mit mehreren Dateien zu vereinfachen:

Dim wb As Workbook
Set wb = Workbooks.Open(Filename:="C:\...\deineDatei.xls")

Damit kannst Du die Datei direkt in der Variable wb speichern und darauf zugreifen, ohne den Dateinamen aktiv zu speichern.


Praktische Beispiele

Hier ist ein einfaches Beispiel, das zeigt, wie Du mit einem aktiven Fenster in VBA arbeiten kannst:

Sub BeispielMakro()
    Dim Dateiname As String
    Dim DateiAlt As String

    Dateiname = ActiveWorkbook.FullName
    If DateiAlt = "" Then DateiAlt = Dateiname

    ' Öffne eine andere Datei
    Workbooks.Open Filename:="C:\...\andereDatei.xls"

    ' Aktiviere die aktuelle Arbeitsmappe
    ThisWorkbook.Activate
End Sub

Tipps für Profis

  • Vermeide die Verwendung von .Select und .Activate, um die Ausführungsgeschwindigkeit zu erhöhen.
  • Nutze das Ereignis BeforeClose, um den alten Dateinamen zu speichern, bevor die Datei geschlossen wird.
  • Halte Deinen Code modular, indem Du Funktionen verwendest, um repetitive Aufgaben zu vermeiden.

FAQ: Häufige Fragen

1. Kann ich das aktive Fenster auch ohne VBA auswählen? Ja, Du kannst das aktive Fenster auch über das Menü oder die Symbolleiste in Excel auswählen, aber VBA bietet mehr Flexibilität.

2. Was passiert, wenn die Datei unter einem anderen Namen gespeichert wird? Wenn Du den Dateinamen in einer Variablen speicherst, musst Du sicherstellen, dass die Variable aktualisiert wird, um den neuen Namen zu berücksichtigen.

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