Microsoft Excel

Herbers Excel/VBA-Archiv

Ausgelesene Exceldatei speichern!

Betrifft: Ausgelesene Exceldatei speichern! von: Botti
Geschrieben am: 20.08.2008 18:28:01

Hallo,

folgendes Problem:

Ich lese mit Hilfe eines Makro von der Datei A die Datei B aus... Dabei untersucht das Makro ob ein bestimmtes Sheet in einer Reihe von Sheets an einer bestimmten Stelle ist und verschiebt es für den negativen Fall an die richtige Stelle/Position. Soweit so gut.....mehr muss man zunächst nicht wissen.

Jetzt das Problem: Wenn das Makro die Sheetposition überprüft hat soll es die Datei abspeichern und verschieben. Hier ein Auszug aus meinem Code:

Sub sub_SortFiles()
Dim fs, f, f1, fc, strErr, oExcel, oSheet
Dim r, sCase, sPath, sTargetFolder As String

sPath = func_SetPath()
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.Getfolder(sPath)
Set fc = f.Files
On Error GoTo fehler

strErr = "Can't open Excel Application."
Set oExcel = CreateObject("Excel.Application")

For Each f1 In fc
If Left(f1.Name, 3) <> "0_S" Then


strErr = "Can't open file " & f1
oExcel.Workbooks.Open f1

Set oSheet = oExcel.Sheets(1)

If oExcel.Worksheets(1).Range("M2") = "" Then
oExcel.Worksheets(2).Move before:=oExcel.Worksheets(1)
Set oSheet = oExcel.Sheets(1)
End If

If oSheet.Name <> "Vestas" And oSheet.Name <> "NEG Micon - WW" Then
sTargetFolder = "\unknown\"
oExcel.Workbooks.Close
fs.movefile f1, sPath & sTargetFolder & f1.Name
Else
End If


Set oSheet = Nothing

strErr = "Unknown error"

oExcel.Workbooks.Close

Das Problem ist nun, dass wenn das Makro läuft er immer fragt ob ich die Änderung speichern möchte. Das muss ich aber automatisiern mit irgendeinem .Save befehl!

Aber:
oExcel.Workbooks.Save geht nicht
oExcel.Workbooks.Close savechanges:=true geht nicht
oExcle.save geht nicht (da kommt immer die Fehlermeldung: "Die Date Resume.xlw besteht schon....."

Was kann ich machen?

Danke für Eure Hilfe!!!!

  

Betrifft: AW: Ausgelesene Exceldatei speichern! von: Uduuh
Geschrieben am: 20.08.2008 20:01:33

Hallo,
warum arbeitest du in einer 2. Instanz?
versuchs mal mit
Set oWkb=oExcel.Workbooks.Open f1
...
...
oWkb.close true

Gruß aus’m Pott
Udo