Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1528to1532
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
Tabellenblätter nach nächstem Monat benennen
22.12.2016 17:21:47
Andreas
Guten Abend,
vermutlich ist das Ganze recht simpel, dennoch komme ich nicht drauf und die Suchfunktion hat mir bisher auch nicht wirklich weitergeholfen.
Ich möchte einfach per Mausklick das aktuelle Tabellenblatt ans Ende kopieren und es soll als Namen den des nächsten Monats haben.
Tabellenblatt 1 heißt "Jan17"
Das nächste soll dann "Feb17" heißen oder wegen mir auch in einem anderen Datumsformat.
Ich komme aber mit den Parametern der DateValue Funktion nicht zurecht
Private Sub CommandButton1_Click()
Dim wsNew As Worksheet
wsNew.Copy after:=Sheets(Sheets.Count)
wsNew.Name = Format(DateValue(.Previous.Name) + 1)
End Sub

Vielen Dank schon einmal

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblätter nach nächstem Monat benennen
22.12.2016 20:26:23
Dieter
Hallo Andreas,
du könntest das mit dem folgenden Programm machen:

Private Sub CommandButton1_Click()
Dim wb As Workbook
Dim sh As Object
Dim wsNew As Worksheet
Dim zf As String
zf = Format$(DateAdd("m", 1, Date), "mmmyy")
Set wb = ThisWorkbook
ActiveSheet.Copy After:=wb.Sheets(wb.Sheets.Count)
Set wsNew = ActiveSheet
Application.DisplayAlerts = False
For Each sh In wb.Sheets
If UCase$(sh.Name) = UCase$(zf) Then sh.Delete
Next sh
Application.DisplayAlerts = True
wsNew.Name = zf
End Sub
Viele Grüße
Dieter
AW: Tabellenblätter nach nächstem Monat benennen
23.12.2016 07:59:38
Andreas
Guten Morgen Dieter,
das funktioniert leider nur einmal, bei jedem weiteren Klick kommt "Automatierungsfehler".
Anzeige
AW: Tabellenblätter nach nächstem Monat benennen
23.12.2016 10:41:24
Dieter
Hallo Andreas,
am besten wäre es, wenn du deine Datei hochladen könntest. Daten können verändert und/oder anonymisiert sein.
Viele Grüße
Dieter
AW: Tabellenblätter nach nächstem Monat benennen
23.12.2016 11:38:49
Andreas
Hallo Dieter,
ich kann die Tabelle leider nicht von der Arbeit aus hochladen. Mache ich später.
Ich denke mal das dein Code funktioniert wenn ich ihn im Januar das nächste mal ausführe.
Aber ich würde es gerne unabhängig vom aktuellen Datum machen.
MfG Andreas
AW: Tabellenblätter nach nächstem Monat benennen
23.12.2016 12:44:37
Michael
Hallo!
Ich meine, Du meinst so: https://www.herber.de/bbs/user/110185.xlsm
Passts?
LG
Michael
Anzeige
AW: Tabellenblätter nach nächstem Monat benennen
23.12.2016 18:57:27
Dieter
Hallo Andreas, hallo Michael,
ich war davon ausgegangen, dass sich der CommandButton1 in einer UserForm befindet. Wenn er sich in dem zu kopierenden Blatt befindet, dann funktioniert natürlich bei der zweiten Ausführung das vorsorgliche Löschen nicht, da man ein Blatt nicht entfernen kann, wenn in diesem Blatt ein Button ist, von dem aus das "Blattentfernungsprogramm" gestartet wurde.
Wenn die Ausführung vom aktuellen Datum unabhängig sein soll, dann ist der Code von Michael vorzuziehen. Allerding gibt es dann ein Problem, wenn man zweimal auf den Button eines der bereits mit einem Monatsnamen versehehenen Blätter klickt.
Das lässt sich durch die folgende Ergänzung beheben:

Private Sub CommandButton1_Click()
Dim sh As Object
Dim Mon$, Jhr$, i&
Jhr = Right(Me.Name, 2)
Select Case Left(Me.Name, 3)
Case Is = "Jan": Mon = "Feb"
Case Is = "Feb": Mon = "Mär"
Case Is = "Mär": Mon = "Apr"
Case Is = "Apr": Mon = "Mai"
Case Is = "Mai": Mon = "Jun"
Case Is = "Jun": Mon = "Jul"
Case Is = "Jul": Mon = "Aug"
Case Is = "Aug": Mon = "Sep"
Case Is = "Sep": Mon = "Okt"
Case Is = "Okt": Mon = "Nov"
Case Is = "Nov": Mon = "Dez"
Case Is = "Dez": Mon = "Jan": Jhr = Jhr + 1
End Select
' Falls das gewünschte Blatt schon existiert, wird es nur aktiviert
For Each sh In ThisWorkbook.Sheets
If UCase$(sh.Name) = UCase$(Mon & Jhr) Then
sh.Activate
Exit Sub
End If
Next sh
Me.Copy after:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count)
ActiveSheet.Name = Mon & Jhr
End Sub
Viele Grüße an euch beide
Dieter
Anzeige

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige