Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1236to1240
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
Inhaltsverzeichnis

Worksheet sichern und rücksichern

Worksheet sichern und rücksichern
Georg
Hallo zusammen,
ich habe folgendes Problem / Frage:
1.) Ich speichere jeweils das aktuelle Worksheet unter dem Worksheetnamen ab.
Falls der Name schon existiert, erscheint die Abfrage ob überschrieben werden soll.
Wie kann ich diese Abfrage unterdrücken?
2.) Ich möchte nun über einen Button dieses gesicherte Woksheet wieder in das
Original zurückcopieren und zwar nur, wenn eine Sicherung stattgefunden hat.
Wie kann das realisiert werden?
Für Hilfe wäre ich dankbar.
Gruß
Georg
https://www.herber.de/bbs/user/77546.xls
AW: Worksheet sichern und rücksichern
18.11.2011 15:08:47
guentherh
1) Save statt Save as verwenden
2) eine Globale Variable VersionSaved definieren
Global VersionSaved as Boolean
nach
Activeworkbook.save
noch setzten
VersionSaved = true
und bei deinem Button :
if not VersionSaved is empty then
if VersionSaved then apllication.workbooks.open ...xls
endif
Dann müsste die Abfrage "...eine Datei mit namen ... ist bereits geöffnet ... möchten sie wirklich..."
kommen Die der Anwender bejahen kann.
AW: Worksheet sichern und rücksichern
18.11.2011 16:20:26
Georg
Hallo guentherh,
zu 1) Mit Save wird doch die komplette Arbeitsmappe gespeichert. Ich wollte aber nur
das aktuelle Sheet im aktuellen Verzeichnis der Arbeitsmappe speichern.
Sub Save_Sheet()
Dim sPath As String, strDatei As String
Application.ScreenUpdating = False
sPath = IIf(Right$(ThisWorkbook.Path, 1) = "\", _
ThisWorkbook.Path, ThisWorkbook.Path & "\")
ActiveSheet.Copy
ActiveWorkbook.SaveAs sPath & ActiveSheet.Name & ".xls"
ActiveWorkbook.Close
Application.ScreenUpdating = True
End Sub
Zu 2) Ich komme leider mit Deinen Anweisungen nicht klar (Wie gesagt sehr bescheidene VBA-Kenntnisse)
Vielleicht kannst Du mir ja den fertigen Programmcode zukommen lassen.
Vielen Dank im Vorraus.
Gruß
Georg
Anzeige
AW: Worksheet sichern und rücksichern
18.11.2011 18:06:35
Georg
Hallo guentherh,
setze den Beitrag noch einmal auf offen.
zu 1) Mit Save wird doch die komplette Arbeitsmappe gespeichert. Ich wollte aber nur
das aktuelle Sheet im aktuellen Verzeichnis der Arbeitsmappe speichern.
Sub Save_Sheet()
Dim sPath As String, strDatei As String
Application.ScreenUpdating = False
sPath = IIf(Right$(ThisWorkbook.Path, 1) = "\", _
ThisWorkbook.Path, ThisWorkbook.Path & "\")
ActiveSheet.Copy
ActiveWorkbook.SaveAs sPath & ActiveSheet.Name & ".xls"
ActiveWorkbook.Close
Application.ScreenUpdating = True
End Sub

Zu 2) Ich komme leider mit Deinen Anweisungen nicht klar (Wie gesagt sehr bescheidene VBA-Kenntnisse)
Vielleicht kannst Du mir ja den fertigen Programmcode zukommen lassen.
Vielen Dank im Vorraus.
Gruß
Georg
Anzeige
AW: Worksheet sichern und rücksichern
19.11.2011 16:29:11
Hajo_Zi
Hallo Georg,
wo ist das Problem. Mit dem Code wird nur die Active Tabelle als Datei gespeichert.

AW: Worksheet sichern und rücksichern
19.11.2011 16:40:09
Georg
Hallo Hajo,
ich will ja die Active Tabelle als Datei speichern, jedoch soll dieses ohne Überschreibabfrage
auf eventuell vorhandene Datei erfolgen. (Der angegebene Code ist von mir vorgegeben).
Diese gesicherte Datei möchte ich bei Bedarf wieder zurückcopieren. Dort liegt mein
2.Problem.
Vielleicht kannst Du mir dabei ja helfen.
Dank und Gruß
Georg
AW: Worksheet sichern und rücksichern
19.11.2011 17:06:23
Hajo_Zi
Hallo Georg,
arbeite mit On Error Resum Next und lösche die Datei vorher.
Vieleicht reicht auch schon Application.DisplayAlerts = False ‚ Mitteilungen
Gruß Hajo
Anzeige
AW: Worksheet sichern und rücksichern
19.11.2011 17:31:41
Georg
Hallo Hajo,
Application.DisplayAlerts = False hat das Problem der Sicherung ohne Überschreibabfrage gelöst.
Vielen Dank für Deine schnelle Antwort.
Hast Du auch einen Lösungsvorschlag für mein 2.Problem bezüglich der etwaigen
Rücksicherung dieser Datei in das aktuelle Workbook?
(Gesichert wird ja unter dem Namen des Woksheets. Somit auch die Rücksicherung unter
dem Namen des Worksheets.)
Danke und Gruß
Georg
AW: Worksheet sichern und rücksichern
20.11.2011 16:21:26
Georg
Hallo zusammen,
setze diesen Beitrag noch einmal auf offen, da ich leider noch keinen
Lösungsansatz für das Rücksichern eines gesicherten Worksheets in das aktuelle
Workbook mittels VBA gefunden habe.
(Gesichert wird unter dem Namen des Woksheets. Somit auch die Rücksicherung unter
dem Namen des Worksheets.)
Wäre schön, wenn mir jemand helfen könnte.
Gruß
Georg
Anzeige
AW: Worksheet sichern und rücksichern
21.11.2011 08:58:55
guentherh
Hallo Georg,
bin zurück aus dem Wochenende;
Habe das mt der Rücksicherung mal realisiert,
unter der Voraussetzung, dass keine anderen Blätter auf die behandelte Tabelle verweisen.
(Sonst dürfte man das Blatt nicht löschen und müsste mit Copy und Pastespecial arbeiten)
Workbook.Open initialisiert die Statusvariablen, ob ein Blatt schon gesichert wurde.
Eine zusätzliche Zeile in Save_Sheet um diese zu aktualisieren
Fetch_Sheet löscht dann das aktuelle Blatt und holt die Sicherung
Code in "Diese Arbeitsmappe"
Private Sub Workbook_Open()
For I = 1 To Sheets.Count
Sheetsaved(I) = False
Next
End Sub

Code in Modul1
Global Sheetsaved(1 To 100) As Boolean
Sub Save_Sheet()
Dim sPath As String, strDatei As String
Application.ScreenUpdating = False
Application.DisplayAlerts = False
sPath = IIf(Right$(ThisWorkbook.Path, 1) = "\", _
ThisWorkbook.Path, ThisWorkbook.Path & "\")
ActiveSheet.Copy
ActiveWorkbook.SaveAs sPath & ActiveSheet.Name & ".xls"
ActiveWorkbook.Close
Sheetsaved(ActiveSheet.Index) = True 'hier merken, dass das Blatt gesichert wurde
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
Sub Fetch_Sheet()
Dim sPath As String, strDatei As String
Dim TabName As String, DatName As String
Dim TabIndex As Integer
Application.ScreenUpdating = False
Application.DisplayAlerts = False
sPath = IIf(Right$(ThisWorkbook.Path, 1) = "\", _
ThisWorkbook.Path, ThisWorkbook.Path & "\")
DatName = ActiveWorkbook.Name
TabName = ActiveSheet.Name
TabIndex = ActiveSheet.Index
If Sheetsaved(ActiveSheet.Index) Then
ActiveWindow.SelectedSheets.Delete
Workbooks.Open Filename:=sPath & TabName & ".xls"
Sheets(TabName).Select
Sheets(TabName).Move Before:=Workbooks(DatName).Sheets(TabIndex)
End If
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
Gruß,
Günther
Anzeige
AW: Worksheet sichern und rücksichern
21.11.2011 11:40:16
Georg
Hallo Günther,
erstmal vielen Dank für Deine Nachricht.
Habe leider das Problem, daß anderen Blätter auf die behandelte Tabelle verweisen,
somit müsste mit Copy und Pastespecial gearbeitet werden (Laut Deiner Info).
Könntest Du mir bitte die nötige Codierung zukommen lassen. Wäre nett von Dir.
Bezüglich der Statusvariable habe ich noch folgenden Hinweis:
Das Rücksichern kann auch zu einem späteren Zeitpunkt stattfinden, also
Excel verlassen, erneut aufrufen und dann rücksichern. Somit ist die jeweilige
Statusvariable immer auf FALSE. Sehe ich das richtig ?
Für Info und Rückmeldung wäre ich dankbar.
Gruß
Georg
Anzeige
AW: Worksheet sichern und rücksichern
21.11.2011 12:06:47
guentherh
Hallo Georg,
das mit dem Status Siehst Du richtig.
Reicht es dann, auf die Existenz der "Blatt-Datei" zu prüfen,oder kann die auch von woanders kommen?
Gruß,
Günther
AW: Worksheet sichern und rücksichern
21.11.2011 12:22:18
Georg
Hallo Günther,
es würde reichen auf Existenz zu prüfen, da die Datei ja immer in dem Verzeichnis
des Workbooks liegt (Siehe Sicherung der Datei).
Gruß
Georg
AW: Worksheet sichern und rücksichern
21.11.2011 12:33:40
guentherh
Die Änderungen von vorher bzgl. Status fallen dann weg, und es wird folgendes daraus:
Sub Fetch_Sheet()
Dim sPath As String, strDatei As String
Dim TabName As String, DatName As String
Dim TabIndex As Integer
Application.ScreenUpdating = False
Application.DisplayAlerts = False
sPath = IIf(Right$(ThisWorkbook.Path, 1) = "\", _
ThisWorkbook.Path, ThisWorkbook.Path & "\")
DatName = ActiveWorkbook.Name
TabName = ActiveSheet.Name
TabIndex = ActiveSheet.Index
Set fs = CreateObject("Scripting.FileSystemObject")
If fs.Fileexists(sPath & TabName & ".xls") Then
' ActiveWindow.SelectedSheets.Delete
Workbooks.Open Filename:=sPath & TabName & ".xls"
Sheets(TabName).Cells.Select
Selection.Copy
Workbooks(DatName).Sheets(TabName).Activate
ActiveSheet.Cells.Select
Selection.PasteSpecial Paste:=xlPasteFormulas
End If
Workbooks(TabName & ".xls").Close False
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
Gruß,
Günther
Anzeige
AW: Worksheet sichern und rücksichern
21.11.2011 12:43:25
Georg
Hallo Günther,
vielen Dank für die superschnellen Antworten.
Werde im Laufe des Nachmittags die Codierung ausprobieren.
Gebe Dir dann noch Bescheid. (ca. in 1 Std.)
Gruß
Georg
AW: Worksheet sichern und rücksichern
21.11.2011 13:44:05
Georg
Hallo Günther,
beim Testen bekomme ich die Fehlermeldung beim Ansprechen der Variable 'fs'.
Set fs = CreateObject("Scripting.FileSystemObject")
(Variable nicht definiert)
Gruß
Georg
AW: Worksheet sichern und rücksichern
21.11.2011 14:13:19
guentherh
Dann hast du option explicit an, und ich nicht.
nimm doch ein
Dim fs
zu den Dim-Zeilen hinzu
AW: Worksheet sichern und rücksichern
21.11.2011 15:03:17
Georg
Hallo Günther,
funktioniert so wie ich mir das vorstelle.
Beim Rücksichern bekomme ich nur noch die Fehlermeldung bei
Selection.PasteSpecial Paste:=xlPasteFormulas
das das Blatt geschützt ist. Muss ich das Blatt vorher
mit Unprotect freigeben, oder kann dieses auch im obigen Befehl passieren ?
Für Info wäre ich dankbar. Ansonsten vielen Dank für Deine Hilfe.
Gruß
Georg
Anzeige
AW: Worksheet sichern und rücksichern
21.11.2011 15:51:45
Georg
Hallo Günther,
doch noch eine Frage:
Fehlt bei dem Befehl
Workbooks(TabName & ".xls").Close False
nicht ein '=' Zeichen ?
Gruß
Georg
AW: Worksheet sichern und rücksichern
21.11.2011 16:19:45
guentherh
Hallo Georg,
den Unprotect musst Du explizit setzen, und am Schluss dann wieder den Protect
Ich hatte mal eine Arbeitsmappe in der ich nur ungeschützte Zellen ersetzen musste - dann kann man Zelle für Zelle den Schutz abfragen, das ist aber nochmal komplexer, und dauert deutlich länger.
Es fehlt kein "=", das False ist ein Parameter - ohne Speichern
Gruß,
Günther
AW: Worksheet sichern und rücksichern
21.11.2011 16:44:00
Georg
Hallo Günther,
ok, habe ich wieder etwas dazugelernt.
Nochmals danke und Gruß aus Hamburg
Georg
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige