... Excel-User auf einem Niveau von einer guten Vier bis Fünf in Schulnoten (Selbsteinschätzung). Also nicht ganz Hoffnungslos, aber weit von einem Profi entfernt. ... hier im Büro mit Excel Office Standard 2010 unterwegs. ... auf der Suche nach einer Lösung für folgendes Problem:
Ich möchte eine kleine Tabelle erstellen, in denen eine Kombination aus einem (Gross-)Buchstabe und 6 Zahlen in einem bestimmten Format angezeigt werden.
Beispiel: wenn ich "t12346" eingebe, soll es als "T12.345/6" angezeigt werden. Ich kann den Bereich der Zahlenreihe mit "Zellen formatieren/Benutzerdefiniert" einfach in "12.345/6" anzeigen lassen.
Aber wie bekomme ich es hin, dass der (beliebige) voran eingegebene Buchstabe immer als Grossbuchstabe ausgegeben wird?
Kannst Du mir hier helfen? Ich gebe zu, dass ich mich mal vor langer Zeit ein klein wenig an VBA versucht habe, aber so richtig vertieft habe ich es dann doch nicht mehr.
09.03.2022, 15:29 (Dieser Beitrag wurde zuletzt bearbeitet: 09.03.2022, 15:30 von Fennek.)
Hallo,
ich finde eine Lösung mit Formeln und zwei Spalten einfacher.
Mit VBA: Wenn in Spalte A ein Wert mit einem Buchstaben gefolgt von 6 Zahlen eingegeben wird, sollte das Format wie im Ausgangspost beschrieben, erstellt werden:
Code:
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 1 And Len(Target) = 7 And VBA.IsNumeric(Mid(Target, 2)) Then With Target .Characters(7, 0).Insert ("/") .Characters(4, 0).Insert (".") .Value = UCase(.Value) End With Else End If End Sub
Dieser Code muss in das Code-Teil des Sheets.
Schauen wir mal.
mfg
Folgende(r) 1 Nutzer sagt Danke an Fennek für diesen Beitrag:1 Nutzer sagt Danke an Fennek für diesen Beitrag 28 • GerdGeist
09.03.2022, 16:57 (Dieser Beitrag wurde zuletzt bearbeitet: 09.03.2022, 16:57 von Fennek.)
ja, ich hatte das mit dem Format nicht hinbekommen:
Code:
Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False If Target.Column = 1 And Target Like "[A-z]######" Then Target = UCase(Format(Target, "@@@.@@@/@")) Else MsgBox "Falsche Eingabe" End If Application.EnableEvents = True End Sub
09.03.2022, 17:12 (Dieser Beitrag wurde zuletzt bearbeitet: 09.03.2022, 17:21 von GerdGeist.)
Hallo Fennek,
Dein erster Code funktioniert PERFEKT (in Spalte A). Die Werte sollen aber in Spalte $B:$P in diesem Format erscheinen. Spalte A ist quasi Formationsfrei.
Das Ganze soll so aussehen wie im Anhang. Das mit der Zeile "MsgBox "Falsche Eingabe" ist eigentlich nicht nötig (von meiner Seite aus). ist es für den Code relevant?
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, ActiveSheet.Columns("B:P")) Is Nothing And Target Like "[A-z]######" Then Target = UCase(Format(Target, "@@@.@@@/@")) End If End Sub
Folgende(r) 1 Nutzer sagt Danke an Fennek für diesen Beitrag:1 Nutzer sagt Danke an Fennek für diesen Beitrag 28 • GerdGeist
Vielen Dank, das war genau das Richtige. Ich hatte mal 1997 ein wenig in VBA "reingeschnuppert" mit Excel 95 und 97. Aber dann geschäftlich wieder davon weggekommen. Ich muss definitiv da wieder was tun.