Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1264to1268
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Formatierungsprüfung

Formatierungsprüfung
Black
Hallo Zusammen,
Ich möchte per VBA eine Formatierungsprüfung durchführen.
Das ganze soll etwa so aussehen:
In I7 steht eine Nummer zb: 23-45-AB.S2
Nun soll überprüft werden ob in J7 bis BG7 die nummer das selbe Format hat.
zb.:
45-65-CB.A8 ist richtig
AB_76.bg.kl ist falsch
ist das realisierbar oder hat jemand eine idee?
schon were wenn die falschen Zeilen rot makiert werden.

19
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Formatierungsprüfung
10.06.2012 10:12:31
Hajo_Zi
Du möchtest nicht das Format prüfen das ist Text, sondern den Aufbau.
Option Explicit
Sub Pruefen()
Dim RaZelle As Range
Dim LoI As Long
For Each RaZelle In Range("J7:BG7")
If Len(RaZelle)  Len(Range("I7")) Then
RaZelle.Interior.Color = 65280
Else
For LoI = 1 To Len(Range("I7"))
If Mid(Range("I7"), LoI, 1) = "-" Then
If Mid(RaZelle, LoI, 1)  "-" Then
RaZelle.Interior.Color = 65280
Exit For
End If
ElseIf Mid(Range("I7"), LoI, 1) = "." Then
If Mid(RaZelle, LoI, 1)  "." Then
RaZelle.Interior.Color = 65280
Exit For
End If
ElseIf IsNumeric(Mid(Range("I7"), LoI, 1)) Then
If Not IsNumeric(Mid(RaZelle, LoI, 1)) Then
RaZelle.Interior.Color = 65280
Exit For
End If
End If
Next LoI
End If
Next RaZelle
End Sub

Anzeige
Nachfragen
10.06.2012 10:17:06
Reinhard
Hallo Black,
die Regeln mußt du genauer nennen.
xx-xx-xx.xx
ist das was sein muß?
Groß/kleinsschreibung?
Immer genau zwei Zeichen in xx?
Buchstaben/Zahlen egal?
Gruß
Reinhard
AW: Nachfragen
10.06.2012 10:19:28
Hajo_Zi
Hallo Reinhard,
es sind jetzt schon 2 Hinweise zur Lösung. Lasse doch den Fragesteller entscheiden ob offen.
Gruß Hajo
AW: Nachfragen
10.06.2012 10:45:08
Black
Hallo Zusammen,
vielen Dank für die schnelle Antwort.
Das Format ist nicht definiert, es kann immer anderes sein.
Gross kleinschreibung ist egal
Zahlen/ Buchstaben müssen geprüft werden.
es kann also auch einmal nur eine 23 da stehen oder dan eine komplexere nummer mit Buchstaben.
Anzeige
AW: Nachfragen
10.06.2012 10:46:35
Hajo_Zi
ich gehe davon aus Du hast den Code nicht getestet, warum auch.
Das Format stellt Excel automatisch fest.
Gruß Hajo
AW: Nachfragen
10.06.2012 11:05:00
Black
klar habe ich es geprüft, es funktioniert auch recht gut (vielen Danke an dieser Stelle) aber es wird keine unterscheidung zwischen Bustaben und Zahlen gemacht, ist das überhaut möglich?
AW: Buchstaben und Zahlen
10.06.2012 11:07:10
Hajo_Zi
also der Code Unterschiedet zwischen Buchstaben und zahlen. Und er kennzeichnet die Zelle korrekt.
Gruß Hajo
Anzeige
AW: Buchstaben und Zahlen
10.06.2012 11:11:42
Black
ja das macht er, aber irgendwie nicht beim ersten :
zB.
Vorlage:
L-419201BMa
falsch:
3-419201BMa dieser Makiert er nicht.
Gruss Black
AW: Buchstaben und Zahlen
10.06.2012 11:13:16
Black
ja das macht er, aber irgendwie nicht beim ersten :
zB.
Vorlage:
L-419201BMa
falsch:
3-419201BMa dieser Makiert er nicht.
Gruss Black
AW: Buchstaben und Zahlen
10.06.2012 11:16:57
Hajo_Zi
das kann ich nicht Testen, was wohl daran liegt das ich Deine Datei nicht sehe. In meibner Date ist es korrekt getestet.
Ich baue keine Datei nach, die Zeit hat schon jemand investiert.
Gruß Hajo
Anzeige
AW: Buchstaben und Zahlen
10.06.2012 11:33:23
Hajo_Zi

Option Explicit
Sub Pruefen()
Dim RaZelle As Range
Dim LoI As Long
For Each RaZelle In Range("J7:BG7")
If Len(RaZelle)  Len(Range("I7")) Then
RaZelle.Interior.Color = 65280
Else
For LoI = 1 To Len(Range("I7"))
If Mid(Range("I7"), LoI, 1) = "-" Then
If Mid(RaZelle, LoI, 1)  "-" Then
RaZelle.Interior.Color = 65280
Exit For
End If
ElseIf Mid(Range("I7"), LoI, 1) = "." Then
If Mid(RaZelle, LoI, 1)  "." Then
RaZelle.Interior.Color = 65280
Exit For
End If
ElseIf IsNumeric(Mid(Range("I7"), LoI, 1)) Then
If Not IsNumeric(Mid(RaZelle, LoI, 1)) Then
RaZelle.Interior.Color = 65280
Exit For
End If
ElseIf Not IsNumeric(Mid(Range("I7"), LoI, 1)) Then
If IsNumeric(Mid(RaZelle, LoI, 1)) Then
RaZelle.Interior.Color = 65280
Exit For
End If
End If
Next LoI
End If
Next RaZelle
End Sub
Gruß Hajo
Anzeige
AW: Buchstaben und Zahlen
10.06.2012 11:50:09
Black
Super, vielen dank. funktioniert Hervorragend.
Gruss Black
AW: Buchstaben und Zahlen
10.06.2012 16:15:25
Black
Ich habe nochmal einen kleinen Fehler gefunden, die Sonderzeichen kann er nicht auseinande alten, also "/" ist "-" sprich er gibt keinen Fehler an wenn statt / ein - ist
Eine idee?
AW: Buchstaben und Zahlen
10.06.2012 16:18:05
Hajo_Zi
die zeichen waren nicht in Deiner Vorgabe.
dann mußt Du diesen Code
ElseIf Mid(Range("I7"), LoI, 1) = "." Then
If Mid(RaZelle, LoI, 1)  "." Then
RaZelle.Interior.Color = 65280
Exit For
End If

und auf das entsprechende Zeichen ändern.
Gruß Hajo
Anzeige
AW: Buchstaben und Zahlen
10.06.2012 16:17:07
Black
Ich habe nochmal einen kleinen Fehler gefunden, die Sonderzeichen kann er nicht auseinande alten, also "/" ist "-" sprich er gibt keinen Fehler an wenn statt / ein - ist
Eine idee?
AW: Buchstaben und Zahlen
10.06.2012 16:19:22
Gerd
Vorerst keine weitere.
Gruß Gerd
AW: Buchstaben und Zahlen
10.06.2012 16:25:59
Hajo_Zi
alle Zeichen die Du Explicit prüfen willst, mußt Du in dem Code eintragen, wie vorgeschlagen. Ansonsten sind es Buchstaben.
Gruß Hajo
AW: Formatierungsprüfung
10.06.2012 11:56:48
Gerd
Hallo B.!
Sub teste()
Dim i As Integer, strMuster As String, razzelle As Range
For i = 1 To Len(Range("I7"))
Select Case True
Case IsNumeric(Mid(Range("I7"), i, 1))
strMuster = strMuster & "#"
Case UCase$(Mid(Range("I7"), i, 1))  LCase$(Mid(Range("I7"), i, 1))
strMuster = strMuster & "?"
Case Else
strMuster = strMuster & Mid(Range("I7"), i, 1)
End Select
Next
For Each razzelle In Range("J7:BG7")
If Not razzelle Like strMuster Then razzelle.Interior.Color = vbRed
End If
End Sub
Gruß Gerd
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige