Clever-Excel-Forum

Normale Version: Tabellenblattexport + Import in bzw. aus geschlossener Datei - Importprobleme
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo liebe VBA Cracks,

ich habe ein kleines Programm (Tabellenexport) geschrieben, welches ein aktives Tabellenblatt in die geschlossene Datei Speicher.xls verschiebt. Das Programm funktioniert einwandfrei. Was mir nicht gelingt ist der umgekehrte Fall. Ich möchte die in der Datei Speicher.xls abgespeicherten Tabellenblätter jeweils einzeln wieder in meine aktive Exceldatei einbinden.

Wer von Euch Experten weiß wie der Code dazu aussehen müsste?

Code:
Option Explicit

Sub Tabellenblattexport()
   'Exportiert das jeweils aktive Tabellenblatt in die Datei Speicher.xls
  
   Dim CopyFrom As Object
   Dim CopyTo As Object
   Dim CopyThis As Object
   Dim vbName As String
   Dim vbWas As Variant
   Dim xl As Object
  
   Set xl = CreateObject("Excel.Application")
   xl.Visible = False
  
   vbWas = ActiveSheet.Index
   vbName = ThisWorkbook.FullName
  
   Set CopyFrom = xl.Workbooks.Open(vbName)
   Set CopyThis = CopyFrom.Sheets(vbWas)
   Set CopyTo = xl.Workbooks.Open("C:\Test\Speicher.xls")
  
   CopyThis.Copy After:=CopyTo.Sheets(CopyTo.Sheets.Count)
  
   CopyTo.Save
   CopyTo.Close
   CopyFrom.Close
  
   Application.DisplayAlerts = False
   Sheets(vbWas).Delete
   Application.DisplayAlerts = True
  
End Sub


19:15 Uhr:
Code strukturiert dargestellt durch 3. Button von rechts im Beitragsformular: #
Moderator
[Bild: smilie.php?smile_ID=1810]
Erstmal Hallo
das Problem ist bei Sehschwachen;Nichtkennern den/die Codezeilen zu betrachten, deswegen siehe hier:
photo Raute_zps3ee56209.jpg

Nicht maßregelnd nur hinweisgebend.

man liest sich ... :21:
Hallo ratrad,
Was geht denn nicht?
Im Prinzip hast Du in Deinem Code alles nötige drin. Beim Import muss jedoch die Reihenfolge der Aktionen und Zuweisungen überdacht und korrigiert werden.
Hallo Andre,
den Code umzudrehen war natürlich meine erste Idee. Ich will also das Tabellenblatt Erik aus der Excel Datei Speicher.xls in meine aktuelle Dateie importieren. Das sieht dann so aus:

Code:
vbWas = "Erik"
vbName = ThisWorkbook.FullName
vbDatei = "C:\Verzeichnis\Speicher.xls"

Set CopyFrom = xl.Workbooks.Open("C:\Verzeichnis\Speicher.xls")
Set CopyThis = CopyFrom.Workbooks.Sheets(vbWas)
Set CopyTo = xl.Workbooks.Open(vbName)

Dann stoppt der Compiler bei dieser Zeile und ich weiß nicht wieso:
Set CopyThis = CopyFrom.Workbooks.Sheets(vbWas)

Ich verzweifel langsam an der ganzen Sache
Hallo ratrad,
da hast Du was doppelt gemoppelt. Excel hat ein Problem, weil Du das Workbook-Objekt nun zwei mal verwendest. CopyFrom ist ja das Workbook. Also nur
Set CopyThis = CopyFrom.Sheets(vbWas)