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

Blattname per Button, mit MsgBox ändern

Blattname per Button, mit MsgBox ändern
25.07.2022 12:49:02
Marco
Moin zusammen!
ich würde gerne mittels ActiveX Knopf den Blattnamen des akutellen Blattes ändern.
Im besten Fall soll sich ein Fenster öffnen in das der neue Blattname eingetragen werden kann/soll.
... allerdings hab ich keine Ahnung wo ich anfangen soll =D
Danke für eure Hilfe und Ideen!
Marco

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Blattname per Button, mit MsgBox ändern
25.07.2022 13:02:05
JoTu
Meine schnelle Idee:

Private Sub CommandButton1_Click()
Dim strInput As String
strInput = InputBox("Blattname """ & ActiveSheet.Name & """ ändern in: ", "Blattname ändern")
If strInput  "" Then
ActiveSheet.Name = strInput
End If
End Sub

Funktioniert! Danke für die schnelle Antwort! =)
25.07.2022 13:27:09
Marco
AW: Blattname per Button, mit MsgBox ändern
25.07.2022 14:16:36
Lilli
hallo Zusammen,
wie kann man diesen Code einbinden? Wenn ich einen Form einfüge und möchte diesen Code, den ich in einem Module rein kopiert habe, über den Form abrufen möchte, kann ich den Code gar nicht finden, wenn ich auf Makro Zuweisen klicke.
Was muss man da beachten bitte?
viele Grüße,
Lilli :)
Anzeige
AW: Blattname per Button, mit MsgBox ändern
25.07.2022 14:21:36
JoTu
Hey Lilli,
dazu musst du das Event von einem Button_Click zu einem Makro ändern. Siehe unten.
Den Sub kannst du nennen, wie du möchtest (unter Rücksicht auf die Bedingungen wie keine Leerzeichen wenn ich nicht irre, usw.), also statt Change_Sheetname könntest du auch Makro1 oder DeinSubName oder was du magst einsetzen (am Ende () nicht vergessen). Unter diesem Namen findest du es dann in deinen Makros.

Sub Change_Sheetname()
Dim strInput As String
strInput = InputBox("Blattname """ & ActiveSheet.Name & """ ändern in: ", "Blattname ändern")
If strInput  "" Then
ActiveSheet.Name = strInput
End If
End Sub
LG, Johannes
Anzeige
AW: Blattname per Button, mit MsgBox ändern
25.07.2022 13:04:50
Daniel
Hi
Button erstellen
übers Kontextmenü den Code zum Button anzeigen lassen.
dort sollte automatisch bereits das CLICK-Eventmakro, welches bei Buttonklick ausgeführt wird, mit Start- und Endzeile angelegt sein.
zwischen diesen beiden Zeilen kannst du dann deinen Code anlegen.
im einfachsten Fall ohne jede Prüfungen und Sicherheitsabfragen auf Fehleingaben reicht dann dieser Code:

ActiveSheet.Name = Inputbox("Neuer Blattname")
Gruß Daniel
AW: Blattname per Button, mit MsgBox ändern
25.07.2022 13:29:31
JoTu
Hey Daniel,
sorry dass ich mich nochmal einmische. Genau das dachte ich zu Anfang auch. Das Problem ist ja aber dabei, dass wenn ich aus Versehen auf den Button klicke, dann würde ich ja über "Abbrechen" wieder das Festener verlassen wollen. Dann kommt aber bei mir eine Debug-Meldung (die der User ja möglichst nicht sehen sollte). Deshalb dachte ich, den Umweg über die Prüfung des Inhalts...
Oder irre ich mich?
LG, Johannes
Anzeige
AW: Blattname per Button, mit MsgBox ändern
25.07.2022 14:39:49
Daniel
ja ich schrieb ja "im einfachsten Fall" ohne Prüfung.
Abbrechen könnte man noch abfangen.
Wenn du es ganz exakt machen willst, prüfst du vorab noch auf die Länge (maximal 31 Zeichen), verbotene Zeichen und ob der gewählte Name schon vergeben ist.
wenn eine Prüfung auf alle möglichen Fehlerfälle mit eigener, für den Anwender verständlichen Fehlermeldung, sowie wiederholung des Vorgangs bis erfolgreicher Durchführung oder bewusstem Abbruch sieht dann so aus:

Private Sub CommandButton1_Click()
Dim txt As String
Dim arrVerbotZeichen
Dim i As Long
arrVerbotZeichen = Split(": / \ ? * [ ]", " ")
Do
txt = InputBox("neuer Blattname")
If txt = "" Then
If StrPtr(txt) = 0 Then
Exit Do
Else
MsgBox "Bitte neuen Blattnamen eingeben"
End If
ElseIf Len(txt) > 31 Then
MsgBox "Blattname ist zu lang."
ElseIf Not IsError(Evaluate("'" & txt & "'!A1")) Then
MsgBox "Blattname bereits vergeben."
Else
For i = 0 To UBound(arrVerbotZeichen)
If InStr(txt, arrVerbotZeichen(i)) > 0 Then Exit For
Next
If i 
wobei sich mir dann immer die Frage stellt, welchen Sinn es macht, Dinge nachzuprogrammieren, die in Excel schon vorhanden sind.
Gruß Daniel
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige