von schnubber » Fr, 25.03.2011 15:32
Hallo Forum, ich schon wieder, mit nem neuen problem
Ich habe mit hilfe von einigen leuten hier im forum ein makro erstellt, in dem es darum geht unkorrekt geschriebene daten zu markieren
hier ein beispiel
(ich habe immer kreterien vorgegeben wann die daten falsch sind)
Spalte D2:D20 emails (richtig geschriebene und falsch geschriebene, die falschen sind markiert)
Spalte F2:f20 - telefonnummern (wieder sind die falsch getippten bzw die mit tippfehlenr wie statt 6 ein "&" zeichen markiert)
hier ist der script
Code: Alles auswählen
Sub ReplaceInCalc
Dim oDoc As Object
Dim oSheet As Object
Dim oSearch As Object, oResult As Object 'Replace Descriptor (ScCellSearchObj)
Dim oFound As Object, oFoundCursor as Object
Dim n As Long
Dim oDataArry As Object
REM das sind die kreterien für die telefonprüfung
oDoc = ThisComponent
oSheet = oDoc.Sheets.getByIndex(0)
oCellRange = oSheet.getCellRangeByName("F2:F32000")
For n =1 to 99
if oCellRange.getCellByPosition(0,n).string <> "" then oCellRange.getCellByPosition(0,n).CellBackColor = RGB(255,0,0)
Next n
oSearch = oCellRange.createSearchDescriptor
oSearch.SearchString = "^[0-9\/\- ]{1,}$"
oSearch.SearchRegularExpression = TRUE
oResult = oSheet.findAll(oSearch)
For n = 0 To oResult.count - 1
oFound = oResult(n)
oFound.CellBackColor = RGB(255,255,255)
Next n
REM das sind die kreterien für die mailprüfung
oDoc = ThisComponent
oSheet = oDoc.Sheets.getByIndex(0)
oCellRange = oSheet.getCellRangeByName("D2:D32000")
for n =1 to 99
if oCellRange.getCellByPosition(0,n).string <> "" then oCellRange.getCellByPosition(0,n).CellBackColor = RGB(255,0,0)
next
oSearch = oCellRange.createSearchDescriptor
oSearch.SearchString = "^[a-z0-9_\-]+(\.[a-z0-9_\-]+)*@([0-9a-z][0-9a-z\-]*[0-9a-z]\.)+([a-z]{2,4}|museum)$"
oSearch.SearchRegularExpression = TRUE
oResult = oSheet.findAll(oSearch)
For n = 0 To oResult.count - 1
oFound = oResult(n)
oFound.CellBackColor = RGB(255,255,255)
Next n
End Sub
nu kann ich ja bei meinen tabellen nicht immer drauf achten dass die mails immer in der d spalte sind und tel nummer in der f spalte
deswegen ist meine idee so eine art schleife zu machen die prüft: wenn spalte A=emails Dann nutze bitte die befehle für die mails und wenn spalte a= telofonnummern , dann nutze die befehle zum markieren von tel. nummern für telefonnummern dann geht es mit der b spalte , weiter..und so weiter und sofort im zellbereich A1:F200 zb.
leider sind meine programmierkenntnisse SEHR begrenzt und ich wüsste nicht wie ich die idee umsetzen soll , jat jemand ne idee wenn ja schlagt scriptvorschläge vor , würde mich ercht freuen...bin am verzweifeln.
Moderation,4: Tippfehler Betreff korrigiert
Hallo Forum, ich schon wieder, mit nem neuen problem
Ich habe mit hilfe von einigen leuten hier im forum ein makro erstellt, in dem es darum geht unkorrekt geschriebene daten zu markieren
hier ein beispiel
(ich habe immer kreterien vorgegeben wann die daten falsch sind)
Spalte D2:D20 emails (richtig geschriebene und falsch geschriebene, die falschen sind markiert)
Spalte F2:f20 - telefonnummern (wieder sind die falsch getippten bzw die mit tippfehlenr wie statt 6 ein "&" zeichen markiert)
hier ist der script[code] Sub ReplaceInCalc
Dim oDoc As Object
Dim oSheet As Object
Dim oSearch As Object, oResult As Object 'Replace Descriptor (ScCellSearchObj)
Dim oFound As Object, oFoundCursor as Object
Dim n As Long
Dim oDataArry As Object
REM das sind die kreterien für die telefonprüfung
oDoc = ThisComponent
oSheet = oDoc.Sheets.getByIndex(0)
oCellRange = oSheet.getCellRangeByName("F2:F32000")
For n =1 to 99
if oCellRange.getCellByPosition(0,n).string <> "" then oCellRange.getCellByPosition(0,n).CellBackColor = RGB(255,0,0)
Next n
oSearch = oCellRange.createSearchDescriptor
oSearch.SearchString = "^[0-9\/\- ]{1,}$"
oSearch.SearchRegularExpression = TRUE
oResult = oSheet.findAll(oSearch)
For n = 0 To oResult.count - 1
oFound = oResult(n)
oFound.CellBackColor = RGB(255,255,255)
Next n
REM das sind die kreterien für die mailprüfung
oDoc = ThisComponent
oSheet = oDoc.Sheets.getByIndex(0)
oCellRange = oSheet.getCellRangeByName("D2:D32000")
for n =1 to 99
if oCellRange.getCellByPosition(0,n).string <> "" then oCellRange.getCellByPosition(0,n).CellBackColor = RGB(255,0,0)
next
oSearch = oCellRange.createSearchDescriptor
oSearch.SearchString = "^[a-z0-9_\-]+(\.[a-z0-9_\-]+)*@([0-9a-z][0-9a-z\-]*[0-9a-z]\.)+([a-z]{2,4}|museum)$"
oSearch.SearchRegularExpression = TRUE
oResult = oSheet.findAll(oSearch)
For n = 0 To oResult.count - 1
oFound = oResult(n)
oFound.CellBackColor = RGB(255,255,255)
Next n
End Sub[/code]
nu kann ich ja bei meinen tabellen nicht immer drauf achten dass die mails immer in der d spalte sind und tel nummer in der f spalte
deswegen ist meine idee so eine art schleife zu machen die prüft: wenn spalte A=emails Dann nutze bitte die befehle für die mails und wenn spalte a= telofonnummern , dann nutze die befehle zum markieren von tel. nummern für telefonnummern dann geht es mit der b spalte , weiter..und so weiter und sofort im zellbereich A1:F200 zb.
leider sind meine programmierkenntnisse SEHR begrenzt und ich wüsste nicht wie ich die idee umsetzen soll , jat jemand ne idee wenn ja schlagt scriptvorschläge vor , würde mich ercht freuen...bin am verzweifeln.
[color=#800000]Moderation,4[/color]: Tippfehler Betreff korrigiert