Microsoft Excel

Herbers Excel/VBA-Archiv

Probleme beim Kopieren in anderes Excel

Betrifft: Probleme beim Kopieren in anderes Excel von: Roland
Geschrieben am: 16.09.2014 15:59:14

Hallo zusammen,

ich komme hier leider nicht weiter, hoffentlich kann mir einer von Euch einen Tipp geben. Ich mö _
chte folgendes machen: Es gibt eine Datei Ziel, von der aus ich eine Datei Quelle öffne, Daten _
von Quelle nach Ziel kopiere und anschließend Quelle schließe. Dies funktioniert wie gewünscht. _
Zusätzlich möchte ich aber jetzt noch vor dem schließen ein Tabellenblatt von Ziel nach Quelle kopieren, was mich in den Wahnsinn treibt. Der Teilcode sieht wie folgt aus:

Sub test()
    Dim pfad$, File$
    Dim objQuelleZusammenfassung As Object
    Dim objZielZusammenfassung As Object
    Dim objExcelQuelle As Excel.Application

    'Quell-Exceldatei öffnen
    pfad = "..."
    File = "Test.xlsx"
    Set objExcelQuelle = CreateObject("Excel.Application")
    objExcelQuelle.Workbooks.Open Filename:=pfad & "\" & File
    
    'Kopieren    
    Set objZielZusammenfassung = ThisWorkbook.Sheets("Zusammenfassung")
    Set objQuelleZusammenfassung = objExcelQuelle.Worksheets.Add
    objZielZusammenfassung.Columns(2).Copy
    With objQuelleZusammenfassung
        .Columns(2).PasteSpecial
    End With
    
    'Datei Quelle schließen
    objExcelQuelle.ActiveWorkbook.Close SaveChanges:=True
    objExcelQuelle.Quit
End Sub
Zwei Dinge gehen schief:
1. Die Spalte 2 wird nicht kopiert sondern stattdessen eine Art Grafik angezeigt, die mit '=EINBETTEN("Excel.Sheet.8";"")' versehen ist.
2. Kopiert wird nicht immer die zweite Spalte aus dem Blatt Zusammenfassung, sondern die 2. Spalte des Blattes, welches beim Start des Makros sichtbar ist.

Könnt Ihr mir bitte helfen?

Danke
Roland

  

Betrifft: AW: Probleme beim Kopieren in anderes Excel von: Luschi
Geschrieben am: 16.09.2014 21:13:41

Hallo Roland,

versuch es mal so:

Sub test()
    Dim pfad$, File$
    Dim objQuelleZusammenfassung As Worksheet
    Dim objZielZusammenfassung As Worksheet
    'Dim objExcelQuelle As Application
    'ein neues Objekt für die Arbeitsmappe, die man öffnen will
    Dim objExcelQuelleWB As Workbook
    
    'Quell-Exceldatei öffnen
    pfad = "..."
    File = "Test.xlsx"
    'Wozu eine Extra-Instanz von Excel innerhalb von Excel
    'Sowas benutzt man, wenn man von Excel aus Word / Outlook / Powerpoint usw. öffnen will
    'Set objExcelQuelle = CreateObject("Excel.Application")
    
    'Dateien aus denen man nur kopiert, schreibgeschützt öffnen
    'das ist WICHTIG, damit die geöffneten Excel-Datei durch ein Objekt angesprochen werden  _
kann
    Set objExcelQuelleWB = Application.Workbooks.Open(Filename:=pfad & "\" & File, ReadOnly:= _
True)
    
    'Kopieren
    Set objZielZusammenfassung = ThisWorkbook.Sheets("Zusammenfassung")
    Set objQuelleZusammenfassung = objExcelQuelleWB.Worksheets.Add
    objZielZusammenfassung.Columns(2).Copy
    With objQuelleZusammenfassung
        .Columns(2).PasteSpecial
    End With
    
    'Datei-Quelle schließen & NICHT speichern!!!
    objExcelQuelleWB.Close SaveChanges:=False
    'Excel-Application beenden - nicht erforderlich
    'objExcelQuelle.Quit
    'ein bischen die Objekt-Variablen aufräumen!°
    Set objQuelleZusammenfassung = Nothing
    Set objZielZusammenfassung = Nothing
    Set objExcelQuelleWB = Nothing
End Sub
Gruß von Luschi
aus klein-Paris


  

Betrifft: AW: Probleme beim Kopieren in anderes Excel von: Roland
Geschrieben am: 17.09.2014 08:08:04

Hallo Luschi,

ohne eigene Instanz hat es geklappt.

Danke!
Roland


  

Betrifft: AW: Probleme beim Kopieren in anderes Excel von: Roland
Geschrieben am: 17.09.2014 08:09:19

Hallo Luschi,

ohne eigene Instanz hat es geklappt.

Danke!
Roland


 

Beiträge aus den Excel-Beispielen zum Thema "Probleme beim Kopieren in anderes Excel"