Makro doppelte daten markieren statt löschen[erledigt]

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

schnubber
**
Beiträge: 33
Registriert: Fr, 25.03.2011 09:46

Makro doppelte daten markieren statt löschen[erledigt]

Beitrag von schnubber »

hi leute,
hab einen folgenden script da, dieser hat die aufgabe mittels eines makros doppelte/dreifache/vierfache daten zu finden und zu löschen, allerdings nicht alle sondern wenn zb 5 daten gleich sind werden 4 gelöscht und 1 bleibt da(währe ja sonst schlimm wenn er alle löschen würde xD) ich will aber dass er mir alle zellen mit duplikaten nicht löscht sondern nur mit ner farbe markiert ...und zwar alle hat jemand ne idee? (durchsucht spalte a)

script :

Code: Alles auswählen

Sub duplikateFiltern
   odoc=thiscomponent
   oSheet = oDoc.CurrentController.getActiveSheet()
   myrows=oSheet.getrows
   oCellCursor = oSheet.createCursor()
   oCellCursor.GotoEndOfUsedArea(True)
   letzte_Zeile = oCellCursor.getRangeAddress.EndRow
   k = 0
   for i = 0 to letzte_Zeile
   text1 = osheet.getcellbyposition(0,i).string
   for j = i + 1 to letzte_Zeile
   text2 =osheet.getcellbyposition(0,j).string
   if   text1 = text2 then
   myrows.removebyindex(j,1)
   letzte_Zeile = oCellCursor.getRangeAddress.EndRow
   j = j - 1
   k = k + 1
   end if   
   next j
   next i
   
End Sub
gruß
schnubber
Zuletzt geändert von schnubber am Di, 05.04.2011 15:15, insgesamt 1-mal geändert.
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Makro doppelte daten markieren statt löschen

Beitrag von DPunch »

Aloha

Für Deinen Lösungsweg würde das simple Ersetze von

Code: Alles auswählen

myrows.removebyindex(j,1)
durch

Code: Alles auswählen

osheet.getcellbyposition(0,j).CellBackColor = RGB(255,0,0)
wohl reichen.
Das runter- bzw. hochzählen musst Du dann natürlich rausnehmen, da keine Zeilen mehr gelöscht werden.
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Makro doppelte daten markieren statt löschen

Beitrag von DPunch »

Diese 3 Zeilen müssen dann raus

Code: Alles auswählen

   letzte_Zeile = oCellCursor.getRangeAddress.EndRow
   j = j - 1
   k = k + 1
schnubber
**
Beiträge: 33
Registriert: Fr, 25.03.2011 09:46

Re: Makro doppelte daten markieren statt löschen

Beitrag von schnubber »

habs raus , dankesehr hatte das mit cellbackcolor auch vor aber allerdings an nem falschen object =( aber nu klappt alles
Antworten