Hi Doreen,
Ich habe in folgendem Codeschnipsel den Dateinamen
„Bestellplanung 2008-2009.xls“ eingegeben.
strEing = InputBox(„Geben Sie einen Dateinamen ein“, "Kopie
speichern als…", _
Was muss ich jetzt hinter „Kopie speichern als“ eintragen?
nichts, war wohl missverständlich von mir formuliert, „kopie speichern als…“ ist nur dieÜberschrift=titel der erscheinenden Inputbox.
Den Nmaen den du in der Inputbox eingibst wird in der variablen strEing gespeichert und später benutzt um mittels SaveAs die datei unter diesem namen zu speichern.
Den Namen der neuen Datei? Z.B. Bestellplanung 2009-2010?
ändert er mir dann alle Tabellennamen?
Das soll er doch tun.
Und wenn ich das
nächste Jahr die Datei wieder kópiere und umbenenne, muss ich
dann den code auf 2001-2012 anpassen???
Nein, den gleichen Code starten, bei der Eingabe in der erscheinenden Inputbox dann „Bestellplanung 2001-2012“ eingeben.
Ich habe den Code mal umgeschrieben, jetzt müßtest du die Codezeile der Inputbox besser deuten können und Inputbox,SaveAs, usw wird in der Vba-Hilfe erklärt…
Gruß
Reinhard
Option Explicit
'
Sub tt()
Dim strEing As String, Blatt As Worksheet, M As Integer
Dim Aufforderung As String, Ueberschrift As String, Vorgabe As String
Aufforderung = "Geben Sie einen Dateinamen ein"
Ueberschrift = "Kopie speichern als..."
Vorgabe = ThisWorkbook.Name
Do
strEing = InputBox(Aufforderung, Ueberschrift, Vorgabe)
If strEing = "" Then Exit Sub
Loop While strEing = ThisWorkbook.Name
ThisWorkbook.Save
ThisWorkbook.SaveAs ThisWorkbook.Path & "\" & strEing
For Each Blatt In ThisWorkbook.Worksheets
If Len(Blatt.Name) = 6 Then ' Ist die Länge des Blattnamens=6 ?
For M = 1 To 12 ' für die 12 Monate
If Left(Blatt.Name, 3) = MonthName(M, True) Then 'Überprüfung ob dreistelliger Monatsname(MMM) gleich ist
If Mid(Blatt.Name, 4, 1) = " " Then 'ist ein Leerzeichen zwischen MMM und JJ'
If IsNumeric(Right(Blatt.Name, 2)) Then 'zind die beiden letzten Zeichen eine Zahl?
' aus Aug 07 wird Aug 08
Blatt.Name = Left(Blatt.Name, 4) & Right("00" & CStr(CInt(Right(Blatt.Name, 2)) + 1), 2)
Exit For
End If
End If
End If
Next M
End If
Next Blatt
End Sub