bedingte Zellen-Formatierung zwecks Prüfung der eingegebenen Zahl (Ziffern-Anzahl)
#1
Hallo zusammen,

ist es möglich, mittels einer bedingten Formatierung wie bspw. Einfärbung der entsprechenden Zelle (das bekomme ich soweit hin) den Zelleninhalt auf die schlichte Länge einer Ziffer zu überprüfen?
Hintergrund: wir geben in einer Tabelle manuell interne Kontrollnummern ein, um diese zu einem späteren Zeitpunkt zu Testzwecken auszuwerten.
Diese sind immer 20 Stellen lang!

Wenn jemand in der Eile allerdings einmal eine Ziffer vergisst, dann ist hinterher kaum zu raten, an welcher Stelle diese fehlt  17
Daher wäre es prima, wenn man dies mithilfe einer Formel bewerkstelligen könnte (das bekomme ich NICHT hin   19 ), so daß sich die entsprechende Zelle einfärbt, wenn eine Ziffer vergessen (und vielleicht auch mit ungelenkem Finger eine Ziffer ZUVIEL eingegeben wurde (also vermutlich mit "<>", gell?)

Ich sag mal besten Dank vorab für Eure Hilfe.
VG
Klaus
Ich arbeite mit Menschen zusammen, die Excel nicht so strukturiert und themenzentriert nutzen, wie es hier meistenteils der Fall ist. Excel wird gern auch mal nur zur einfachen Darstellung und Veranschaulichung (teilweise als regelrechter Experimentierkasten oder als "Was-passiert-dann?-Maschine") genutzt und weniger zur "echten Berechnung im professionellem Einsatz". Demzufolge sind meine Fragen auch meistens nicht so logisch und strukturiert aufgebaut wie hier im Forum größtenteils üblich und erscheinen - was ihren Inhalt angeht - manchmal recht naiv. Um so mehr ist Eure Hilfe immer willkommen, vielen Dank für Eure Unterstützung Smile
Antworten Top
#2
=Länge(). Aber damit ist das Problem von Zahlendrehern noch nicht behoben.

Wenn in den Kontrollnummern eine oder zwei Prüfziffern enthalten sind, dann ist es relativ einfach, die erfassten Nummern zu prüfen. Zumindest die versehentlichen Zahlendreher l(Siehe EBAN) lassen sich damit ziemlich zuverlässig ermitteln.
Antworten Top
#3
Hi

bedingte Formatierung mit Formel als Regel: =Länge(A1)<>20

da Leerzellen vermutlich nicht markiert werden sollen: =UND(A1<>"";Länge(A1)<>20)

du kannst natürlich auch zwei Formatierungen anlegen um mit unterschiedlichen Farben zu kennzeichnen, ob ein Zeichen fehlt  oder zu viel ist.
(Länge(a1)>20 und Länge(a1<20)

und so neben bei:
wenn du einen Wert hat, der aus mehr als 15 Ziffern besteht, musst du die Zelle vor Eingabe mit dem Zahlenformat TEXT formatieren oder der Anwender muss beim Eingeben immer das Hochkomma ' voranstellen, um die Eingabe als Text zu kennzeichnen.
Ansonsten wird Excel eine Eingabe, die nur als Ziffern besteht, als Zahl interpretieren und bei Zahlen ist die maximale Genauigkeit 15 Stellen.
dh bei Eingabe von 20 Ziffern werden die letzen 5 Ziffern zu 0

Gruß Daniel
Antworten Top
#4
Es lässt sich auch relativ einfach realisieren, dass wenn die 20 Ziffern als Text erfasst wurden, immer nach 4 Ziffern automatisch (Makro) ein Leerzeichen eingefügt wird. Dann sieht man auch sofort, ob 20 Ziffern eigegeben wurden und der manuelle Abgleich (Vorgabe vs. Erfassung) wird einfacher. Sinnvoll wäre in diesem fall natürlich, wenn die zu erfassenden Kontrollnummern auch die Leerzeichen enthalten würden.
Antworten Top
#5
Hi
du kannst auch schon bei der Eingabe absichern, dass die Eingabe 20 Stellen haben muss
markiere hierzu die Zellen und klicke im Menü

Daten - Datentools - Datenüberprüfung

in dem kleinen Assistenten wählst du dann bei "Einstellungen"
Zulassen: Textlänge
Daten: gleich
Länge: 20

dann bekommt der Anwender eine Fehlermeldung, wenn er mehr oder weniger Zeichen eingibt
den Text der Fehlermeldung kannst du im gleichnamigen Reiter einstellen.

Gruß Daniel
[-] Folgende(r) 1 Nutzer sagt Danke an slowboarder für diesen Beitrag:
  • ws-53
Antworten Top
#6
Zitat:manuell interne Kontrollnummern 

ich würde 'automatisierte Kontrollnummern' bevorzügen
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#7
(12.08.2025, 15:49)snb schrieb: ich würde 'automatisierte Kontrollnummern' bevorzügen

Dann zeige uns bitte, wie das geht.
Antworten Top
#8
z.B.

Code:
Sub M_snb()
  c00 = Environ("temp")
  c01 = Format(Date, "\\A_yyyy_\*")
 
  If Dir(c00 & c01) = "" Then CreateObject("scripting.filesystemobject").CreateTextFile c00 & Left(c01, 8) & "0000"
  c02 = Dir(c00 & c01)

  Name c00 & "\" & c02 As c00 & "\" & Left(c02, 7) & Format(Val(Right(c02, 4)) + 1, "0000")
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#9
Guten Morgen zusammen,

schon mal ganz lieben Dank für die ganzen Ideen, ich werde das heute direkt mal in Angriff nehmen.

Allen einen nicht allzu anstrengenden Tag
LG
Klaus
Ich arbeite mit Menschen zusammen, die Excel nicht so strukturiert und themenzentriert nutzen, wie es hier meistenteils der Fall ist. Excel wird gern auch mal nur zur einfachen Darstellung und Veranschaulichung (teilweise als regelrechter Experimentierkasten oder als "Was-passiert-dann?-Maschine") genutzt und weniger zur "echten Berechnung im professionellem Einsatz". Demzufolge sind meine Fragen auch meistens nicht so logisch und strukturiert aufgebaut wie hier im Forum größtenteils üblich und erscheinen - was ihren Inhalt angeht - manchmal recht naiv. Um so mehr ist Eure Hilfe immer willkommen, vielen Dank für Eure Unterstützung Smile
Antworten Top
#10
oder auch:

Code:
Sub M_snb()
  c00 = Environ("temp") & Format(Date, "\\A_yyyy_")
 
  If Dir(c00 & "*") = "" Then CreateObject("scripting.filesystemobject").CreateTextFile c00 & "0000"
  c01 = Dir(c00 & "*")

  Name c00 & Right(c01, 4) As c00 & Format(Val(Right(c01, 4)) + 1, "0000")
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top


Gehe zu:


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