Hallo Leute, ich habe ein Makro geschrieben das Zahlenfolgen in einer Zelle zensiert, diese Zahlenfolgen sind 4 Stellig.
Nun sind die Jahreszahlen das Problem, wenn im Feld steht
"Herr xyz mit der Pesonalnummer 8293 hat 2009" wird es in
"Herr xyz mit der Personalnummer **** hat **** " zensiert.
Das ist auch der Sinn des Makros, Personalnummern in einer Tabelle zu zensieren, jedoch nicht die Jahreszahlen.
Hier ist das Makro:
________________
Private Function ziffernfolge_zensieren(ByVal xZeile As String) As String
Dim MomentanePositionDesZeigers As Integer
Dim AnzahlZeichenvonXZeile As Integer
Dim AnzahlGefundeneZiffern As Integer
Dim i As Integer ' Laufvariable
Dim AuswertbaresZeichen As String
Dim ZuErsetzenderString As String
Dim ZuErsetzenderStringZeichen As String
ziffernfolge_zensieren = ""
xZeile = xZeile & " "
AnzahlZeichenvonXZeile = Len(xZeile)
For MomentanePositionDesZeigers = 1 To AnzahlZeichenvonXZeile Step 1
AuswertbaresZeichen = Mid(xZeile, MomentanePositionDesZeigers, 1)
If IsNumeric(AuswertbaresZeichen) Then
ZuErsetzenderString = ZuErsetzenderString & AuswertbaresZeichen
ZuErsetzenderStringZeichen = ZuErsetzenderStringZeichen & "*"
Else
If Len(ZuErsetzenderString) = 4 Then
If Not IsNumeric(AuswertbaresZeichen) Then
ziffernfolge_zensieren = Replace(ziffernfolge_zensieren, ZuErsetzenderString, ZuErsetzenderStringZeichen)
ZuErsetzenderString = ""
ZuErsetzenderStringZeichen = ""
Else
ZuErsetzenderString = ZuErsetzenderString & AuswertbaresZeichen
ZuErsetzenderStringZeichen = ZuErsetzenderStringZeichen & "*"
End If
Else
ZuErsetzenderString = ""
ZuErsetzenderStringZeichen = ""
End If
End If
ziffernfolge_zensieren = ziffernfolge_zensieren & AuswertbaresZeichen
Next
ziffernfolge_zensieren = Trim(ziffernfolge_zensieren)
End Function
Private Sub TestaufrufZiffernfolgeerstezen()
Dim Uebergabestring, ergebnisstring As String
Uebergabestring = "57 979977j 3353jkjfsdgjsdfk31.12.2009lgjklsdf3.2.99jgklsdf2011fghgh1.1.11jgkljsdfgkljsdflkgjklsdfjgklsdfjgkl3"
ergebnisstring = ziffernfolge_zensieren(Uebergabestring)
ergebnisstring = ergebnisstring
End Sub
__________
Kann mir einer von euch sagen wo ich was einbauen muss, damit die Zahlen 1990,1991,1992 etc. bis 2020 ausgelassen werden?
Vielen Dank für eure Antworten.
Nun sind die Jahreszahlen das Problem, wenn im Feld steht
"Herr xyz mit der Pesonalnummer 8293 hat 2009" wird es in
"Herr xyz mit der Personalnummer **** hat **** " zensiert.
Das ist auch der Sinn des Makros, Personalnummern in einer Tabelle zu zensieren, jedoch nicht die Jahreszahlen.
Hier ist das Makro:
________________
Private Function ziffernfolge_zensieren(ByVal xZeile As String) As String
Dim MomentanePositionDesZeigers As Integer
Dim AnzahlZeichenvonXZeile As Integer
Dim AnzahlGefundeneZiffern As Integer
Dim i As Integer ' Laufvariable
Dim AuswertbaresZeichen As String
Dim ZuErsetzenderString As String
Dim ZuErsetzenderStringZeichen As String
ziffernfolge_zensieren = ""
xZeile = xZeile & " "
AnzahlZeichenvonXZeile = Len(xZeile)
For MomentanePositionDesZeigers = 1 To AnzahlZeichenvonXZeile Step 1
AuswertbaresZeichen = Mid(xZeile, MomentanePositionDesZeigers, 1)
If IsNumeric(AuswertbaresZeichen) Then
ZuErsetzenderString = ZuErsetzenderString & AuswertbaresZeichen
ZuErsetzenderStringZeichen = ZuErsetzenderStringZeichen & "*"
Else
If Len(ZuErsetzenderString) = 4 Then
If Not IsNumeric(AuswertbaresZeichen) Then
ziffernfolge_zensieren = Replace(ziffernfolge_zensieren, ZuErsetzenderString, ZuErsetzenderStringZeichen)
ZuErsetzenderString = ""
ZuErsetzenderStringZeichen = ""
Else
ZuErsetzenderString = ZuErsetzenderString & AuswertbaresZeichen
ZuErsetzenderStringZeichen = ZuErsetzenderStringZeichen & "*"
End If
Else
ZuErsetzenderString = ""
ZuErsetzenderStringZeichen = ""
End If
End If
ziffernfolge_zensieren = ziffernfolge_zensieren & AuswertbaresZeichen
Next
ziffernfolge_zensieren = Trim(ziffernfolge_zensieren)
End Function
Private Sub TestaufrufZiffernfolgeerstezen()
Dim Uebergabestring, ergebnisstring As String
Uebergabestring = "57 979977j 3353jkjfsdgjsdfk31.12.2009lgjklsdf3.2.99jgklsdf2011fghgh1.1.11jgkljsdfgkljsdflkgjklsdfjgklsdfjgkl3"
ergebnisstring = ziffernfolge_zensieren(Uebergabestring)
ergebnisstring = ergebnisstring
End Sub
__________
Kann mir einer von euch sagen wo ich was einbauen muss, damit die Zahlen 1990,1991,1992 etc. bis 2020 ausgelassen werden?
Vielen Dank für eure Antworten.