xyz.Activesheet.saveas strPfadName - geht nicht

08/06/2010 - 14:01 von Oliver Vincenz | Report spam
Hallo,

ich betreue eine Access-Anwendung. BS = XP Pro auf meinen beiden
Rechnern, einer mit Office 2003 und einer mit Office 2007. Die Anwendung
wurde bereits im letzten Jahrtausend mit Access 97 erstellt und làuft
produktiv unter 2003 & 2007.

Es geht darum, das eine statistische Auswertung in einer Excel-Tabelle
gespeichert werden soll. Folgendes passiert (vereinfacht dargestellt) im
Programm:

1. Das Programm berechnet die statistischen Werte.

2. Es ruft eine Excel-Vorlage auf:
Set xyz = GetObject("c:\vorlage.xls", "Excel.sheet")
xyz.Activesheet.unprotect

3. Die Vorlage wird befüllt:
xyz.Activesheet.cells(10,15).Value = intWert1
.
.
.

4. Die Vorlage wird ausgedruckt:
xyz.Activesheet.PrintOut

5. Die berechneten Werte sollen in einer Kopie gespeichert werden:
strPfadName = "c:\kopie.xls"
xyz.Activesheet.saveas strPfadName

6. Die Vorlage wird ungespeichert geschlossen:
Set xyz = Nothing

Das Ergebnis ist, dass die mit den Werten befüllte Vorlage ausgedruckt
wurde. Danach wurde sie wieder geschlossen, ohne die Änderungen zu
speichern, damit die Vorlage wiederverwendet werden kann. Alles Prima
bis hierhin!

Die Datei c:\kopie.xls wurde tatsàchlich angelegt, aber sie enthàlt kein
Tabellenblatt, sondern sie ist leer. Das ist so nicht gewollt!

Ich habe das Programm nicht geschrieben. Der Entwickler ist nicht mehr
verfügbar. Ob es früher mal unter A97 funktioniert hat, kann ich nicht
sagen. Aktuell erhalte ich in 2003 und 2007 nur leere Excel-Dateien ohne
Datenblàtter.

Hat jemand eine Idee?

Gruß

Oliver
 

Lesen sie die antworten

#1 Michael Alexander
08/06/2010 - 17:03 | Warnen spam
Hallo Oliver!

"Oliver Vincenz" schrieb im Newsbeitrag
news:hulbcq$f24$
Hallo,

ich betreue eine Access-Anwendung. BS = XP Pro auf meinen beiden Rechnern,
einer mit Office 2003 und einer mit Office 2007. Die Anwendung wurde
bereits im letzten Jahrtausend mit Access 97 erstellt und làuft produktiv
unter 2003 & 2007.

Es geht darum, das eine statistische Auswertung in einer Excel-Tabelle
gespeichert werden soll. Folgendes passiert (vereinfacht dargestellt) im
Programm:

1. Das Programm berechnet die statistischen Werte.

2. Es ruft eine Excel-Vorlage auf:
Set xyz = GetObject("c:\vorlage.xls", "Excel.sheet")
xyz.Activesheet.unprotect

3. Die Vorlage wird befüllt:
xyz.Activesheet.cells(10,15).Value = intWert1
.
.
.

4. Die Vorlage wird ausgedruckt:
xyz.Activesheet.PrintOut

5. Die berechneten Werte sollen in einer Kopie gespeichert werden:
strPfadName = "c:\kopie.xls"
xyz.Activesheet.saveas strPfadName

6. Die Vorlage wird ungespeichert geschlossen:
Set xyz = Nothing

Das Ergebnis ist, dass die mit den Werten befüllte Vorlage ausgedruckt
wurde. Danach wurde sie wieder geschlossen, ohne die Änderungen zu
speichern, damit die Vorlage wiederverwendet werden kann. Alles Prima bis
hierhin!

Die Datei c:\kopie.xls wurde tatsàchlich angelegt, aber sie enthàlt kein
Tabellenblatt, sondern sie ist leer. Das ist so nicht gewollt!




Erstens würde ich eine xlt als vorlage nehmen, keine vorlage.xls

Dann sollte bei es immer eine neue Datei auf Basis der Vorlage sein.

Mit .ActiveWorkbook.SaveAs FileName:=strPfadName sollte es dann gehen.

nicht mit Activesheet sondern mit ActiveWorkbook.

Gruß
Michael

Ähnliche fragen