Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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
Antworten 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)
Antworten 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
Antworten 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)
Antworten 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.
Antworten 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
Antworten Top
#7
Vielen Dank,

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

Bin schon richtig zufrieden wie es soweit funktioniert
Antworten 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)
Antworten 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.
Antworten 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)
Antworten Top


Gehe zu:


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