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

Autokennzeichen automatisch formatieren

Forumthread: Autokennzeichen automatisch formatieren

Autokennzeichen automatisch formatieren
25.11.2017 18:50:21
Hans
Hallo Forum,
Dank eurer Hilfe gelingt es mir schon in einer Zelle automatisch Kleinbuchstaben in Großbuchstaben zu wandeln.
Hier möchte ich Kraftfahrzeug Kennzeichen erfassen und zwar in diesem Format:
H-AL 199 / HH-A 205 usw.
Da die Erste Buchstabenfolge zwischen 1 und 3 Zeichen hat muss das also variabel sein. Dann ein Trennungsstriche "-" und nun die folgenden Buchstaben (auch wieder 1 oder 2 Buchstaben möglich) Danach ein Leerzeichen und die Zahlenfolge...
Kann man sowas umsetzen? und wenn ja; wie?
Vielen Dank
Hans
Anzeige

24
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Autokennzeichen automatisch formatieren
25.11.2017 18:52:25
Hajo_Zi
Hallo Hans,

Tabelle1
 AB
26h-al 209H-AL 209

verwendete Formeln
Zelle Formel Bereich N/A
B26=GROSS(A26)  
Excel-Inn.de
Hajo-Excel.de
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
Add-In-Version 25.14 einschl. 64 Bit



Ich gebe keinen Dank für eine Rückmeldung, da ich durch solche Beiträge nicht meine Beitragszahl erhöhen muss.
Also ich schreibe keine Beiträge mit dem Betreff "Gerne u. Danke für die Rückmeldung. o.w.T."
Rückmeldung ist ja in der Heutigen Zeit nicht üblich und die wenigen die eine Rückmeldung geben,
mögen mir das verzeihen, das kein Danke für eine Rückmeldung kommt.
Beiträge von Werner, Luc, robert und folgende lese ich nicht.
Anzeige
AW: Autokennzeichen automatisch formatieren
25.11.2017 18:55:37
Hans
Hallo HaJo,
das mit dem Großbuchstaben habe ich schon...
Mir fehlt noch die Formatierung
A-A 1
AA-A 1
AA-AA 1
ABC-A 1
ABC-AA 1
Also 1/2/3 Buchstaben für die Herkunft
1-2 Buchstaben
Leerzeichen
Zahlen
MfG
Hans
das geht nicht
25.11.2017 19:10:30
WF
Hi,
wie oder wodurch soll eine Maschine (Excel) erkennen, ob
ABC: A-BC oder AB-C sein soll ?
WF
Anzeige
AW: das geht nicht
25.11.2017 19:17:10
Hans
Hallo WF,
ich dachte bei der Eingabe.... 1 Buchstabe / 2 Buchstaben / 3Buchstabe "Leerzeichen" 1 Buchstabe / 2 Buchstabe "Leerzeichen"
Weiß nicht ob man mich versteht.... Also bei einem Buchstaben = a "Leerzeichen" ca "Leerzeichen" 123
Entspricht A-CA 123
Hans
AW: das geht nicht
25.11.2017 19:30:36
Sepp
Hallo Hans,
in das Modul der Tabelle (Range anpassen!).
' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim objRange As Object, strTemp As String

On Error GoTo ErrorHandler
If Not Intersect(Target, Range("A2:A100")) Is Nothing Then
  Application.EnableEvents = False
  For Each objRange In Intersect(Target, Range("A2:A100"))
    If Len(objRange) Then
      strTemp = UCase(Trim(Replace(objRange, "-", "")))
      If Len(strTemp) = Len(Replace(strTemp, " ", "")) + 2 Then
        objRange = Split(strTemp, " ")(0) & "-" & Split(strTemp, " ")(1) & _
          " " & Split(strTemp, " ")(2)
      End If
    End If
  Next
End If

ErrorHandler:
Application.EnableEvents = True
End Sub

Gruß Sepp

Anzeige
AW: das geht nicht
25.11.2017 20:19:02
Hans
Hallo Sepp,
ich hab dich leider nicht ganz verstanden wohin mit dem Code!?
So sieht mein VBA Projekt bisher aus
Userbild
Leider kann ich VBA wenn überhaupt nur mit dem Makrorekorder
Meine KFZ Kennzeichen sollen in Zelle AT5 eingefügt werden.
Also hab ich das Makro so geändert:
' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim objRange As Object, strTemp As String
On Error GoTo ErrorHandler
If Not Intersect(Target, Range("AT5")) Is Nothing Then
  Application.EnableEvents = False
  For Each objRange In Intersect(Target, Range("AT5"))
    If Len(objRange) Then
      strTemp = UCase(Trim(Replace(objRange, "-", "")))
      If Len(strTemp) = Len(Replace(strTemp, " ", "")) + 2 Then
        objRange = Split(strTemp, " ")(0) & "-" & Split(strTemp, " ")(1) & _
          " " & Split(strTemp, " ")(2)
      End If
    End If
  Next
End If
ErrorHandler:
Application.EnableEvents = True
End Sub
Hans
Anzeige
AW: das geht nicht
25.11.2017 20:25:50
Sepp
Hallo Hans,
in VBE Doppelklick auf "Tabelle1(Hauptseite)" und in des Fenster den Code einfügen.
Die Code-Anpassung ist OK, allerdings kann man diesen, wenn nur eine Zelle überwacht werden soll, auch noch kürzen.
' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

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

On Error GoTo ErrorHandler
If Not Intersect(Target, Range("AT5")) Is Nothing Then
  Application.EnableEvents = False
  If Len(Target) Then
    strTemp = UCase(Trim(Replace(Target, "-", "")))
    If Len(strTemp) = Len(Replace(strTemp, " ", "")) + 2 Then
      Target = Split(strTemp, " ")(0) & "-" & Split(strTemp, " ")(1) & _
        " " & Split(strTemp, " ")(2)
    End If
  End If
End If

ErrorHandler:
Application.EnableEvents = True
End Sub

Gruß Sepp

Anzeige
AW: das geht nicht
25.11.2017 20:43:47
Hans
Hallo Sepp,
hab den Code so kopiert und eingegeben.
Beim Einfügen erscheinen sofort einige rote Zeilen:
Userbild
und beim Ausführen bekomme ich eine Fehlermeldung:
Userbild
MfG
Hans
Anzeige
AW: das geht nicht
25.11.2017 20:46:28
Sepp
Hallo Hans,
das sind einige Verweise im VBE zerschossen. Gehe im VBE auf "Extras" > "Verweise" und mach die Haken bei allen weg, wo "NICHT VORHANDEN" steht. Datei anschließend speichern, XL schließen und neu öffnen.
Gruß Sepp

Anzeige
AW: das geht nicht
25.11.2017 20:48:49
Hans
Moin moin,
VBE ?
Hans
AW: das geht nicht
25.11.2017 20:57:11
Hans
Moin,
da sind nur diese Haken drin:
Userbild
Hans
AW: das geht nicht
25.11.2017 20:59:12
Sepp
Hallo Hans,
dann sollte es problemlos laufen. XL mal neu gestartet?
Gruß Sepp

Anzeige
AW: das geht nicht
25.11.2017 21:08:24
Hans
Moin
hab gerade mal den ganzen PC neu gestartet:
Nun kommt:
Userbild
Hans
AW: das geht nicht
25.11.2017 21:12:07
Sepp
Hallo Hans,
dann hast du zwei mal Code mit dem selben Namen im Modul!
Gruß Sepp

Anzeige
@Sepp
25.11.2017 21:19:53
Hans
Hallo Sepp,
ich glaube ich gebe das Vorhaben vorerst auf und spitze die Leute dazu an auf die richtige Eingabe zu achten, das geht wohl schneller....
Vielen Dank für deine Mühe!
Hans
Am besten Datei hochladen, Sepp ...
25.11.2017 21:22:18
lupo1
... dann habt Ihr beide ein Erfolgserlebnis.
ich brauch keines. o.T.
25.11.2017 21:33:53
Sepp
Gruß Sepp

Anzeige
ein erledigter Thread ...
26.11.2017 13:33:20
lupo1
... wäre doch auch eins. :-)
AW: ein erledigter Thread ...
26.11.2017 13:52:08
Sepp
Hallo lupo1,
ach, das ist mir egal, es liegt an Hans, ob er weitermachen will oder nicht. Ich hab ihn ja schon auf den Fehler hingewiesen.
Gruß Sepp

Anzeige
RegEx oder Worksheet_Change
25.11.2017 19:27:07
lupo1
Dies ist ein Beispiel, wo man nur mit VBA weiterkommt.
Ein anderes ist das Zenon-Paradoxon.
obwohl ...
25.11.2017 19:31:35
lupo1
Eigentlich muss man nur VOR und NACH dem Leerzeichen analysieren:
Vorne ein String max. 6 Zeichen, davon 1 als - an vor- oder drittletzter Stelle
Hinten eine bis zu 4stellige Zahl
Eigentlich sollte das auch mit DÜ gehen, wenn man Umlaute und - einfach in ASCII-26-Buchstaben wechselt.
Anzeige
AW: Autokennzeichen automatisch formatieren
25.11.2017 19:28:17
onur
Wenn der Text in A1 steht:
=WENN(LÄNGE(Z1S1)-LÄNGE(WECHSELN(Z1S1;" ";""))=2;WECHSELN(GROSS(Z1S1);" ";"-";1);GROSS(Z1S1))
Die Formel berücksichtigt sogar, ob ein "-" schon gesetzt ist oder nicht.
Also egal, ob "k aa 127" oder "k-aa 127", es kommt immer heraus: "K-AA 127".
Anzeige
AW: Autokennzeichen automatisch formatieren
25.11.2017 21:20:43
onur
Was ist den eigentlich mit meiner Formel?
Bekomme ich nicht einmal eine Antwort?
Natürlich bekommst du deine Antwort!
25.11.2017 21:23:33
Hans
Moin moin,
eine Formel kann ich wohl nicht nehmen, da ja die Eingabe in der Zelle erfolgt, wo dann das Kennzeichen auch angezeigt werden soll...
Hab es trotzdem mal in einer Anderen Tabelle getestet und... es geht wirklich gut!
Hans
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Autokennzeichen automatisch formatieren in Excel


Schritt-für-Schritt-Anleitung

Um Autokennzeichen wie "H-AL 199" oder "HH-A 205" automatisch zu formatieren, kannst du VBA (Visual Basic for Applications) in Excel nutzen. Hier sind die Schritte, die du befolgen solltest:

  1. Öffne den Visual Basic Editor:

    • Drücke ALT + F11, um den VBE (Visual Basic Editor) zu öffnen.
  2. Füge den Code ein:

    • Doppelklicke auf "Tabelle1" oder das entsprechende Arbeitsblatt in deinem Projekt.
    • Kopiere den folgenden Code in das Codefenster:
    Private Sub Worksheet_Change(ByVal Target As Range)
       Dim strTemp As String
       On Error GoTo ErrorHandler
       If Not Intersect(Target, Range("A1")) Is Nothing Then
           Application.EnableEvents = False
           If Len(Target) Then
               strTemp = UCase(Trim(Replace(Target, "-", "")))
               If Len(strTemp) = Len(Replace(strTemp, " ", "")) + 2 Then
                   Target = Split(strTemp, " ")(0) & "-" & Split(strTemp, " ")(1) & _
                   " " & Split(strTemp, " ")(2)
               End If
           End If
       End If
    ErrorHandler:
       Application.EnableEvents = True
    End Sub
  3. Anpassung der Zellreferenz:

    • Ändere Range("A1") auf die Zelle, in der du das Autokennzeichen eingeben möchtest, zum Beispiel Range("AT5").
  4. Speichern und Schließen:

    • Speicher deine Änderungen und schließe den VBE.
  5. Teste die Eingabe:

    • Gebe ein Kennzeichen wie "h-al 199" in die angegebene Zelle ein. Es sollte automatisch in "H-AL 199" umgewandelt werden.

Häufige Fehler und Lösungen

  • Fehlermeldungen beim Ausführen des Codes:

    • Stelle sicher, dass du keine doppelten Sub-Namen im Modul hast. Überprüfe auch die "Verweise" im VBE auf nicht vorhandene Verknüpfungen.
  • Keine Formatierung:

    • Überprüfe, ob das Makro in der richtigen Zelle ausgeführt wird. Stelle sicher, dass die Zelle korrekt referenziert ist.
  • VBE nicht gefunden:

    • Du kannst den VBE öffnen, indem du ALT + F11 drückst.

Alternative Methoden

Wenn du keine VBA verwenden möchtest, kannst du auch eine Formel nutzen:

=WENN(LÄNGE(A1)-LÄNGE(WECHSELN(A1;" ";""))=2;WECHSELN(GROSS(A1);" ";"-";1);GROSS(A1))

Diese Formel überprüft, ob ein "-" bereits gesetzt ist und formatiert das Kennzeichen entsprechend.


Praktische Beispiele

  • Beispiel 1: Eingabe: h-al 199 → Ausgabe: H-AL 199
  • Beispiel 2: Eingabe: abc-a 123 → Ausgabe: ABC-A 123
  • Beispiel 3: Eingabe: dü aa 456 → Ausgabe: DÜ-AA 456

Diese Formate sind für die deutschen Autokennzeichen wie "autokennzeichen dü" oder "autokennzeichen aw" geeignet.


Tipps für Profis

  • VBA anpassen: Du kannst den Code so anpassen, dass er auch andere Formate unterstützt, z.B. "ABC-AA 123".
  • Fehlerbehandlung: Integriere eine bessere Fehlerbehandlung, um dem Benutzer klare Rückmeldungen zu geben, wenn die Eingabe nicht dem erwarteten Format entspricht.
  • Dynamische Zellreferenzen: Verwende dynamische Zellreferenzen, um die Eingabe in verschiedenen Zellen zu ermöglichen.

FAQ: Häufige Fragen

1. Kann ich auch andere Kennzeichenformate umsetzen?
Ja, du kannst die VBA-Funktion anpassen, um andere Formate wie "autokennzeichen al" zu unterstützen.

2. Funktioniert das auch in Excel Online?
VBA-Makros funktionieren nicht in Excel Online. Du musst dafür die Desktop-Version nutzen.

3. Wie kann ich das Format auf mehrere Zellen anwenden?
Ändere die Range im VBA-Code auf den gewünschten Zellenbereich, z.B. Range("A1:A100").

4. Was tun, wenn das Kennzeichen nicht korrekt formatiert wird?
Überprüfe die Eingabe auf Leerzeichen oder unerwartete Zeichen und stelle sicher, dass die Eingabe den festgelegten Regeln entspricht.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige