Office: Geöffnete Excel-Datei über Makro aktivieren

Helfe beim Thema Geöffnete Excel-Datei über Makro aktivieren in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, ich habe ein Makro geschrieben, durch das Daten aus einer Excel-Datei in eine andere Excel-Datei 'rüber kopiert werden sollen. Das... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von stefhu, 25. Oktober 2008.

  1. Geöffnete Excel-Datei über Makro aktivieren


    Hallo zusammen,

    ich habe ein Makro geschrieben, durch das Daten aus einer Excel-Datei in eine andere Excel-Datei 'rüber kopiert werden sollen. Das Makro wird aus der "Zieldatei" aufgerufen.
    Leider ändert sich der Name der "Zieldatei" bei jedem Aufruf, so dass ich nachstehenden Code nicht mehr verwenden kann:
    _____________________________
    Public Sub Import_los()

    'Führt den Datenimport aus der Exportdatei in das Tabellenblatt DATA des
    'Exceltemplates durch

    Sheets("DataImport").Select
    Range("A1:Z500").Select
    Selection.Copy
    Windows("Excel Analysis Template-2008-10-20-sh-Test1.xlt").Activate
    Range("A1").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False

    End Sub
    ____________________________________

    Im Moment bleibt mein Makro in der Quelldatei stehen, hat dort die zu kopierenden Daten markiert und wartet jetzt darauf, das Ziel zu erfahren.

    Ich suche also nach einer Möglichkeit, eine bereits geöffnete Excel-Datei, deren Namen ich nur teilweise kenne, zu aktivieren, damit ich die (aus einer anderen Datei) kopierten Daten dort in das Sheet "DataImport" einfügen kann.

    Wäre super, wenn ich was hilfreiches von euch hören würde.
    SH

    :)
     
  2. Hi StefHu
    also...
    1.) aktiviere die Mappe, deren Namen Du nur teilweise kennst (Zielmappe)und schreibe den namen in eine Variable
    2.) Schreibe auch den Tabellennamen deiner Quellmappe in eine variable

    nachdem Du diese Mappe aktiviert hast starte Makro
    z.B.
    A=activeworkbook.name 'Zielmappe
    windows(quellmappe).activate
    B=activeworkbook.name 'quellmappe

    jetzt kannst Du mit dem Befehl
    Windows(A).activate (oder Windows(B).activate zwischen diesen hin und herspringen.

    gruß
    DeBabba
    PS.: da das aber ziemlich flackert schalte zuvor die Bildschirmaktuallisierung mit
    Application.screenupdating=False aus
    und am Ende natürlich wieder an
    Application.screenupdating=true
     
    DeBabba, 26. Oktober 2008
    #2
  3. Moin, stefhu,

    statt des Verwendens des Wechselns von Fenstern würde ich mit Objekten arbeiten:

    Code:
    Und man schreibt nicht in eine Vorlage, sondern nur in eine aus der Vorlage erstellte neue Mappe - wozu benötigt man sonst eine *.xlt:
    Code:
     
  4. Geöffnete Excel-Datei über Makro aktivieren

    Hi DeBabba,

    die Quelldatei wird in dem Makro (aus der Zieldatei) durch ein UserForm geöffnet. Ich kann daher leider die Quelldatei vorher nicht einzeln aktivieren.
    Das Gleiche gilt auch für die Quelldatei, da man aus dieser über eine Schaltfläche das Makro startet.
    Ich weiß jedenfalls nicht, wie ich deinen Ansatz in mein Makro einbauen kann.

    Gruß
    Stefhu
     
  5. Hi Jinx,

    habe deinen Vorschlag ausprobiert, bekam aber als Ergebnis ein Sheet in der Quelldatei, in dem keine Daten mehr vorhanden waren sondern nur noch Formate.
    In die Zieldatei bzw. das Zielsheet wurde nichts eingetragen.

    Ich habe dann deinen Code etwas abgeändert:
    ________________________________________________
    Dim wbData As Workbook
    Dim wsData As Worksheet
    Dim wbTarg As Workbook
    Dim wsTarg As Worksheet

    Set wbData = ThisWorkbook 'Mappe mit Code
    Set wsData = wbData.ActiveSheet

    Set wbTarg = ActiveWorkbook 'aktive Mappe in Excel
    Set wsTarg = wbTarg.ActiveSheet

    wsTarg.Range("A1:Z500").Copy
    wsData.Range("A1:Z500").PasteSpecial

    Set wsTarg = Nothing
    Set wbTarg = Nothing
    Set wsData = Nothing
    Set wbData = Nothing
    _________________________________________

    Danach hat es funktioniert! Danke!

    Könntest du mir noch erklären, was die 4 "Set"-Befehle am Ende des Codes bewirken?

    Der Hinweis w/Verwendung einer Mustervorlage ist klar. Wenn ich die .xlt-Datei öffne, ändert Excel ja automatisch (glaube ich zumindest) den Dateinamen und auch die Dateiendung (in .xls). Das war ja auch mein ursprüngliches Problem, weshalb ich den Dateinamen der Zieldatei nicht konkret in dem Makro benennen konnte.

    Gruß
    stefhu
     
  6. Hi StefHu,
    tja da war der Jinx mal wieder schneller (und besser) *cool.gif* *cool.gif*

    Gruß
    DeBabba
     
    DeBabba, 28. Oktober 2008
    #6
  7. Moin, stefhu,

    dann war die Zuweisung der Daten- bzw. Zielmappe bei mir falsch - tut mir leid. Nach einem Wechsel der Zuweisungen sollte das Problem behoben sein, ein Copy&Paste ist IMHO nicht nötig und sollte (wenn eingesetzt) durch ein abschließendes Application.CutCopyMode = False ergänzt werden (hebt den Laufrahmen auf und löscht die Zwischenablage).

    Die letzten Set-Befehle heben die Zuweisung der Objekte wieder auf und geben explizit diese Speicherbereiche wieder frei - Excel soll dies beim Beenden der Prozedur laut Online-Hilfe zwar selbst tun, aber für mich sind diese wenigen Zeilen ein Weg, Excel dazu zu zwingen, auch das zu tun, was man "normalerweise" von VBA erwartet...
     
  8. Geöffnete Excel-Datei über Makro aktivieren

    Hi jinx,

    habe die Zuweisungen geändert. Jetzt funktioniert es einwandfrei, auch ohne copy+paste!

    Nochmal danke.
    stefhu
     
Thema:

Geöffnete Excel-Datei über Makro aktivieren

Die Seite wird geladen...
  1. Geöffnete Excel-Datei über Makro aktivieren - Similar Threads - Geöffnete Excel Datei

  2. Excel VBA zwischen geöffneten Dateien wechseln und schließen.

    in Microsoft Excel Hilfe
    Excel VBA zwischen geöffneten Dateien wechseln und schließen.: Hi zusammen, Meine Arbeitsmappe öffnet via VBA die neueste Datei(auch eine Arbeitsmappe) in einem bestimmten Pfad und öffnet diese. Danach werden Daten hieraus kopiert und in die ursprüngliche...
  3. Excel wird mit einem leeren Bildschirm geöffnet

    in Microsoft Excel Tutorials
    Excel wird mit einem leeren Bildschirm geöffnet: Excel wird mit einem leeren Bildschirm geöffnet Excel für Microsoft 365 Excel 2019 Excel 2016 Mehr... Weniger...
  4. Excel-/Word-/PowerPoint-Datei wird beschädigt, wenn eine Datei geöffnet wird, die ein ...

    in Microsoft Excel Tutorials
    Excel-/Word-/PowerPoint-Datei wird beschädigt, wenn eine Datei geöffnet wird, die ein ...: Excel-/Word-/PowerPoint-Datei wird beschädigt, wenn eine Datei geöffnet wird, die ein VBA-Projekt enthält, oder nachdem ein Makro in einer geöffneten Datei aktiviert wurde Excel für Microsoft 365...
  5. Welcher User hat andere Excel-Datei geöffnet

    in Microsoft Excel Hilfe
    Welcher User hat andere Excel-Datei geöffnet: Hallo, nach mehrstündigem Suchen in vielen Excel-Foren habe ich nichts Passendes gefunden und versuche es jetzt auf diesem Weg. Ich öffne per vba eine andere Excel-Datei (test.xls), die auch von...
  6. Alle geöffneten Excel-Dateien in einem Rutsch speichern und Schliessen

    in Microsoft Excel Hilfe
    Alle geöffneten Excel-Dateien in einem Rutsch speichern und Schliessen: Hallo Wie kann ich alle geöffneten Excel-Dateien (2007) in einem Rutsch speichern und schliessen. Kann mir mal bitte jemand auf die Sprünge helfen?? Gruss Oldfield 280526
  7. excel bleibt bei Datei-schliessen via Makro geöffnet

    in Microsoft Excel Hilfe
    excel bleibt bei Datei-schliessen via Makro geöffnet: Hallo, in meinem aktuellen Projekt arbeite ich mit einer Hauptdatei (Befehlsschaltflächen, Eingabemasken, Vorlagen, Stammdaten) und einer zweiten Datei in der die Masse der Daten gespeichert...
  8. Excel Datei kann nicht geöffnet werden Excel.exe hat Fehler

    in Microsoft Excel Hilfe
    Excel Datei kann nicht geöffnet werden Excel.exe hat Fehler: Hallo Zusammen. Hoffentlich befindet sich ein Office Excel 2000 Experte unter den Lesern der mir helfen kann? Meine wichtigsten Excel Datei mit ca.4950 KB kann ich nicht mehr öffnen, Nach der...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden