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

Einzelne Dateien aus Arbeitsmappen erstellen

Einzelne Dateien aus Arbeitsmappen erstellen
26.07.2017 22:45:30
VBA-Novize
Hallo zusammen,
ich habe eine Datei mit ca. 20 Arbeitsmappen.
Nun benötige ich ein VBA-Makro, um „per Knopfdruck“ ausgewählte Arbeitsmappen (alle, außer das Deckblatt und die ausgeblendeten Arbeitsmappen) in jeweils einzelne Excel-Dateien (ohne Formeln, nur Werte) abzuspeichern (xlsx). Der Dateiname soll gleich dem Namen der jeweiligen Arbeitsmappe sein - vorangestellt das aktuelle Datum. Zielordner soll der Ordner der Ursprungsdatei sein.
Kann mir hier jemand als VBA-Anfänger helfen?
Vielen Dank bereits im Voraus.
Gruß,
VBA-Novize

25
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
was meinst du wirklich?
26.07.2017 23:11:49
Tino
Hallo,
eine Excel-Datei mit 20 Tabellen?
Arbeitsmappe = eine Datei!
Nur die ausgewählten
oder doch alle außer das Deckblatt(welches ist das?) und die ausgeblendeten?
Gruß Tino
AW: was meinst du wirklich?
26.07.2017 23:19:58
MatthiasG
Hi Tino,
ich habe es schlampig gelesen und deshalb so interpretiert, dass er die Blätter in separaten Mappen haben will.
Novizen haben da oft eine ungenaue Sprache (Mappen, Blätter,..) :-)
Gruß Matthias
daher auch die Nachfrage! Fragen kostet nix oT.
26.07.2017 23:57:17
Tino
ich würde es genau so...
26.07.2017 23:26:21
Oberschlumpf
Hallo alle
...interpretieren wie MatthiasG.
aus 1 Datei mit 20 Tabellenblättern sollen fast alle nicht ausgeblendeten Tabellenblättern als jeweils eigene Datei gespeichert werden.
Auch das Deckblatt soll bei den Speichervorgängen nicht beachtet werden.
@VBA-Novize
Aber wie ist der Name vom Deckblatt? Da es nicht zwingend das erste Tabellenblatt sein muss, müssen wir wissen, wie der Name heißt.
Ciao
Thorsten
Anzeige
habe auch eine Version...
27.07.2017 00:06:09
Tino
Hallo,
habe auch eine Version zusammengebaut.
Da ich auch davon ausgehe das eine Datei mit 20 Tabellen gemeint ist!
In der Zeile strAusnahme = "Tabelle1" kannst du dein Deckblatt angeben.
Es wir im Code einmal nachgefragt ob eine vorhandene Datei überschrieben werden soll oder nicht.
(Nachfolgende vorhandene werden gleichbehandelt)
Option Explicit

Sub Save_Tabelle()
Dim n&
Dim SavePath$, strAusnahme$, sExtention$, sSaveFullPath$
Dim intKill%, booSave As Boolean

strAusnahme = "Tabelle1" 'Tabelle anpassen (Deckblatt)

With ThisWorkbook
SavePath = .Path
SavePath = SavePath & IIf(Right$(SavePath, 1) <> "\", "\", "")
ChDrive SavePath
ChDir SavePath

SavePath = SavePath & Format(Date, "dd_mm_yyyy_")



sExtention = Right$(.Name, Len(.Name) - InStrRev(.Name, ".") + 1)

On Error GoTo ErrorHandler:
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False

For n = 1 To .Sheets.Count
If .Sheets(n).Visible = True Then
If .Sheets(n).Name <> strAusnahme Then
sSaveFullPath = SavePath & .Sheets(n).Name & sExtention

If Dir(sSaveFullPath, vbNormal) <> "" Then
If intKill = 0 Then
If MsgBox("Datei schon vorhanden, diese löschen?", _
vbQuestion + vbYesNo) = vbYes Then

Kill sSaveFullPath: DoEvents
intKill = 1
booSave = True
Else: intKill = 2: booSave = False
End If
ElseIf intKill = 1 Then
Kill sSaveFullPath: DoEvents
booSave = True
End If
Else
booSave = True
End If

If booSave Then
.Sheets(n).Copy
With ActiveWorkbook
.Sheets(1).UsedRange.Value = .Sheets(1).UsedRange.Value
.SaveAs sSaveFullPath, .FileFormat
.Close False
End With
End If
End If
End If
Next n

Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End With
Exit Sub
ErrorHandler:
MsgBox Err.Description, vbCritical, Err.Number
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
Gute Nacht Freunde!
Gruß Tino
Anzeige
AW: habe auch eine Version...
27.07.2017 10:49:35
VBA-Novize
Hallo Tino,
Vielen Dank für den Code. In der Tat hatte ich mich falsch ausgedrückt. Eine Datei, 20 Tabellenblätter.
Zwei zusätzliche Fragen:
- ich möchte immer die beiden ersten Tabellenblätter nicht in das Makro miteinbeziehen (Deckblatt + ein weiteres)
- kann man im Dateinamen noch das Darum am Anfang einfügen?
Vielen Dank für Deine/Eure Hilfe.
VBA-Novize
AW: habe auch eine Version...
27.07.2017 11:14:38
Tino
Hallo,
kannst Du so machen
in der Zeile
varAusnahme = Array("Tabelle1", "Tabelle2")

kannst Du alle Ausnahmen einstellen, evtl. entsprechend erweitern.
Option Explicit

Sub Save_Tabelle()
Dim n&
Dim SavePath$, sExtention$, sSaveFullPath$
Dim intKill%, booSave As Boolean
Dim varAusnahme

'Tabelle anpassen (Deckblatt)
varAusnahme = Array("Tabelle1", "Tabelle2")

With ThisWorkbook
SavePath = .Path
SavePath = SavePath & IIf(Right$(SavePath, 1) <> "\", "\", "")
ChDrive SavePath
ChDir SavePath

SavePath = SavePath & Format(Date, "dd_mm_yyyy_")



sExtention = Right$(.Name, Len(.Name) - InStrRev(.Name, ".") + 1)

On Error GoTo ErrorHandler:
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False

For n = 1 To .Sheets.Count
If .Sheets(n).Visible = True Then
If Not IsNumeric(Application.Match(.Sheets(n).Name, varAusnahme, 0)) Then
sSaveFullPath = SavePath & .Sheets(n).Name & sExtention

If Dir(sSaveFullPath, vbNormal) <> "" Then
If intKill = 0 Then
If MsgBox("Datei schon vorhanden, diese löschen?", _
vbQuestion + vbYesNo) = vbYes Then

Kill sSaveFullPath: DoEvents
intKill = 1
booSave = True
Else: intKill = 2: booSave = False
End If
ElseIf intKill = 1 Then
Kill sSaveFullPath: DoEvents
booSave = True
End If
Else
booSave = True
End If

If booSave Then
.Sheets(n).Copy
With ActiveWorkbook
.Sheets(1).UsedRange.Value = .Sheets(1).UsedRange.Value
.SaveAs sSaveFullPath, .FileFormat
.Close False
End With
End If
End If
End If
Next n

Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End With
Exit Sub
ErrorHandler:
MsgBox Err.Description, vbCritical, Err.Number
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
Gruß Tino
Anzeige
AW: habe auch eine Version...
27.07.2017 12:04:36
VBA-Novize
Vielen Dank! Das probiere ich gleich aus!
AW: habe auch eine Version...
27.07.2017 12:30:31
VBA-Novize
Hallo Tino,
besteht die Möglichkeit, die Ausnahme immer für die ersten 2 Tabellenblätter zu definieren, also ohne den spezifischen Namen des Tabellenblattes eingeben zu müssen? Würde das Makro gerne in weiteren Dateien verwenden wollen.
Ein zusätzlicher noch (traue mich kaum zu fragen): Könnte man in den einzelnen Dateien noch vor dem Abspeichern alle Zeilen ab Zeile 23 löschen, die in der Spalte AM eine "0" stehen haben?
Vielen, vielen Dank!
Grüße,
Michael
AW: habe auch eine Version...
27.07.2017 12:37:00
Tino
Hallo,
mach aus der Zeile
For n = 1 To .Sheets.Count
diese
For n = 3 To .Sheets.Count
Gruß Tino
Anzeige
AW: habe auch eine Version...
27.07.2017 12:38:58
VBA-Novize
Danke.
Ist auch die zweite Fragenstellung (Zeilen löschen) machbar?
Grüße,
Michael
AW: habe auch eine Version...
27.07.2017 12:47:33
VBA-Novize
Hallo Tino,
das ist soweit perfekt, allerdings habe ich noch das Problem, dass die zu speichernden Tabellenblätter alle geschützt sind (und sein müssen). Damit bricht das Makro ab, bevor er die Werte einfügen kann. Kannst Du noch eine magische Zeile für das Aufheben des Schutzes beisteuern? Geht das?
Vielen Dank im Voraus.
Grüße,
Michael
AW: habe auch eine Version...
27.07.2017 13:03:37
Tino
Hallo,
versuche es so.
In der Zeile
Const strPass$ = "Mein Kennwort"

musst du dein Kennwort eintragen!
Sub Save_Tabelle()
Dim n&
Dim SavePath$, sExtention$, sSaveFullPath$
Dim intKill%, booSave As Boolean

'hier dein Kennwort für die Tabellen angeben
Const strPass$ = "Mein Kennwort"

With ThisWorkbook
SavePath = .Path
SavePath = SavePath & IIf(Right$(SavePath, 1) <> "\", "\", "")
ChDrive SavePath
ChDir SavePath

SavePath = SavePath & Format(Date, "dd_mm_yyyy_")
sExtention = Right$(.Name, Len(.Name) - InStrRev(.Name, ".") + 1)

On Error GoTo ErrorHandler:
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False

For n = 3 To .Sheets.Count
If .Sheets(n).Visible = True Then
sSaveFullPath = SavePath & .Sheets(n).Name & sExtention

If Dir(sSaveFullPath, vbNormal) <> "" Then
If intKill = 0 Then
If MsgBox("Datei schon vorhanden, diese löschen?", _
vbQuestion + vbYesNo) = vbYes Then

Kill sSaveFullPath: DoEvents
intKill = 1
booSave = True
Else: intKill = 2: booSave = False
End If
ElseIf intKill = 1 Then
Kill sSaveFullPath: DoEvents
booSave = True
End If
Else
booSave = True
End If

If booSave Then
.Sheets(n).Copy
With ActiveWorkbook
.Sheets(1).Unprotect strPass
.Sheets(1).UsedRange.Value = .Sheets(1).UsedRange.Value
.Sheets(1).Protect strPass
.SaveAs sSaveFullPath, .FileFormat
.Close False
End With
End If
End If
Next n

Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End With
Exit Sub
ErrorHandler:
MsgBox Err.Description, vbCritical, Err.Number
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
Gruß Tino
Anzeige
AW: habe auch eine Version...
27.07.2017 13:10:00
VBA-Novize
Hallo,
funktioniert leider nicht. Hinweis, dass ich den Blattschutz aufheben soll, kommt immer noch.
Sorry...
Andere Ideen?
Grüße,
Michael
nur 1 kleiner Zwischenruf
27.07.2017 13:16:15
Oberschlumpf
Hi Name?
Zeig doch mal per Upload deine Datei, wie du sie - bis jetzt - hast.
Wir, vor allem Tino, wissen nicht wirklich, wie deine Datei aussieht.
Vergiss nicht, das Passwort zu nennen, mit dem die Tabellen geschützt sind.
Und wenn die Daten in der Datei nicht gezeigt werden dürfen, dann ändere vor dem Upload alles um in Bsp-Daten.
Ciao
Thorsten
AW: nur 1 kleiner Zwischenruf
27.07.2017 13:31:12
VBA-Novize
Hallo zusammen,
hier der Link zur Datei (leider zu groß für den Upload hier:
https://wetransfer.com/downloads/73423190b39b10c564d16cd07d05f98820170727112949/54c1267fc57974ef3097144f5f3d8f3d20170727112949/0a3a9a
Habe das Makro bereits mit dem Symbol auf dem Deckblatt verknüpft.
Wie gesagt: alle Tabellenblätter ab "DDF - ..." (außer "Split-Umsatz") sollen als einzelne Dateien abgespeichert werden. Wenn die Zeilen ab Zeile 23 mit einer "0" in Spalte AM noch gelöscht werden könnten wäre das perfekt.
Vielen Dank Euch allen.
Grüße,
Michael
Anzeige
versuche diese Version
27.07.2017 14:03:38
Tino
Hallo,
du hattest nicht die Zeilen mit Unprotect u. Protect im Code wie von mir gezeigt.
kommt als Code in ein Modul
Option Explicit 

Sub Save_Tabelle()
Dim n&
Dim SavePath$, sExtention$, sSaveFullPath$
Dim intKill%, booSave As Boolean
Dim varAusnahme
Const strPass$ = "Kosmos"

'Tabelle anpassen (Deckblatt)
varAusnahme = Array("Def_Split")

With ThisWorkbook
SavePath = .Path
SavePath = SavePath & IIf(Right$(SavePath, 1) <> "\", "\", "")
ChDrive SavePath
ChDir SavePath

SavePath = SavePath & Format(Date, "dd_mm_yyyy_")

sExtention = Right$(.Name, Len(.Name) - InStrRev(.Name, ".") + 1)

On Error GoTo ErrorHandler:
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False

For n = 3 To .Sheets.Count
If .Sheets(n).Visible = True Then
If Not IsNumeric(Application.Match(.Sheets(n).Name, varAusnahme, 0)) Then
sSaveFullPath = SavePath & .Sheets(n).Name & sExtention

If Dir(sSaveFullPath, vbNormal) <> "" Then
If intKill = 0 Then
If MsgBox("Datei schon vorhanden. Diese löschen?", _
vbQuestion + vbYesNo) = vbYes Then

Kill sSaveFullPath: DoEvents
intKill = 1
booSave = True
Else: intKill = 2: booSave = False
End If
ElseIf intKill = 1 Then
Kill sSaveFullPath: DoEvents
booSave = True
End If
Else
booSave = True
End If

If booSave Then
Application.StatusBar = "Bearbeite: '" & .Sheets(n).Name & "'"
.Sheets(n).Copy
With ActiveWorkbook
.Sheets(1).Unprotect strPass
.Sheets(1).UsedRange.Value = .Sheets(1).UsedRange.Value
.Sheets(1).Protect strPass
.SaveAs sSaveFullPath, .FileFormat
.Close False
End With
End If
End If
End If
Next n

Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
Application.StatusBar = False
End With

MsgBox "Alle aktionen abgeschlossen!", vbInformation
Exit Sub
ErrorHandler:
MsgBox Err.Description, vbCritical, Err.Number
Application.StatusBar = False
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
Gruß Tino
Anzeige
AW: versuche diese Version
27.07.2017 14:13:19
VBA-Novize
Hallo,
danke. leider kommt jetzt folgende Fehlermeldung:
"Diese Erweiterung kann nicht mit dem ausgewählten Dateityp verwendet werden..."
Grüße,
Michael
AW: versuche diese Version
27.07.2017 14:29:10
Tino
Hallo,
seltsamerweise kommt bei mir kein Fehler.
Weis aber wo der Fehler liegt!
Teste mal
Option Explicit

Sub Save_Tabelle()
Dim n&
Dim SavePath$, sExtention$, sSaveFullPath$
Dim intKill%, intFormat%, booSave As Boolean
Dim varAusnahme
Const strPass$ = "Kosmos"

'Tabelle anpassen (Deckblatt)
varAusnahme = Array("Def_Split")

With ThisWorkbook
intFormat = .FileFormat
SavePath = .Path
SavePath = SavePath & IIf(Right$(SavePath, 1) <> "\", "\", "")
ChDrive SavePath
ChDir SavePath

SavePath = SavePath & Format(Date, "dd_mm_yyyy_")

sExtention = Right$(.Name, Len(.Name) - InStrRev(.Name, ".") + 1)

On Error GoTo ErrorHandler:
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False

For n = 3 To .Sheets.Count
If .Sheets(n).Visible = True Then
If Not IsNumeric(Application.Match(.Sheets(n).Name, varAusnahme, 0)) Then
sSaveFullPath = SavePath & .Sheets(n).Name & sExtention

If Dir(sSaveFullPath, vbNormal) <> "" Then
If intKill = 0 Then
If MsgBox("Datei schon vorhanden. Diese löschen?", _
vbQuestion + vbYesNo) = vbYes Then

Kill sSaveFullPath: DoEvents
intKill = 1
booSave = True
Else: intKill = 2: booSave = False
End If
ElseIf intKill = 1 Then
Kill sSaveFullPath: DoEvents
booSave = True
End If
Else
booSave = True
End If

If booSave Then
Application.StatusBar = "Bearbeite: '" & .Sheets(n).Name & "'"
.Sheets(n).Copy
With ActiveWorkbook
.Sheets(1).Unprotect strPass
.Sheets(1).UsedRange.Value = .Sheets(1).UsedRange.Value
.Sheets(1).Protect strPass
.SaveAs sSaveFullPath, intFormat
.Close False
End With
End If
End If
End If
Next n

Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
Application.StatusBar = False
End With

MsgBox "Alle aktionen abgeschlossen!", vbInformation
Exit Sub
ErrorHandler:
MsgBox Err.Description, vbCritical, Err.Number
Application.StatusBar = False
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
Gruß Tino
Anzeige
AW: versuche diese Version
27.07.2017 14:44:53
VBA-Novize
Hallo Tino,
perfekt! jetzt läuft alles.
Hättest Du noch eine Lösung für das Löschen der Zeilen ab Zeile 23, wenn in Spalte AM der Wert "0" steht?
Vielen, vielen Dank!
Grüße,
Michael
Evtl. komme ich später dazu, bin nicht am PC oT.
27.07.2017 14:53:00
Tino
AW: versuche diese Version
27.07.2017 16:57:11
Tino
Hallo,
hier der Code
In den Zeilen kannst du die Zeile und die Spalten angeben wo auf 0 geprüft werden soll.
Option Explicit

Sub Save_Tabelle()
Dim n&
Dim SavePath$, sExtention$, sSaveFullPath$
Dim intKill%, intFormat%, booSave As Boolean
Dim varAusnahme

Const strSpalte0$ = "AM"
Const strZeile0$ = "23"
Const strPass$ = "Kosmos"

'Tabelle anpassen (Deckblatt)
varAusnahme = Array("Def_Split")

With ThisWorkbook
intFormat = .FileFormat
SavePath = .Path
SavePath = SavePath & IIf(Right$(SavePath, 1) <> "\", "\", "")
ChDrive SavePath
ChDir SavePath

SavePath = SavePath & Format(Date, "dd_mm_yyyy_")

sExtention = Right$(.Name, Len(.Name) - InStrRev(.Name, ".") + 1)

On Error GoTo ErrorHandler:
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False

For n = 3 To .Sheets.Count
If .Sheets(n).Visible = True Then
If Not IsNumeric(Application.Match(.Sheets(n).Name, varAusnahme, 0)) Then
sSaveFullPath = SavePath & .Sheets(n).Name & sExtention

If Dir(sSaveFullPath, vbNormal) <> "" Then
If intKill = 0 Then
If MsgBox("Datei schon vorhanden. Diese löschen?", _
vbQuestion + vbYesNo) = vbYes Then

Kill sSaveFullPath: DoEvents
intKill = 1
booSave = True
Else: intKill = 2: booSave = False
End If
ElseIf intKill = 1 Then
Kill sSaveFullPath: DoEvents
booSave = True
End If
Else
booSave = True
End If

If booSave Then
Application.StatusBar = "Bearbeite: '" & .Sheets(n).Name & "'"
DoEvents
.Sheets(n).Copy
With ActiveWorkbook
.Sheets(1).Unprotect strPass
.Sheets(1).UsedRange.Value = .Sheets(1).UsedRange.Value

Call Loesche_0_AW(.Sheets(1), strZeile0, CStr(.Sheets(1).Columns(strSpalte0).Column))

.Sheets(1).Protect strPass
.SaveAs sSaveFullPath, intFormat
.Close False
End With
End If
End If
End If
Next n

Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
Application.StatusBar = False
End With

MsgBox "Alle aktionen abgeschlossen!", vbInformation
Exit Sub
ErrorHandler:
MsgBox Err.Description, vbCritical, Err.Number
Application.StatusBar = False
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub

Sub Loesche_0_AW(oWS As Worksheet, strZeile0$, strCol$)
Dim rng As Range
On Error Resume Next
With oWS.UsedRange.EntireRow
.Columns(.Columns.Count).FormulaR1C1 = "=IF((RC" & strCol & "=0)*(ROW()>=" & strZeile0 & "),TRUE,ROW())"
.Columns(.Columns.Count).Value = .Columns(.Columns.Count).Value
.Sort .Columns(.Columns.Count).Cells(1, 1), xlAscending, Header:=xlYes
Set rng = .Columns(.Columns.Count).SpecialCells(xlCellTypeConstants, 4)
If Not rng Is Nothing Then
rng.EntireRow.Delete
End If
.Columns(.Columns.Count).EntireColumn.Delete
End With
On Error GoTo 0
End Sub
Gruß Tino
Anzeige
AW: versuche diese Version
27.07.2017 19:04:30
VBA-Novize
Hallo Tino,
perfekt. Ich bin schlicht beeindruckt.
Jetzt ist mein Projekt fast zu Ende und ich benötige noch einmal Hilfe, da ich es schlicht nicht hinbekomme Deinen tollen Code für eine andere Datei anzupassen.
In der anderen Datei möchte ich schlicht das 3. Tabellenblatt mit Werten, also ohne Formeln, in eine Datei exportieren. Name wie Ursprungsdatei, nur noch mit vorangestelltem Datum.
Könntest Du mir hier noch einmal helfen, bitte?
Vielen Dank.
Grüße,
Michael
erstell doch einen neuen Thread...owT
27.07.2017 19:09:31
Oberschlumpf
AW: Einzelne Dateien aus Arbeitsmappen erstellen
26.07.2017 23:17:00
MatthiasG
Hallo Namenloser,
in ein Modul:

Option Explicit
Const Deckblatt_Name = "Deckblatt"
Sub Separieren()
Dim sh As Worksheet
Application.ScreenUpdating = False
For Each sh In ThisWorkbook.Worksheets
If sh.Visible = xlSheetVisible And sh.Name  Deckblatt_Name Then
Kopiere sh
End If
Next sh
Application.ScreenUpdating = True
End Sub
Sub Kopiere(sh As Worksheet)
sh.Select
sh.Copy
Cells.Copy
Cells.PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone _
, SkipBlanks:=False, Transpose:=False
Cells.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Cells(1, 1).Select
ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & ActiveSheet.Name
ActiveWorkbook.Close
End Sub

Gruß Matthias

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige