Wir wünschen allen Forenteilnehmern ein frohes Fest und einen guten Rutsch ins neue Jahr. x

Tabellenblätter automatisch mit Datum umbenennen
#1
Guten Morgen,

ich habe eine Frage, da ich noch nicht allzu gut in Umgang mit VBA bin.

Ich habe in Celle "C3" das Datum stehen, welches sich durch eine Formel bei Änderung anpasst. Die Zelle ist formatiert, so dass z. B. statt "01.03.2020", dann "März 20" angezeigt wird. , Nun soll wenn möglich der Tabellenblattname  automatisch danach benannt werden oder wenn nicht automatisch, dann einfach über eine Schaltfläche.

Ich habe zwar eine einfache Variante unter Code des Tabellenblatts eingebaut und es dann mit einen Schaltbutton verknüpft. Der Code sieht so aus:

Sub umbenennen()

ActiveSheet.Name = Range("C2").Value


End Sub


Es klappt auf diese Weise gut, aber er zeigt mir  als Tabellenblattname das ganze Datum an, "01.03.2020". Aber es soll wie in der Celle "März 20" als Name stehen. 

Was muss ich in den Code noch einbauen, damit er das macht?
Besser wäre, wenn der Tabellenname sich automatisch ändert, wenn sich das Datum in Celle "C3" ändert. Hier ist aber noch zu sagen, das ich das datum in Celle "C3" nicht per Hand eintrage, sondern es durch eine Formel geschieht. Wie muss der Code dann aussehen?

Ich bitte um Hilfe, denn ich bin noch nicht gut mit VBA.

Schönen Tag Euch allen und bleibt Gesund
Top
#2
Moin,

so:

Zitat:ActiveSheet.Name = Range("C2").Text
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Top
#3
Guten Morgen,

vielen Dank für die  schnelle Antwort. Da hatte ich ja echt eine lange Leitung. Klappt gut jetzt.

Hast Du vielleicht eine Idee, wie das auch automatisch ginge? Wie gesagt das Datum in der Zelle wird durch eine Formel geändert und nicht von Hand.

Schönen Tag noch und bleibt Gesund
Top
#4
Hi Friedrich,

Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$C$2" Then ActiveSheet.Name = Range("C2").Text
End Sub
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Top
#5
Hallo,

nur eine Idee ... hier wird abgefragt, ob das Tabellenblatt bereits existiert:


Zitat:Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim worksh As Integer
    Dim worksheetexists As Boolean
    Dim x As Integer
    worksh = Application.Sheets.Count
    worksheetexists = False
    For x = 1 To worksh
        If Worksheets(x).Name = Range("C2").Text Then
            worksheetexists = True
            'Debug.Print worksheetexists
            Exit For
        End If
    Next x
    If worksheetexists = False Then
        'Debug.Print "transformed exists"
        Worksheets.Add after:=Sheets("Tabelle1")
        ActiveSheet.Name = Range("C2").Text
    End If
End Sub

Gruß
Marcus

Wissen ist Macht - es ist aber nicht schlimm nicht alles zu wissen.
Man muss nicht alles wissen - man muss nur wissen wo es steht, oder wo man Hilfe bekommt.
Top
#6
Code:
Private Sub Worksheet_Activate()
    Name = Format(Date, "mmm yy")
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Top
#7
Vielen Dank,

der geht natürlich auch super. Den muss ich ja auch zuweisen.

Bin schon richtig zufrieden wie es soweit funktioniert
Top
#8
Nachdem drei verschiedene Vorschläge gekommen sind, wäre es vllt. für die Antworter interessant, welches Makro "natürlich super geht". Wink
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Top
#9
Hallo Günter,

das wird wohl an snb gegangen sein. er ist auf etwas eingegangen, was wir übersehen haben:
Code:
Name = Format(Date, "mmm yy")


Gruß
Marcus

Wissen ist Macht - es ist aber nicht schlimm nicht alles zu wissen.
Man muss nicht alles wissen - man muss nur wissen wo es steht, oder wo man Hilfe bekommt.
Top
#10
Hi Marcus,

das braucht's bei meinem Vorschlag nicht. Exakt wie der TE seine Zelle formatiert hat, wird der entsprechende Text übernommen.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste