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

Makro : Sheet eines Monats in neue Datei speichern

Makro : Sheet eines Monats in neue Datei speichern
19.03.2014 14:23:47
Sabrina
Hallo Jungs,
ich habe ein Problem. Weiß aber nicht wie ich es hinbekommen soll.
Ich habe eine Datei Daten.xls. Dort ist für jeden Monat einen Sheet (01, 02, … 11,12)
Mit einem Makro soll der Sheet des letzten Monats in eine neue Datei kopiert werden, welche als Text (Tabstopp-getrennt) unter dem Monatsnamen in dem Ordner C:/Daten/ gespeichert werden soll.
Kann mir jemand auf die Sprünge helfen?
LG
Sabrina

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

Betreff
Datum
Anwender
Anzeige
AW: Makro : Sheet eines Monats in neue Datei speichern
19.03.2014 15:38:28
Oberschlumpf
Hi Sabrina
versuch mal (Code in ein allgemeines Modul einfügen)
Sub sbLastMonth()
Application.ScreenUpdating = False
Sheets(Month(Date) - 1).Copy
With ActiveWorkbook
.SaveAs Filename:="C:\Users\UserGobi.PCI58GB\Documents\" & Month(Date) - 1 & ".txt", _
FileFormat:=xlText
.Close False
End With
Application.ScreenUpdating = True
End Sub

Hilfts?
Ciao
Thorsten

Korrektur
19.03.2014 17:58:11
Oberschlumpf
huch!
Hallo Sabrina
Ich hab ja vergessen, den Speicherpfad richg einzutragen!
Versuch es mit diesem Code:
Sub sbLastMonth()
Application.ScreenUpdating = False
Sheets(Month(Date) - 1).Copy
With ActiveWorkbook
.SaveAs Filename:="C:\Daten\" & Month(Date) - 1 & ".txt", FileFormat:=xlText
.Close False
End With
Application.ScreenUpdating = True
End Sub

Hilfts?
Ciao
Thorsten

Anzeige
AW: Korrektur
19.03.2014 20:47:00
Sabrina
Hallo Thorsten,
das ist fast perfekt.
Wir kann ich die Zahl des Monats in den Namen umwandeln?
Also bei dem Sheet 03 soll die Datei März.txt heissen
LG
Sabrina

AW: Korrektur
19.03.2014 22:48:18
Oberschlumpf
Hi Sabrina
Mann Mann!
Da hab ich ja gleich noch mal gepennt. Das mit dem Monatsnamen hattest du auch schon im ersten Beitrag geschrieben.
Versuch es mal so:
Sub sbLastMonth()
Application.ScreenUpdating = False
ThisWorkbook.Sheets(Month(Date) - 1).Copy
With ActiveWorkbook
.SaveAs Filename:="C:\Daten\" & Format(DateSerial(Year(Date), Month(Date) - 1,  _
Day(Date)), "MMMM") & ".txt", FileFormat:=xlText
.Close False
End With
Application.ScreenUpdating = True
End Sub

Hilfts denn nun?
Gibt aber vielleicht ein kleines Problem, bei dem du zur Vorgehensweise noch nichts geschrieben hast.
Angenommen, du bist im Monat Januar. Der Code erstellt dann eine Datei moit Namen "Dezember".
Ist das so gewollt? Dann sollte der Code jetzt für dich passen.
Ciao
Thorsten

Anzeige
AW: Makro : Sheet eines Monats in neue Datei speichern
19.03.2014 16:20:29
Dieter
Hallo Sabrina,
du kannst das mit dem folgenden Programm machen
Sub monatsBlatt()
Dim monatsBlatt As String
Dim letzterMonat As Long
Dim dateiDaten As String
Dim dateiMonat As String
Dim pfadDaten As String
Dim pfadMonat As String
Dim wbDaten As Workbook
Dim wbMonat As Workbook
Dim wsMonat As Worksheet
dateiDaten = "Daten.xls"
pfadDaten = ThisWorkbook.Path & "\"
If Dir(pfadDaten & dateiDaten) = "" Then
MsgBox pfadDaten & dateiDaten & vbNewLine & _
"existiert nicht!"
Exit Sub
End If
Application.DisplayAlerts = False
On Error Resume Next
Workbooks(dateiDaten).Close
On Error GoTo 0
Application.DisplayAlerts = True
Set wbDaten = Workbooks.Open(Filename:=pfadDaten & dateiDaten)
letzterMonat = Month(DateSerial(Year(Date), Month(Date), 1) - 1)
monatsBlatt = Format$(letzterMonat, "00")
wbDaten.Sheets(monatsBlatt).Copy
Set wbMonat = ActiveWorkbook
Set wsMonat = wbMonat.Sheets(1)
dateiMonat = MonthName(letzterMonat) & ".txt"
pfadMonat = "C:\Daten\"
' Eine event. vorhandene Datei gleichen Namens löschen und schließen
Application.DisplayAlerts = False
On Error Resume Next
Kill pfadMonat & dateiMonat
Workbooks(dateiMonat).Close
On Error GoTo 0
Application.DisplayAlerts = True
wbMonat.SaveAs Filename:=pfadMonat & dateiMonat, _
FileFormat:=xlText
wbDaten.Close
wbMonat.Close SaveChanges:=False
End Sub
Sieht etwas lang aus, berücksichtigt dafür alle möglichen Sondersituationen.
Das Programm geht davon aus, dass die Mappe "Daten.xls" im gleichen Verzeichnis ist, wie die Mappe mit dem Programm.
Viele Grüße
Dieter
Anzeige

312 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige