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

Mappe Speichern mit drei Sheets in XLSX

Mappe Speichern mit drei Sheets in XLSX
22.03.2017 20:12:21
Andi

Hallo; Excel VBA Helfer, hallo @ fcs- bräuchte doch noch etwas Hilfe.
Es geht mal wieder um das Speichern- ja es ist das "Public Sub Speichern_in_PDF_XLSX"
Dieses konnte ich dank @fcs sehr guten Anweisungen noch richtig ausbauen.
Es funktioniert alles sehr gut. Eine Abänderung wäre noch Sinnvoll.
Beim Speichern jetzt werden alle Sheets einzeln gespeichert. das war bisher in Ordnung.
Tabelle1 in PDF und XLSX
Deckblatt in PDF und XLSX und
Bearbeiten in XLSX.
Wo müsste ich was verändern, um die Tabelle1, Bearbeiten und das Deckblatt in einer Mappe zu Speichern, als XLSX.
(Reihenfolge wie oben)
Der PDF Rest - Tabelle1 und Deckblatt so belassen- also einzeln.

Public Sub Speichern_in_PDF_XLSX()
Dim varPath As Variant
Dim strDir As String
Dim wkb As Workbook
On Error GoTo Fin
varPath = Application.GetSaveAsFilename( _
InitialFileName:="D:\Elektro Arbeit\", _
FileFilter:="Excel(*.xlsx), *.xlsx", _
Title:="Save as XLSX and PDF")
If Not varPath = False Then
strDir = Left(varPath, InStrRev(varPath, "\"))
Set wkb = ActiveWorkbook
With Application
.ScreenUpdating = False
.DisplayAlerts = False
End With
If Dir(varPath)  "" Then
Select Case MsgBox("Datei überschreiben?", 4 Or 32 Or 0, "Datei")
Case vbYes
wkb.Sheets("Tabelle1").Copy
With ActiveWorkbook
.SaveAs varPath, 51
.ExportAsFixedFormat Type:=xlTypePDF, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=True
.Close False
End With
wkb.Sheets("Deckblatt").Copy
With ActiveWorkbook
.SaveAs strDir & "Deckblatt " & Format(Date, "YYYY-MM") & ".xlsx",  _
51
.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=strDir & "Deckblatt " & Format(Date, "YYYY-MM") & ". _
pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=True
.Close False
End With
wkb.Sheets("Bearbeiten").Copy
With ActiveWorkbook
.SaveAs strDir & "Blatt Bearbeiten " & Format(Date, "YYYY-MM") & ".xlsx",  _
51
End With
End Select
Else
wkb.Sheets("Tabelle1").Copy
With ActiveWorkbook
.SaveAs varPath, 51
.ExportAsFixedFormat Type:=xlTypePDF, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=True
.Close False
End With
wkb.Sheets("Deckblatt").Copy
With ActiveWorkbook
.SaveAs strDir & "Deckblatt " & Format(Date, "YYYY-MM") & ".xlsx", 51
.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=strDir & "Deckblatt " & Format(Date, "YYYY-MM") & ".pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=True
.Close False
End With
wkb.Sheets("Bearbeiten").Copy
With ActiveWorkbook
.SaveAs strDir & "Blatt Bearbeiten " & Format(Date, "YYYY-MM") & ".xlsx",  _
51
'  .ExportAsFixedFormat Type:=xlTypePDF, _
'     Filename:=strDir & "Bearbeiten.pdf", _
'    Quality:=xlQualityStandard, _
'   IncludeDocProperties:=True, IgnorePrintAreas:=True
.Close False
End With
End If
Else
MsgBox "Abgebrochen..."
End If
Fin:
With Application
.ScreenUpdating = True
.DisplayAlerts = True
End With
If Err.Number  0 Then MsgBox "Fehler: " & _
Err.Number & " " & Err.Description
End Sub
Grüsse Andi

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mappe Speichern mit drei Sheets in XLSX
24.03.2017 03:32:10
fcs
Hallo Andi,
hier das angepassteMakro
LG
Franz
Public Sub Speichern_in_PDF_XLSX()
Dim varPath As Variant
Dim strDir As String
Dim wkb As Workbook, wkbCopy As Workbook, bolSpeichern As Boolean
On Error GoTo Fin
varPath = Application.GetSaveAsFilename( _
InitialFileName:="D:\Elektro Arbeit\", _
FileFilter:="Excel(*.xlsx), *.xlsx", _
Title:="Save as XLSX and PDF")
If Not varPath = False Then
strDir = Left(varPath, InStrRev(varPath, "\"))
Set wkb = ActiveWorkbook
With Application
.ScreenUpdating = False
.DisplayAlerts = False
End With
If Dir(varPath)  "" Then
Select Case MsgBox("Datei überschreiben?", 4 + 32 + 0, "Datei")
Case vbYes
bolSpeichern = True
Case Else
GoTo Fin
End Select
Else
bolSpeichern = True
End If
If bolSpeichern = True Then
wkb.Sheets("Tabelle1").Copy
Set wkbCopy = ActiveWorkbook
With wkbCopy
wkb.Sheets("Deckblatt").Copy After:=.Sheets(1)
wkb.Sheets("Bearbeiten").Copy After:=.Sheets(2)
.SaveAs varPath, 51
.Close False
End With
Set wkbCopy = Nothing
With wkb
.Worksheets("Tabelle1").ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=strDir & "Tabelle1 " & Format(Date, "YYYY-MM") & ".pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=True
.Worksheets("Deckblatt").ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=strDir & "Deckblatt " & Format(Date, "YYYY-MM") & ".pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=True
End With
Set wkb = Nothing
End If
Else
MsgBox "Abgebrochen..."
End If
Fin:
With Application
.ScreenUpdating = True
.DisplayAlerts = True
End With
If Err.Number  0 Then MsgBox "Fehler: " & _
Err.Number & vbLf & Err.Description
End Sub

Anzeige
AW:-Läuft- Mappe Speichern mit drei Sheets in XLSX
24.03.2017 14:31:08
Andi
Also @ Fcs franz- Hut ab- das funktioniert tadellos- das hätte ich nicht so hin bekommen... Habe schon einige Befehlszeilen abgeändert- leider nicht mit dem Erfolg- vor allem die Reihenfolge der Speicherung.
Danke für die Mühe.
Grüße Andi
@fcs Speichern mit Datum in XLSX
24.03.2017 19:18:37
Andi
Hallo Franz,
im "Excel- Speicher Vorgang" werden die 3 Sheets mit einem Speichernamen versehen, im Wahlordner abspeichert.
Wenn man zum Speichernamen das Datum und dann erst das .xlsx ´setzen möchte, dann
müsste doch Format(Date, "YYYY-MM") bei .SaveAs varPath, 51 oder bei
strDir = Left(varPath, InStrRev(varPath, "\")) mit rein.
Meine Versuche endeten mit "Methode wird nicht unterstützt.

If bolSpeichern = True Then
wkb.Sheets("Tabelle1").Copy
Set wkbCopy = ActiveWorkbook
With wkbCopy
wkb.Sheets("Deckblatt").Copy After:=.Sheets(1)
wkb.Sheets("Bearbeiten").Copy After:=.Sheets(2)
.SaveAs varPath, 51
.Close False
End With

LG Andi
Anzeige
AW: @fcs Speichern mit Datum in XLSX
25.03.2017 13:25:22
fcs
Hallo Andi,
da du prüfen willst, ob der gewählte Dateiname ggf. überschrieben werden soll muss du schon bei der Namenseingabe/-auswahl im Dateidialog das Datum mit einbauen.
Sieht dann wie folgt aus.
LG
Franz
Public Sub Speichern_in_PDF_XLSX()
Dim varPath As Variant
Dim strDir As String
Dim strDatei As String
Dim wkb As Workbook, wkbCopy As Workbook, bolSpeichern As Boolean
On Error GoTo Fin
Set wkb = ActiveWorkbook
'Vorgabe für Name xlsx-Datei - diese kann natürlich auch anders sein.
strDatei = Left(wkb.Name, InStrRev(wkb.Name, ".") - 1)
strDatei = strDatei & Format(Date, " YYYY-MM") & ".xlsx"
varPath = Application.GetSaveAsFilename( _
InitialFileName:="D:\Elektro Arbeit\" & strDatei, _
FileFilter:="Excel(*.xlsx), *.xlsx", _
Title:="Save as XLSX and PDF")
If Not varPath = False Then
strDir = Left(varPath, InStrRev(varPath, "\"))
With Application
.ScreenUpdating = False
.DisplayAlerts = False
End With
If Dir(varPath)  "" Then
Select Case MsgBox("Datei überschreiben?", 4 + 32 + 0, "Datei")
Case vbYes
bolSpeichern = True
Case Else
GoTo Fin
End Select
Else
bolSpeichern = True
End If
If bolSpeichern = True Then
wkb.Sheets("Tabelle1").Copy
Set wkbCopy = ActiveWorkbook
With wkbCopy
wkb.Sheets("Deckblatt").Copy After:=.Sheets(1)
wkb.Sheets("Bearbeiten").Copy After:=.Sheets(2)
.SaveAs varPath, 51
.Close False
End With
Set wkbCopy = Nothing
With wkb
.Worksheets("Tabelle1").ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=strDir & "Tabelle1 " & Format(Date, "YYYY-MM") & ".pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=True
.Worksheets("Deckblatt").ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=strDir & "Deckblatt " & Format(Date, "YYYY-MM") & ".pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=True
End With
Set wkb = Nothing
End If
Else
MsgBox "Abgebrochen..."
End If
Fin:
With Application
.ScreenUpdating = True
.DisplayAlerts = True
End With
If Err.Number  0 Then MsgBox "Fehler: " & _
Err.Number & vbLf & Err.Description
End Sub

Anzeige
AW: @fcs Speichern mit Datum in XLSX
25.03.2017 18:57:11
Andi
Das ist ja der Hammer-
ich bedanke mich ganz sehr bei @ fcs-Franz.
Super Arbeit- jetzt sogar mit dem Namen der Mappe- und alles mit Datum.
Das bleibt jetzt so- da das Makro nun den Zweck mehr als erfüllt.
Das Makro muss zwar aus dem Blatt Tabelle1 gestartet werden- aber das nehme ich gern in kauf- hat den Vorteil- bevor gespeichert wird- erst noch mal über das Blatt geschaut.
Grüße Andi

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige