Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1720to1724
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

SaveCopyAs ?

SaveCopyAs ?
30.10.2019 12:33:00
Bernhard
Hallo Experten,
ich möchte eine Datei bei der ersten Speicherung als Kopie mit einem Namensvorschlag, der (z.B.) aus der Zelle A1 generiert wird, speichern. Die Ausgangsdatei soll unverändert geschlossen werden. Ich möchte also das, was bei der Speicherung einer schreibgestützten Datei passiert erzeugen, nur mit einem Namensvorschlag.
Habe nach Recherche mit ActiveWorkbook.SaveAs und SaveCopyAs herumprobiert, aber ohne Erfolg.
Gibt es dafür einen geeigneten Befehl ?
Mit freundlichen Grüßen
Bernhard

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: SaveCopyAs ?
30.10.2019 13:32:30
Nepumuk
Hallo Bernhard,
so eventuell?
Public Sub Beispiel()
    Dim objFileDialog As FileDialog
    Set objFileDialog = Application.FileDialog(msoFileDialogSaveAs)
    With objFileDialog
        .FilterIndex = 2 '2 = .xlsm
        .InitialFileName = ThisWorkbook.Path & "\" & Tabelle1.Cells(1, 1).Text
        If .Show Then Call .Execute
    End With
End Sub

Gruß
Nepumuk
Anzeige
AW: SaveCopyAs ?
30.10.2019 19:28:34
Bernhard
Hallo Nepumuk,
vielen Dank !
Wo schreibe ich das hin ? Habe keine Erfahrung mit "Public Sub"
Gruß Bernhard
AW: SaveCopyAs ?
30.10.2019 19:51:37
Nepumuk
Hallo Bernhard,
ich weiß nicht wie du das haben willst. Beim Versuch des "normalen" Speicherns der schreibgeschützten Datei, über einen Button oder wie? Du schriebst "beim 1. speichern" was soll ich darunter verstehen?
Gruß
Nepumuk
AW: SaveCopyAs ?
30.10.2019 22:11:12
Bernhard
Hallo Nepumuk,
sorry, meine Worte waren etwas nebulös. Wahrscheinlich ist es ganz hilfreich zu sagen, was ich eigentlich damit erreichen will:
Die Ausgangsdatei ist eine etwas komplexe Eingabemaske, die von zahlreichen Nutzern verwendet wird. Wenn die Nutzer ihren Datensatz speichern, kreieren sie Dateinamen, die sie passend finden und halten sich eher nicht so genau an die vereinbarte Namensgebung.
Deshalb soll der richtige Name bei der Speicherung vorgeschlagen werden. Ich erspare dir Details und sage mal, dass er sich z.B. aus der Zelle A1 ableiten soll.
Es geht mit dabei nur um die erstmalige Speicherung der Datei. Danach ist es egal. Der Status "noch nicht gespeichert" soll in einer Zelle erkennbar sein, deren Ausgangswert 0 ist und nach erster Speicherung auf 1 gesetzt wird. So hatte ich mir das ausgedacht.
Gruß Bernhard
Anzeige
AW: SaveCopyAs ?
31.10.2019 09:53:29
Nepumuk
Hallo Bernhard,
dann rufe aus deinem Formular einfach diese Routine auf. Die Tabellennamen und Zellen musst du natürlich anpassen.
Public Sub Speichern()
Dim objFileDialog As FileDialog
Set objFileDialog = Application.FileDialog(msoFileDialogSaveAs)
With objFileDialog
.FilterIndex = 2 '2 = .xlsm
.InitialFileName = ThisWorkbook.Path & "\" & Tabelle1.Cells(1, 1).Text
If .Show Then
Call .Execute
Tabelle1.Cells(2, 1).Value = 2
End If
End With
End Sub

Gruß
Nepumuk
AW: SaveCopyAs ?
31.10.2019 14:10:45
Bernhard
Hallo Nepumuk,
ich habe nicht erwähnt, dass ein Sub Workbook Before Save mit ein paar Vorgängen vorhanden ist.
Macht das was ? Wahrscheinlich schon, oder ?
Wo schreibe ich es unter diesen Bedingungen hin ?
Gruß Bernhard
Anzeige
AW: SaveCopyAs ?
31.10.2019 14:44:20
Nepumuk
Hallo Bernhard,
lass mich mal den Code sehen.
Gruß
Nepumuk
AW: SaveCopyAs ?
31.10.2019 21:40:41
Bernhard

Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim wks1 As Worksheet
Set wks1 = Worksheets("Therapieplan")
If wks1.Cells(4, 55) = 1 Then
wks1.Cells(1, 52) = ""
wks1.Cells(2, 4) = ""
wks1.Cells(1, 17) = ""
wks1.Cells(2, 10) = ""
wks1.Cells(1, 2) = ""
wks1.Cells(1, 10) = ""
End If
wks1.Cells(3, 53) = 1
'Abschliessend Benutzeransicht auf Standard
Worksheets("Therapieplan").Select
wks1.Cells(4, 53) = 0
End Sub

AW: SaveCopyAs ?
02.11.2019 10:10:11
Nepumuk
Hallo Bernhard,
ruf einfach diese Routine auf:
Option Explicit

Public Sub Speichern()
    Dim objFileDialog As FileDialog
    If ThisWorkbook.ReadOnly Then
        With Worksheets("Therapieplan")
            .Cells(1, 52).Value = Empty
            .Cells(2, 4).Value = Empty
            .Cells(1, 17).Value = Empty
            .Cells(2, 10).Value = Empty
            .Cells(1, 2).Value = Empty
            .Cells(1, 10).Value = Empty
            .Cells(3, 53) = 1
            .Cells(4, 53) = 0
            'Abschliessend Benutzeransicht auf Standard
            Call .Select
        End With
        Set objFileDialog = Application.FileDialog(msoFileDialogSaveAs)
        With objFileDialog
            .FilterIndex = 2 '2 = .xlsm
            .InitialFileName = ThisWorkbook.Path & "\" & Cells(1, 1).Text 'Anpassen !!!
            If .Show Then
                Cells(4, 55).Value = 2 'notwendig ?
                Application.EnableEvents = False
                Call .Execute
                Application.EnableEvents = True
            End If
        End With
    Else
        ThisWorkbook.Save
    End If
End Sub

Gruß
Nepumuk
Anzeige
AW: SaveCopyAs ?
03.11.2019 18:19:24
Bernhard
Hallo Nepumuk,
vielen Dank für Deine Hilfe !
Gruß Bernhard
AW: SaveCopyAs ?
31.10.2019 21:42:31
Bernhard

Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim wks1 As Worksheet
Set wks1 = Worksheets("Therapieplan")
If wks1.Cells(4, 55) = 1 Then
wks1.Cells(1, 52) = ""
wks1.Cells(2, 4) = ""
wks1.Cells(1, 17) = ""
wks1.Cells(2, 10) = ""
wks1.Cells(1, 2) = ""
wks1.Cells(1, 10) = ""
End If
wks1.Cells(3, 53) = 1
'Abschliessend Benutzeransicht auf Standard
Worksheets("Therapieplan").Select
wks1.Cells(4, 53) = 0
End Sub

AW: SaveCopyAs ?
01.11.2019 23:45:49
Bernhard
Hallo Nepumuk,
kann ich den von Dir erstellten Code unter diesen Bedingungen (s. Code in vorheriger Nachricht) über Workbook_BeforeSave aufrufen ?
Gruß Bernhard
Anzeige

82 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige