View Single Post
  #5   Report Post  
Posted to microsoft.public.excel.programming
Dave Peterson Dave Peterson is offline
external usenet poster
 
Posts: 35,218
Default re-naming styles

I don't understand why it would be that difficult to use Peter's suggestion.

Option Explicit
Sub testme02()

Dim myCell As Range
Dim myOldStyleName As String
Dim myNewStyleName As String
Dim TestStyle As Style

myOldStyleName = "asdf"
myNewStyleName = "qwer"

Set TestStyle = Nothing
On Error Resume Next
Set TestStyle = ActiveWorkbook.Styles(myOldStyleName)
On Error GoTo 0

If TestStyle Is Nothing Then
MsgBox myOldStyleName & " isn't used in this workbook"
Else
With ActiveSheet
Set myCell = .Cells.SpecialCells(xlCellTypeLastCell).Offset(1, 1)
myCell.Style = TestStyle.Name
.Parent.Styles.Add Name:=myNewStyleName, BasedOn:=myCell
TestStyle.Delete
myCell.Clear
End With
End If

End Sub

Marcel Marien wrote:

Dear Peter,

thanks a lot for your input. It seesm I have to look for a different
solution. Defining a new style and then replacing the old style is too
cumbersome and too much fraught with hazard. (I thought since in WinWord one
can simply re-name a style and Excel comes out of the same stable, so to
say, it might have been programmed according to a similar philosophy).

Greetings,
Marcel

AFAIK you cannot rename a style but you can add a new style "based on"
some
cell, eg

With ActiveCell
.ClearFormats
.Style = "OldStyle"
End With
ActiveWorkbook.Styles.Add Name:="NewSyle", Basedon:=ActiveCell

If the idea is to replace existing cells formatted with OldStyle with
NewStyle you'll need to loop all cells in the usedrange of each sheet.
Could
be time consuming if you don't know how to limit a search, though there's
a
lot you can do to speed up the process. But that's another subject!

Regards,
Peter T


"Marcel Marien" wrote in message
...
Hi,

can anybody tell me whether and if yes how it is possible to re-name a

style
in VBA? I want the style-definition to stay unchanged and just change the
name.

Thanks in advance,
Marcel





--

Dave Peterson