Grossbuchstaben in Kombi mit Zahlen in einem bestimmten Format
#1
Hallo Zusammen,

ich bin ...

... 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?
Antworten Top
#2
Hallo,

wenn es in einer Spalte sein soll, geht es wohl nur mit VBA.

In zwei Spalte ginge es mit Formeln

Code:
=gross(links(a1;1))

mfg

ungetestet
Antworten Top
#3
Hallo Fennek,

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.
Antworten Top
#4
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:
  • GerdGeist
Antworten Top
#5
In Excel
PHP-Code:
=PROPER(LEFT(A1))&TEXT(MID(A1;2;LEN(A1));"0\.000\/0"
In VBA
Code:
Sub M_snb()
   MsgBox Format([A1], ">@@@.@@@/@")
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#6
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
Antworten Top
#7
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?


Angehängte Dateien
.xlsm   Ablage Objekte.xlsm (Größe: 60,23 KB / Downloads: 3)
Antworten Top
#8
Dann so:

Code:
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:
  • GerdGeist
Antworten Top
#9
Guten Morgen Fennek,

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.

Danke
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste