AW: Naja, kommt drauf an, was ...
04.02.2008 12:35:25
Chris
Servus Sopie,
Sub Instanz2()
Dim objXL As Object
Dim Pfad As String, nam As String
Pfad = ThisWorkbook.Path & "\test.xls" 'Hier ist der Pfad der zu öffnenden Datei z.B.: "C:\..."
Set objXL = CreateObject("Excel.Application") ' Hier wird eine neue Excelinstanz kreiert
objXL.Visible = True ' sichtbar
objXL.WindowState = -4137 ' Fenstergröße normal
On Error Resume Next ' falls Fehler
objXL.Workbooks.Open Pfad ' die datei test.xls wird in der neuen Instanz geöffnet.
If Err Then objXL.Quit ' bei Fehler schließen
Set objXL = Nothing ' zurücksetzten
Dim objApp As Object ' ab hier greifst du auf die andere Instanz zu
On Error Resume Next
Set objApp = GetObject("C:\Documents and Settings\stadter\Desktop\test.xls") ' Hier muss _
zwingend der Pfad für die Datei test.xls angegeben werden
If Err.Number = 0 Then ' quasi wenn offen, dann
objApp.Sheets(1).Range("A1").Copy ' Hier käme jetzt ein Code, wichtig ist es muss überall _
objApp davorstehen, wenn es in der neuen Instanz geschehen soll (hier kopieren Tabelle1.A1)
objApp.Application.Quit ' nach Code-Ende neue Instanz schließen
Set objApp = Nothing
End If
ThisWorkbook.Sheets(1).Activate ' in der Ursprungsdatei kopierte zelle aus test.xls einfügen
ThisWorkbook.Sheets(1).Range("A1").Select
ActiveSheet.Paste
End Sub
Also es geht viel, wenn man will. ist aber wie gesagt auch etwas umständlich, da du das für alle Dateien so machen musst. Einfacher ist es, die Dateien in Temp unter anderem, eindeutigem Namen zwischenzuspeichern und dann abzuarbiten und danach wieder zu löschen.
Viel Spass
Gruß
Chris