Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
788to792
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
788to792
788to792
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Datei wurde nicht gespeichert '1004'

Datei wurde nicht gespeichert '1004'
13.08.2006 12:01:31
Stefan
Hallo,
kennt jemand eine Lösung für folg. Effekt.
Per Makro wird ein Tabellenblatt gelöscht, worauf sich danach nicht mehr die Datei speichern lässt.
...
ThisWorkbook.Sheets("Tabelle2").Delete
ThisWorkbook.Save
Laufzeitfehler '1004':
Datei wurde nicht gespeichert.
Gruß, Stefan

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datei wurde nicht gespeichert '1004'
13.08.2006 13:30:03
ChrisL
Hallo Stefan
Ich glaube nicht, dass dein Save-Problem in Zusammenhang mit Delete steht (mach mal eine Trockenübung). Vielleicht ist die Ursache ganz banal z.B. keine Schreibberechtigung. Ansonsten könnte ich mir Vorstellen, dass dein übriger Code zu optimieren wäre z.B. wenn sehr grosse Breiche kopiert werden oder ähnlich.
Manchmal hilft es auch die Mappe zu "säubern" d.h. neue Mappe anlegen und Tabellenblätter, Codes etc. einzeln in die neue Mappe kopieren. Leere Bereiche z.B. Zeile 100:65536 markieren und löschen (ganze Zeile löschen nicht nur Inhalt).
Gruss
Chris
AW: Datei wurde nicht gespeichert '1004'
13.08.2006 14:26:51
Stefan
Hi Chris,
"Schreibschutz" habe ich probiert - der ist's nicht.
"Kopieren" soll erst danach, also nach dem Blatt löschen erfogen. Scheidet also auch aus.
Das verrückte ist, das Makro lief schon mal mit diesem Code.
Hier der Code, fällt DIR dabei etwas auf ?
Sub einlesen()
Dim st_b As Variant, st_z As Variant, st_a As Variant, wks As Worksheet
st_b = Array("05 b d0", "05 b d1", "05 b d2", "05 b d3", "05 b d4", "05 b d5")
st_z = Array("05 d0", "05 d1", "05 d2", "05 d3", "05 d4", "05 d5")
st_a = Array("akt d0", "akt d1", "akt d2", "akt d3", "akt d4", "akt d5")
For Each wks In ThisWorkbook.Sheets
wks.Visible = -1
Next wks
If Application.Dialogs(xlDialogOpen).Show("bestände.xls", False, True) = False Then Exit Sub
ThisWorkbook.Sheets(st_b(0)).Delete
ThisWorkbook.Unprotect
ThisWorkbook.Save
>>> Fehlermeldung Activesheets(1).Move After:=Workbooks(ThisWorkbook.Name).Sheets(ThisWorkbook.Sheets.count)
...
Gruß, Stefan
Anzeige
AW: Datei wurde nicht gespeichert '1004'
13.08.2006 15:27:01
ChrisL
Hallo Stefan
Nein, da fällt mir auch nichts auf. Aber insbesondere weil der Code schonmal lief, würde ich eine neue Mappe nehmen (Stichwort "säubern").
Gruss
Chris
AW: Datei wurde nicht gespeichert '1004'
13.08.2006 15:38:34
Horst
Hi,
der Code kann so ohne Fehlermeldung nicht gelaufen sein.
mfg Horst
@Horst - warum nicht?
13.08.2006 15:46:53
ChrisL
Hallo Horst
Reine Neugier ;-)
Gruss
Chris
AW: @Horst - warum nicht?
13.08.2006 18:02:58
Horst
Hi,
ausprobieren!
mfg Horst
AW: @Horst - warum nicht?
14.08.2006 08:58:25
ChrisL
Hallo Horst
Habe längst ausprobiert und läuft. Oder habe ich die Fehlermeldung übersehen? ;-)
Gruss
Chris
AW: Datei wurde nicht gespeichert '1004'
13.08.2006 19:44:19
Gerd
Hallo Stefan,

Sub einlesen()
Dim st_b As Variant, st_z As Variant, st_a As Variant, wks As Worksheet
st_b = Array("Tabelle6", "05 b d1", "05 b d2", "05 b d3", "05 b d4", "05 b d5")
st_z = Array("05 d0", "05 d1", "05 d2", "05 d3", "05 d4", "05 d5")
st_a = Array("akt d0", "akt d1", "akt d2", "akt d3", "akt d4", "akt d5")
For Each wks In ThisWorkbook.Sheets
wks.Visible = -1
Next wks
If Application.Dialogs(xlDialogOpen).Show("060812.xls", False, True) = False Then Exit Sub
ThisWorkbook.Sheets(st_b(0)).Delete
ThisWorkbook.Unprotect
ThisWorkbook.Save
End Sub

'>>> Fehlermeldung 'Activesheets(1).Move After:=Workbooks(ThisWorkbook.Name).Sheets(ThisWorkbook.Sheets.Count)
Bis dahin läuft dein Code, den ich für meinen Test gerinfügig
abgeändert habe.
Allerdings natürlich nur einmal bzw. solange das "Tabellenblatt6"
existiert.
Wegen ActiveSheet und Move guckt mal in der Hilfe.
Oder schreibe mal nach "...Save",
da wo bei Dir "Fehlermeldung" steht zum Testen
Debug.Print "ActiveWorkbook.Name"
Debug.Print "ActiveSheet.Name"
Debug.Print "Activesheets(1).Name"
Exit Sub
Gruß
Gerd
Anzeige
AW: Datei wurde nicht gespeichert '1004'
13.08.2006 20:42:58
Stefan
Hallo Gerd,
ich komme gar nicht über Thisworkbook.save hinaus. Dort kommt schon die Fehlermeldung.
Wie gehe ich mit den Debug-Anwiesungen um, was bewirken diese?
Gruß, Stefan
AW: Datei wurde nicht gespeichert '1004'
13.08.2006 20:56:43
Gerd
Hallo Stefan,
diese bewirken, dass der Wert des dahinter angegebenen Ausdrucks bzw. Variable
im VBA-Editor im Direktfenster ausgegeben wird.
(im VBA-Editor unter "Ansicht" einzublenden).
P.S. Ist das zu löschende Sheet beim Start des Makros noch vorhanden ?
Gruß
Gerd
AW: Datei wurde nicht gespeichert '1004'
14.08.2006 09:19:26
Stefan
Hallo Gerd,
danke, das ist gut - hab wieder dazu gelernt.
Sehe damit auch, das die Variablen alle richtig belegt sind.
Ich glaube aber nicht, das dort die Ursache liegt. Ich kann problemlos die Plazierung der Befehle verändern, die Verweigerung die Datei speichern zu können kommt grundsätzlich erst nach dem das Blatt gelöscht wurde. Also nach:
ThisWorkbook.Sheets(st_b(i)).Delete
Ja, das Sheet ist noch beim Makrostart vorhanden.
Gruß, Stefan
Anzeige
AW: Datei wurde nicht gespeichert '1004'
14.08.2006 11:28:28
Gerd
Hallo Stefan,
schreibe mal "Unprotect("") vor die Zeile mit "Delete" und wenn Du
ein Passwort vergeben hast, dann " Unprotect("Passworttext") "
Gruß
Gerd
AW: Datei wurde nicht gespeichert '1004'
14.08.2006 11:39:26
Stefan
Hallo Gerd,
:o) das hatte ich schon im Quelltext - ging auch nicht.
Es lässt sich solange speichern bis der .Delete-Befehl abgearbeitet wurde, ab dann nicht mehr. -- unklar, oder --
Sub einlesen()
Dim st_b As Variant, wks As Worksheet
st_b = Array("05 b d0", "05 b d1", "05 b d2", "05 b d3", "05 b d4", "05 b d5")
For Each wks In ThisWorkbook.Sheets
wks.Visible = -1
Next wks
If Application.Dialogs(xlDialogOpen).Show("bestände.xls", False, True) = False Then Exit Sub
ThisWorkbook.Sheets(st_b(0)).Delete
ThisWorkbook.Unprotect
ThisWorkbook.Save
>>> Fehlermeldung
Anzeige
AW: Datei wurde nicht gespeichert '1004'
14.08.2006 12:39:00
Gerd
Hallo Stefan,
nimm mal eine neue Mappe, ohne jeden Schutz, übernehme deinen Code,
kommentiere aber für den Anfang jeden Befehl mit Protect, Unprotect
und Save mit "'" ganz links in den entsprechenden Codezeilen aus
und teste schrittweise.
Gruß
Gerd
AW: Datei wurde nicht gespeichert '1004'
14.08.2006 12:31:03
Stefan
Hallo Gerd,
Problem erkannt.
Hab's auf'nem anderen Rechner laufen lassen und eine aussagefähigere Fehlermeldung erhalten.
Das Problem war:
Es gibt einen Listboxbezug ( .ListFillRange ) auf das zu löschende Blatt, der das Speichern nach dem Blattlöschen, durch den ungültige Bezug verhindert !!!
Trotzdem vielen Dank für Eure Hilfe und Anteilnahme ;o)
Gruß, Stefan.
Anzeige

129 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige