Benutzerdefinierte Formatierung von Zellen mit Zahlen und Buchstaben

240 Aufrufe
Gefragt 20, Apr 2017 in Tabellenkalkulation von Andiwillswissen
Hallo,

ich möchte die Zellen F19 bis F3000 in Excel so formatieren dass ich nur Zahlen und Buchstaben eingebe, und die Zelle automatisch folgende Darstellung anzeigt:
ZB: 0-170420-AA

Der Aufbau ist immer gleich! Die erste Zahl ist immer eine "0"
danach kommt immer ein Bindestrich
darauf folgt immer eine beliebige 6stellige Zahl (die ich frei eintippen kann)
daraufhin wieder ein Bildestrich
zuletzt folgen zwei beliebige Buchstaben die groß geschrieben werden sollen (die tippe ich auch frei ein)

Ich würde gerne nur "170420aa" tippen wollen und die Formatierung sollte das ganze "0-170420-AA" darstellen.

Zur Not kann ich auf die Großschreibung der AA's auch verzichten.

Leider bin in eine Niete in VBA. Vielleicht hat mir jemand eine Anleitung und eine Programmierung bereit. Habe schon so viel im Internet recherchiert, aber habe nie etwas gefunden was miur weitergeholfen hat.

Vielen Dank im Vorraus
Andi

1 Antwort

0 Punkte
Beantwortet 21, Apr 2017 von m-o Profi (11,137 Punkte)
Hallo Andi,

für in das VBA-Project der betreffenden Tabelle den folgenden Code ein:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim strInhalt As String

'Nur Ausführen, wenn Eingabe im Bereich F19 bis F3000 erfolgt
If Not Intersect(Target, Range("F19:F3000")) Is Nothing Then
'Inhalt aus Zelle auslesen
strInhalt = Target.Value

'Prüfen, ob Eingabe 8 Zeichen lang ist
If Len(strInhalt) <> 8 Then
MsgBox "Die Eingabe ist nicht 8 Zeichen lang! Abbruch!", 16, "Fehler"
Target.Select
Exit Sub
End If

'Ereignissteuerungen ausschalten
Application.EnableEvents = False

'neues Format in Zeile schreiben
Target.Value = "0-" & Left(strInhalt, 6) & "-" & UCase(Right(strInhalt, 2))

'Ereignissteuerungen einschalten
Application.EnableEvents = True

End If

End Sub

Eine Prüfung ob die ersten sechs Zeichen Zahlen und die letzten 2 Zeichen Buchstaben sind, findet nicht statt, nur ob die Eingabe 8 Zeichen lang ist.

Gruß

M.O.
...