Seite 1 von 1
Re: [MAKRO]Zellbereich definieren-nur wo was drinn steht
Verfasst: Fr, 25.03.2011 10:44
von clag
Hallo Gast,
du zäumst das Pferd von hinten auf
erst färbst du alles rot ein und die Treffer dann wieder weiß,
ist doch eigentlich logisch das dann auch die leeren Zellen rot bleiben.
Da solltest du vielleicht eine andere Strategie wählen oder nur Zellen rot färben die auch Inhalt haben.....
Re: [MAKRO]Zellbereich definieren-nur wo was drinn steht
Verfasst: Fr, 25.03.2011 10:48
von schnubber
clag hat geschrieben:Hallo Gast,
du zäumst das Pferd von hinten auf
erst färbst du alles rot ein und die Treffer dann wieder weiß,
ist doch eigentlich logisch das dann auch die leeren Zellen rot bleiben.
Da solltest du vielleicht eine andere Strategie wählen oder nur Zellen rot färben die auch Inhalt haben.....
das will ich doch auch, aber der soll nur die zellen rot färben, die inhalt haben aber auch nur die färben die falsch sind
hast du ein vorschlag wie ich das besser machen könnte?
ich meine man könnte doch ne schleife einbauen dass er alle zellen durchgeht und die gefüllten markier und due leeren stehen lässt /ignoriert
Re: [MAKRO]Zellbereich definieren-nur wo was drinn steht
Verfasst: Fr, 25.03.2011 11:01
von Karolus
Hallo
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
oDoc = ThisComponent
oSheet = oDoc.Sheets.getByIndex(0)
oCellRange = oSheet.getCellRangeByName("A2:A1000")
oCellrange.CellBackColor = -1
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,0,0)
Next
End Sub
Tuts das?
Gruß Karo
Re: [MAKRO]Zellbereich definieren-nur wo was drinn steht
Verfasst: Fr, 25.03.2011 11:10
von schnubber
Ja, ABER er markier mir nur zellen mit inhal aber er markier nur die richtigen....der soll nur die falsch geschriebenen makieren

trotzden danke für die mühe , das ziel ist ja dass ich nur einmal den befehl gebe: ja nur die A spalte und nur die gefüllten , die falsch geschrieben sind markieren =)
Re: [MAKRO]Zellbereich definieren-nur wo was drinn steht
Verfasst: Fr, 25.03.2011 11:13
von clag
Hi,
da war Karolus schneller .....
ich hätte dir zum probieren vorgeschlagen
ersetze dein
zB durch
Code: Alles auswählen
for n =1 to 99
if oSheet.getCellByPosition(0,n).string <> "" then oSheet.getCellByPosition(0,n).CellBackColor = RGB(255,0,0)
next
Re: [MAKRO]Zellbereich definieren-nur wo was drinn steht
Verfasst: Fr, 25.03.2011 11:18
von schnubber
clag hat geschrieben:Hi,
da war Karolus schneller .....
ich hätte dir zum probieren vorgeschlagen
ersetze dein
zB durch
Code: Alles auswählen
for n =1 to 99
if oSheet.getCellByPosition(0,n).string <> "" then oSheet.getCellByPosition(0,n).CellBackColor = RGB(255,0,0)
next
ich versuchs...
Re: [MAKRO]Zellbereich definieren-nur wo was drinn steht
Verfasst: Fr, 25.03.2011 11:30
von clag
hi,
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
oDoc = ThisComponent
oSheet = oDoc.Sheets.getByIndex(0)
oCellRange = oSheet.getCellRangeByName("A10:A20")
' oCellrange.CellBackColor = RGB(255,0,0)
for n = 1 to 99
if oSheet.getCellByPosition(0,n).string <> "" then oSheet.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)
REM oFoundCursor = oFound.Text.createTextCursorByRange(oFound)
REM oFoundCursor.CharWeight = com.sun.star.awt.FontWeight.BOLD
Next n
End Sub
die Schleife prüft jede Zelle A2 - A100 auf ungleich "leer" und färbt bei wahr den Hintergrund rot
Re: [MAKRO]Zellbereich definieren-nur wo was drinn steht
Verfasst: Fr, 25.03.2011 11:31
von Karolus
Hallo
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
oDoc = ThisComponent
oSheet = oDoc.Sheets.getByIndex(0)
oStartCell = oSheet.getCellRangeByName("A2")
oCursor = oSheet.createCursorbyRange( oStartCell )
oCursor.gotoEndOfUsedArea( True )
endrow = oCursor.rangeAddress.EndRow
oCellRange = osheet.getcellrangebyPosition(0, 1, 0, endrow )
oCellrange.CellBackColor = RGB(255,0,0)
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 = -1
Next
End Sub
Dann eben so!
Karo
Re: Calc: Zellbereich definieren-nur wo was drinn steht
Verfasst: Fr, 25.03.2011 12:22
von schnubber
ich möchte mich bei allen beiteligten die mir versucht haben zu helfen herzlich bedanken Clag sein vorschlag die kleine zeile zu ersetzten hat funktioniert! DANKE DANKE DANKE