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

Sheetsname ist Zahl

Sheetsname ist Zahl
16.10.2013 10:47:05
Albert
Hallo Excel-Profis,
ich steh vor einem mir nicht lösbaren Problem.
Meine Exceldatei enthält Sheets, die z.B. 4.01, 4.02,... heißen.
Nun müsste ich weitere Sheets per CommandButton einfügen und umbenennen. Der Sheet-Name ergibt sich dann aus dem Wert des letzten Sheets und der Wert um 0,01 erhöhrt. Heißt 4.03....
Wie würdet ihr sowas lösen?
Dank euch schon jetzt mal für eure Hilfe.
Gruß
A.

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sheetsname ist Zahl
16.10.2013 10:56:56
Erich
Hi Albert,
probier mal

Sub SheetNeu()
MsgBox CStr(Sheets(Sheets.Count).Name / 100 + 0.01)
MsgBox CStr(Replace(Sheets(Sheets.Count).Name, ".", ",") + 0.01)
End Sub
Da wird der neue Blattname als String ausgegeben.
Vorausgesetzt ist, dass du mit einem Dezimalkomma arbeitest.
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

AW: Sheetsname ist Zahl
16.10.2013 10:59:02
Beverly
Hi Albert,
Application.Substitute(Worksheets(Worksheets.Count).Name, ".", ",") + 0.01


Anzeige
AW: Sheetsname ist Zahl
16.10.2013 11:01:12
Hajo_Zi
Hallo Albert,
ohne Prüfung.
Sheets.Add(after:=Sheets(Sheets.Count)).Name = Left(Worksheets(Worksheets.Count).Name, _
InStr(Worksheets(Worksheets.Count).Name, ".")) _
& Format(Mid(Worksheets(Worksheets.Count).Name, InStr(Worksheets(Worksheets.Count).Name, ".") + 1) + 1, "00")

was kommt da raus?
16.10.2013 11:13:14
Matthias
Hallo Hajo
Das letzte Sheet heißt z.B. 4,03
Erwartet wird hier: 4,04
Dein Code liefert aber 5
Erich hat schon die richtige Lösung gepostet.
Man muss nur noch das Blatt ans Ende setzen
Worksheets.Add.Name = CStr(Replace(Sheets(Sheets.Count).Name, ".", ",") + 0.01)
ActiveSheet.Move after:=Sheets(Sheets.Count)
Gruß Matthias

Anzeige
AW: was kommt da raus?
16.10.2013 11:21:02
Hajo_Zi
Hallo Matthias,
die Tabelle hat nicht den Namen 4,03.
Solchen Code teste ich und er liefert das gewünschte Ergebnis.
Gruß Hajo

ok , sorry hab , statt . benutzt, alles ok :-) oT
16.10.2013 11:26:39
Matthias

AW: Sheetsname ist Zahl
16.10.2013 11:45:49
Erich
Hi Albert,
nachdem wir hier nun mehrere Lösungen haben, eine kleine Rückfrage:
Wie soll das neue Blatt heißen, wenn das aktuell letzte den Namen 3.99 hat? 4.00 oder 3.100 oder ...?
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

AW: Sheetsname ist Zahl
16.10.2013 14:19:10
Albert
Hi Profis,
herzlichen Dank erstmal für die zahlreiche Rückmeldung zu meinem Eintrag.
Das Hauptsheet hat die Nummer 4. Dann folgen Messberichte mit 4.01, 4.02, etc.
Später folgen dann noch zwei Sheets (5.Kommentare, 6.Fazit)
Anscheindend bin ich zu doof, eure Codes einzufügen.
Ich hab in meiner Erklärung einen Fehler entdeckt. Der Wert sollte sich um 0.01 erhöhen.
Ich hatte 0,01 statt 0.01 geschrieben.
Was mache ich falsch?
Anbei poste ich noch meinen bestehenden Code.
Sub Neues_Sheet()
Application.ScreenUpdating = False
Sheets("4.01").Select
Sheets("4.01").Copy Before:=Sheets("5.Schlussfolgerung")
Sheets("4.01 (2)").Name = CStr(Replace(Sheets(Sheets.Count).Name, ".", ",") + 0.01)
Range("A2").Select
'Worksheets.Add.Name = CStr(Replace(Sheets(Sheets.Count).Name, ".", ",") + 0.01)
'ActiveSheet.Move after:=Sheets(Sheets.Count)
Application.ScreenUpdating = True
End Sub
Gruß
A.

Anzeige
AW: Sheetsname ist Zahl
16.10.2013 14:34:28
Beverly
Hi Albert,
wenn nach dem letzten Nummern-Tabellenblatt noch 2 andere folgen, die nicht mit berücksichtig werden sollen, dann musst du als Bezug nicht das letzte sondern das 3.-letzte nehmen. Ausgehend von meinem Code würde er dann so aussehen:
Application.Substitute(Worksheets(Worksheets.Count - 2).Name, ".", ",") + 0.01


AW: Sheetsname ist Zahl
16.10.2013 15:15:52
Albert
Hi Beverly,
wie wähle ich das vorherige Sheet aus, ohne zu wissen (VBA-technisch), wie es heißt.
Sprich, benutze doch mal das vorherige Sheet.... dann gehts weiter.
Dankeschön
A.

Anzeige
AW: Sheetsname ist Zahl
16.10.2013 17:59:37
Beverly
Hi Albert,
das letzte Arbeitsblatt ermittelt man hiermit:
Worksheets.Count
das vorletzte so:
Worksheets.Count - 1
und das vor-vorletzte
Worksheets.Count - 2


AW: Sheetsname ist Zahl
16.10.2013 15:16:53
Erich
Hi Albert,
mit dem "letzten Sheet" hast du uns ein wenig in die falsche Richtung geführt.
Es geht um das letzte Sheet mit dem Namen "4.nn" (nn von 01 bis 99).
Die folgende Prozedur ermittelt das größte nn in "4.nn", erhöht um 0,01 und vergibt das als neuen Namen.
Probier mal:

Option Explicit
Sub Neues_Sheet()
Dim wks As Worksheet, sName As String, sTmp As String
'   Application.ScreenUpdating = False 'vielleicht NACH dem Test aktivieren
For Each wks In ThisWorkbook.Worksheets
sName = wks.Name
If Left(wks.Name, 2) = "4." And Len(sName) = 4 And IsNumeric(sName) Then
If sTmp 
Nebenbei: Das "Sheets("4.01").Select" zu beginn deines Codes war einfach überflüssig.
Ach ja, da war noch meine Frage:
Wie soll das neue Blatt heißen, wenn das aktuell letzte den Namen 4.99 hat? 5.00 oder 4.100 oder ...?
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

Anzeige
AW: Sheetsname ist Zahl
16.10.2013 16:04:53
Albert
Hallo Erich,
das war's! Meine Güte, is das klasse.
Vielen herzlichen Dank!
Gruß
A.

Danke für deine Rückmeldung und ...
16.10.2013 17:08:29
Erich
Hi Albert,
... nun nochmal - auch Antworter haben manchmal Fragen:
Ach ja, da war noch meine Frage:
Wie soll das neue Blatt heißen, wenn das aktuell letzte den Namen 4.99 hat? 5.00 oder 4.100 oder ...?
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige