Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Nach letztem Leerzeichen des Shapenamen die Zahlen anzeigen

Forumthread: Nach letztem Leerzeichen des Shapenamen die Zahlen anzeigen

Nach letztem Leerzeichen des Shapenamen die Zahlen anzeigen
11.08.2025 19:27:48
Dieter(Drummer)
Guten Tag an alle.

Im markierten Sechseck wird eine TextBox zentriert eingefügt und die letzten 3 Zahlen des Namens des Sechsecks werden in der TextBox angezeigt. Das klappt.

Hier die Codezeilen, die die 3 letzten Zeichen des Sechsecks (Shape) in der TextBox zeigen:
' Name des Sechsecks extrahieren und letzte Ziffer (hier 3) ermitteln

name = sh.name
lastDigit = Right(name, 3)


Ich suche die Variante, dass die Zahlen des Sechsecknamens nach dem letzten Leerfeld im Namen in der TextBox eingefügt werden.
z.B.
Sechsecknamen: "Sechseck 123"
soll nur "123" in TextBox stehen. Es können auch mal weniger Zahlen im Namen stehen.

Also nur nach dem letzten Leerfeld die Zahlen ausgeben.

Mit der Bitte um Hilfe,
grüßt, Dieter (Drummer)

Musterdatei:
https://www.herber.de/bbs/user/178571.xlsm
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nach letztem Leerzeichen des Shapenamen die Zahlen anzeigen
11.08.2025 19:55:02
Yal
Moin Dieter,

3 Möglichkeiten:
- Split nach Leerzeichen, dann letzte Element der entstehenden Array ausgeben:
Sub NachLeerzeichen()

Dim tmp
Const cTest = "khjga asd asd 12345 6789"

tmp = Split(cTest)
Debug.Print tmp(UBound(tmp))
End Sub

- Ermittlung der letzte Leerzeichen mit InstrRev
Sub NachLeerzeichen()

Const cTest = "khjga asd asd 12345 6789"

Debug.Print Mid(cTest, InStrRev(cTest, " ") + 1)
End Sub

- Verwendung einer Schleife (hier in einer separaten Funktion):
Function NumerischeTeil(ByVal Text As String) As String

Dim Erg
Do While IsNumeric(Right(Text, 1))
Erg = Right(Text, 1) & Erg
Text = Left(Text, Len(Text) - 1)
Loop
NumerischeTeil = Erg
End Function

Sub Test()
Debug.Print NumerischeTeil("test 123 45687")
End Sub


VG
Yal
Anzeige
AW: Nach letztem Leerzeichen des Shapenamen die Zahlen anzeigen
11.08.2025 20:19:45
Uduuh
Hallo,
x=Split(name)

lastDigit=x(ubound(x))


Gruß aus'm Pott
Udo
AW: Nach letztem Leerzeichen des Shapenamen die Zahlen anzeigen
11.08.2025 20:46:37
Dieter(Drummer)
Danke Udo,

die Variante von Yal klappt prima.

Herzlichen Dank und Gruß,
Dieter(Drummer)
noch eine Anmerkung
12.08.2025 00:24:10
Uduuh
Hallo,
du solltest die Variable name anders benennen, da name eine Eigenschaft diverser Objekte ist (sh.name, workbook.name, worksheet.name, etc.)
Verwende nie VBA-Schlüsselwörter als Variable.
Besser strName oder so.

Gruß aus'm Pott
Udo
Anzeige
AW: noch eine Anmerkung
12.08.2025 10:58:38
Dieter(Drummer)
Danke Udo,

werde mit damit befassen und sehen, wie ich das ändere.

Danke und Gruß,
Dieter(Drummer)
AW: Nach letztem Leerzeichen des Shapenamen die Zahlen anzeigen
11.08.2025 20:09:30
Dieter(Drummer)
Danke Yal für Rückmeldung und Varianten.

Leider weiss ich nicht, wie ich die Möglichkeit, eine der Varinaten, in meinen bestehenden Code einfügen kann.
Kannst du mir da nochmal helfen?

Mit Gruß,
Dieter(Drummer)
Anzeige
AW: Nach letztem Leerzeichen des Shapenamen die Zahlen anzeigen
11.08.2025 20:20:53
Yal
' Name des Sechsecks extrahieren und letzte Ziffer (hier 3) ermitteln

lastDigit = Mid(sh.Name, InStrRev(sh.Name, " ") + 1)

VG
Yal
AW: Nach letztem Leerzeichen des Shapenamen die Zahlen anzeigen
11.08.2025 20:35:18
Dieter(Drummer)
Danke Yal,

habe es so eingefügt:
 ' Name des Sechsecks extrahieren und letzte Ziffer (hier 3) ermitteln

name = sh.name
lastDigit = Mid(sh.name, InStrRev(sh.name, " ") + 1)


und klappt perfekt.

Herzlichen Dank und
Gruß, Dieter(Drummer)
Anzeige
AW: Nach letztem Leerzeichen des Shapenamen die Zahlen anzeigen
11.08.2025 20:45:00
Yal
Hallo Dieter,

wichtig ist, dass Du verstehst, was da passiert.
Mit
name = sh.Name
übergibst Du den Name der Shape einer Variable "name".
Mit
lastDigit = Mid(sh.Name, InStrRev(sh.Name, " ") + 1)
greifst Du nochmal direkt auf dem Namen der Shape, ohne die Variable "name" zu verwenden.
Da diese Variable "name" nirgendwo sonst verwendet wird, ist diese nutzlos. Man kann sich daher die erste Zeile ("name = sh.name") sparen.

VG
Yal
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige