Office: Daten von einer 2. Excelinstanz übernehmen

Helfe beim Thema Daten von einer 2. Excelinstanz übernehmen in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, Kurze Vorgeschichte: Ich muss ca. 4000 Datensätze eines externen Programms auswerten. Zum Glück hat das Programm eine... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Costi, 1. Juli 2008.

  1. Daten von einer 2. Excelinstanz übernehmen


    Hallo zusammen,
    Kurze Vorgeschichte:
    Ich muss ca. 4000 Datensätze eines externen Programms auswerten. Zum Glück hat das Programm eine Export-Schnittstelle und erzeugt "echte" Exceldaten - keine CSV-Datei.
    Mein Vorhaben ist es, diese erzeugte Tabelle in meine bereits vorhandene Arbeitsmappe hineinzukopieren. In dieser Mappe befinden sich schon alle Statistik-Routinen, Druckausgaben, Diagramme etc. Ich muss also nur den Datenbestand, der sich auf einem Arbeitsblatt befindet durch den neuen ersetzen. Der Rest der Auswertung geschieht dann automatisch.

    Das externe Programm startet immer eine zweite Excelinstanz und zeigt die Daten an. Eine Speicherung findet nicht statt, die erzeugte Datei befindet sich also nur im RAM...

    Wie bekomme ich jetzt dieses angezeigte Arbeitsblatt aus der 2. Excelinstanz
    auf ein bestimmtes Arbeitsblatt in meiner geöffneten Mappe der 1. Excelinstanz??

    Bislang habe ich das "zu Fuß" gemacht, also Copy/Paste. Würde das aber gern über einem Button in der bestehenden Mappe realisieren... nur finde ich irgendwie keinen Ansatz*rolleyes.gif* Vielleicht liegts auch am Wetter...*rolleyes.gif* *wink.gif*

    Schöne Grüße
    Costi

    :)
     
    Costi, 1. Juli 2008
    #1
  2. OfficeUser Neuer User
    Hallo Costi,

    versuche es mal mit diesem auf die Schnelle konstruierten Code :

    VBA-Code:
    Sub KopierenAusAndererExcelInstanz()
        '03.07.2008, NoNet - www.excelei.de
        Dim wbAktWB As Workbook, wbExtWB As Workbook
        Dim xlApp As Excel.Application

        Set wbAktWB = ActiveWorkbook                    'Die aktuelle Mappe
        Set xlApp = GetObject(, "Excel.Application")    'die andere Instanz
        Set wbExtWB = xlApp.Workbooks(1)                'die 1. Mappe der anderne Instanz

        wbExtWB.Sheets(1).Cells.Copy                    'Zellen der anderen Mappe aus 1. Sheet kopieren
        wbAktWB.Sheets(1).Paste                         'In das 1.Sheet der aktuellen Mappe einfügen

        Set xlApp = Nothing                             'Variable wieder freigeben
        Set wbAktWB = Nothing                           'Variable wieder freigeben
    End Sub

    Code eingefügt mit Syntaxhighlighter 4.15
    Bei mir hat das einwandfrei funktioniert (2 Excel-Instanzen : 1.Instanz enthält 3 geöffnete Mappen, 2.Instanz nur eine Mappe).
    Es wird immer aus der 1.Instanz in die aktuelle Mappe der Instanz kopiert, die den Code enthält.
    D.h. : Du musst zuerst die Export-Datei öffnen und dann in einer neuen Instanz die Mappe, in die kopiert werden soll *rolleyes.gif*
    Besonders praktikabel ist das natürlich nicht - daher nur ein erster Ansatz. Evtl. gibt es eine Möglichkeit per API den windows Handle (hWnd) zu ermitteln und damit aus der 2. Instanz in die erste zu kopieren !?!?!? Aber damit kenne ich mich leider nicht wirklich aus....

    Viel Erfolg.
     
    OfficeUser, 3. Juli 2008
    #2
  3. Hallo NoNet,
    ich werde es mal austesten. Sieht "optisch" schon mal gut aus und klingt logisch...*Smilie

    Sobald ich getestet habe, gibts natürlich Feedback, logo!

    Danke schon mal für die Mühe!
    Schöne Grüße
    Costi
     
    Costi, 3. Juli 2008
    #3
  4. Daten von einer 2. Excelinstanz übernehmen

    Hallo NoNet,

    hat mir keine Ruhe gelassen und musste es doch mal auf die Schnelle ausprobieren*Smilie

    Funktioniert prima! Muss mal schauen, wie ich es hinbekomme, dass er mir beim Start der eigentlichen Statistik-Mappe prüft, ob die erste Instanz bereits geöffnet ist... und was passiert, wenn mehrere Mappen auf sind...?? Fragen über Fragen *Smilie

    Aber der Ansatz hilft mir schon mal eine Menge weiter!
    Vielen Dank dafür!

    Schöne Grüße!
    Costi
     
    Costi, 3. Juli 2008
    #4
  5. OfficeUser Neuer User
    \@NoNet

    Man kann natürlich auch auf eine zweite (o. mehr) Instanz zugreifen.

    Weiß man wie die Mappe heißt, dann z.B. so ...

    VBA-Code:
    Sub t()
        Dim wbExtWB As Workbook
        Set wbExtWB = GetObject("C:\Export.xls")
        wbExtWB.Sheets(1).Cells.Copy
        ThisWorkbook.Sheets(1).Paste
        Set wbExtWB = Nothing
    End Sub

    Code eingefügt mit Syntaxhighlighter 4.16

    Liegt die Mappe "im Speicher" (und sie heißt Mappe1), dann z.B. so ...

    VBA-Code:
    Sub t()
        Dim wbExtWB As Workbook
        Set wbExtWB = GetObject("Mappe1")
        wbExtWB.Sheets(1).Cells.Copy
        ThisWorkbook.Sheets(1).Paste
        Set wbExtWB = Nothing
    End Sub

    Code eingefügt mit Syntaxhighlighter 4.16

    Und sollte das alles nicht funzen. kann man auch durch die ROT iterieren. Das wird dann aberetwas aufwändiger.
     
    OfficeUser, 3. Juli 2008
    #5
  6. Hallo Thomas, hallo NoNet,
    danke für den Hinweis mit der direkten Ansprache der Mappe!
    In meinem Fall kann ich das so aufbauen, da die erzeugte Export-Datei immer "Mappe1" heißt... Hat gegnüber NoNets Ansatz den Vorteil, dass es egal ist, ob die Export- oder die eigentliche Auswertungstabelle zuerst gestartet wird.

    Ich habe das jetzt auch mit einem Import-Button in meinem Sheet realisiert und es funktioniert einwandfrei (beide Codes).

    Ihr habt mir in jedem Fall beide sehr weitergeholfen! Dafür ein dickes Danke!
    Schöne Grüße und ein schönes Wochenende!

    Costi

    P.S.: @Thomas: Was hat es damit auf sich??*confused.gif*
     
    Costi, 3. Juli 2008
    #6
  7. Hallo Costi,

    ROT = Running Object Table

    Google mal danach. Mit VBA kann aber nicht so einfach darauf zugreifen.
     
    Thomas Risi, 3. Juli 2008
    #7
  8. Daten von einer 2. Excelinstanz übernehmen

    Hallo Thomas,
    danke für die Info. Habe den Begriff bis dato noch nie gehört und das Kürzel schon mal gar nicht...*wink.gif* Man lernt nie aus*top
    Werde mir das mal bei Gelegenheit näher anschauen, hab aber zumindest schon mal verstanden, was es überhaupt ist *Smilie

    Grüße
    Costi
     
    Costi, 3. Juli 2008
    #8
Thema:

Daten von einer 2. Excelinstanz übernehmen

Die Seite wird geladen...
  1. Daten von einer 2. Excelinstanz übernehmen - Similar Threads - Daten Excelinstanz übernehmen

  2. Daten Einlesen aus mehre Zellen in Verbindung einer Verbundene Zelle

    in Microsoft Excel Hilfe
    Daten Einlesen aus mehre Zellen in Verbindung einer Verbundene Zelle: Moin Allerseits, mit Verlaub ich bin seit 5 Jahren aus der Materie raus, fange somit von Vorne an. Frage: Anpassung eines bereits Geschrieben Codes. Verwendete Elemente: Quelle> Tabelle "wsLK",...
  3. Excel icon fehlt

    in Microsoft Excel Hilfe
    Excel icon fehlt: Hallo zusammen ich habe das Icon aus Datei nicht um Daten abzurufen [ATTACH] was kann ich tun? bei Daten zusammenführen ist es vorhanden - ich möchte eigentlich alle Tabellenblätter in eine...
  4. Excel Zusammenführen

    in Microsoft Excel Hilfe
    Excel Zusammenführen: Guten Tag Sub Tabelle_zusammenführen() Dim i As Integer Dim Zusammenfassung As Worksheet Dim BereichZielTab As Range Set Zusammenfassung = Worksheets("Zusammenfassung") For i = 2...
  5. Arr sind Null obwohl Daten vorhanden sind

    in Microsoft Excel Hilfe
    Arr sind Null obwohl Daten vorhanden sind: Hallo zusammen Erst mal frohe Festtage ;-) Ich hab ein Problemchen... In einer Abfrage eröffne ich mit einem "Connection.Open..:" eine Query Anschliessend mit rs.Open,(vobei mein RS ein...
  6. Datum markieren und Daten ausblenden

    in Microsoft Excel Hilfe
    Datum markieren und Daten ausblenden: Hallo zusammen Ist es möglich, in der angehängten Tabelle, jeweils Ende Monat einen Datumsstrich einzufügen, wie jetzt der roter, der manuell eingefügt ist? Und wenn ja: wenn in der Spalte A eine...
  7. Daten-Import inkl. Primärschlüssel

    in Microsoft Access Hilfe
    Daten-Import inkl. Primärschlüssel: Hallo! Ich habe eine Accesstabelle, die ich in Sharepoint importieren möchte, brauche jedoch auch die - gleichen - IDs, die zugleich auch als Primärschlüssel fungieren und ich diese als...
  8. Daten in anderes Tabellenblatt übertragen

    in Microsoft Excel Hilfe
    Daten in anderes Tabellenblatt übertragen: Hallo, ich stelle mir folgendes vor: Ich trage in das Tabellenblatt 1 in die Felder A1 - A8 Werte ein. Diese Werte sollen dann in das Tabellenblatt 2 in die nächste freie Zeile übertragen werden....
  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