On Fri, 2005-03-11 at 09:27, G. Roderick Singleton wrote:
> On Wed, 2005-03-09 at 15:30 -0700, Jeanie Hahn wrote:
> > Hi, I hope I am sending this to the right place.
> > 
> >   I have a macro I used in Microsoft excel to highlight duplicates and
> > promote the duplicates to the top of the file.
> > 
> >  I am hoping that someone out there can help me convert this macro so
> > that I can use it in staroffice.
> > 
> > I have attached the macro.
> > 
> > Thanks,
> > Jeanie
> > plain text document attachment (macro2.txt)
> > Sub HighlightDupTickets()
> >  
> > 
> 
> Please see if http://documentation.openoffice.org/HOW_TO/ and the VBA
> docs help.

Using the doc that Ger refers to (bottom of the page) here is the
converted macro:

Sub HighlightDupTickets() 
' Highlight Duplicate Ticket Numbers 
' by TCRMA-Solid Waste Kenny Perryman 
'Converted for Calc by Ian Laurenson (Iannz)

'Macro Purpose
' Starting in row 2 searches for duplicates entries in column J
' Moves the first duplicate of a duplicate pair to row 2
' Colours all duplicate rows yellow

' This macro assumes the data is sorted on Column J

' I think that rows and columns in Excel are 1 based
' whereas in Calc they are zero based.


Dim celly As Integer ' Declares variable 

oController = ThisComponent.CurrentController

'These vraiables needed for the UNO dispatch calls for copy and paste
oFrame = oController.Frame
oDispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

ws = oController.ActiveSheet ' sets active sheet to ws so you dont have
to type activesheet over and over 

celly = 2 ' initializes variable 

' loops. stops on empty cell 
While len(ws.getCellbyPosition(9, celly).string) > 0
  'looks for cells that match 
  If ws.getCellbyPosition(9, celly).String = _
   ws.getCellbyPosition(9, celly + 1).String Then 
   'The next row (which is a duplicate) is coloured yellow
    ws.Rows(celly + 1).CellBackColor = 16776960 
    'Cut the first row of the duplicate pair and insert it at row 2
    oController.select(ws.Rows(celly))
    oDispatcher.executeDispatch(oFrame, ".uno:Cut", "", 0, Array())
    ws.Rows.RemoveByIndex(celly, 1)
    ws.Rows.InsertByIndex(1, 1)
    oController.select(ws.Rows(1))
    oDispatcher.executeDispatch(oFrame, ".uno:Paste", "", 0, Array())
   'Set the cut and pasted row to yellow as well
    ws.Rows(1).CellBackColor = 16776960 
  End If

  celly = celly + 1 ' change cell referance to next cell 

Wend ' end of loop. used with while 

End Sub


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to