makro und excel-version

29/01/2008 - 16:02 von Gerhard Reil | Report spam
Hallo NG,

ich habe eine Frage zu dem Makro und Excel-Version:
Vor einiger Zeit ist mein Unternehmen auf die Excel-Version 2003 SP3
WIN XP PROF umgestiegen - und hier setzen meine Probleme ein!
Das nachfolgende Makro làuft unter de Excel-Version 2002 SP 3
einwandfrei - unter der neuen Version Excel 2003 SP3 WIN XP Prof.
bekomme ich bei der ersten Zeile der Toolbars einen Fehler angezeigt.

Nun bin ich in VBA nicht so fit, um diesen Fehler einwandfrei einzu-
grenzen - mein Schluß war eben die Excel-Version.

Liege ich da richtig und wenn ja, wie muß das Makro geàndert werden.
Kann mir Jemand helfen????

Danke im Voraus
Gerhard Reil

und hier das Makro:

Sub Symbolleiste_Setup()
Application.ScreenUpdating = False
Toolbars.Add Name:="Bezüge umwandeln"
Toolbars("Bezüge umwandeln").Visible = True
Toolbars("Bezüge umwandeln").Width = 1527
With Application
.ShowToolTips = True
.LargeButtons = False
.ColorButtons = True
End With
With Toolbars("Bezüge umwandeln")
.ToolbarButtons.Add Button:"1, before:=1
.ToolbarButtons(1).OnAction = "Bezug_umwandeln"
.ToolbarButtons.Add Button:"2, before:=2
.ToolbarButtons(2).OnAction = "Bezug_umwandeln"
.ToolbarButtons.Add Button:"3, before:=3
.ToolbarButtons(3).OnAction = "Bezug_umwandeln"
.ToolbarButtons.Add Button:"4, before:=4
.ToolbarButtons(4).OnAction = "Bezug_umwandeln"
End With

With Toolbars("Bezüge umwandeln")
.ToolbarButtons(1).Name = "Relativ (A1)"
.ToolbarButtons(2).Name = "Gemischt ($A1)"
.ToolbarButtons(3).Name = "Gemischt (A$1)"
.ToolbarButtons(4).Name = "Absolut ($A$1)"
.Width = 150
End With

End Sub

Sub Bezug_umwandeln()
If Application.Caller(2) = "Bezüge umwandeln" Then
Select Case Application.Caller(1)
Case Is = 1
For Each temp In Selection
If temp.Formula <> "" Then
temp.Formula =
Application.ConvertFormula(Formula:=temp.Formula, fromReferenceStyle:=xlA1,
toReferenceStyle:=xlA1, toAbsolute:=xlRelative, relativeTo:=ActiveCell)
End If
Next temp

Case Is = 2
For Each temp In Selection
If temp.Formula <> "" Then
temp.Formula =
Application.ConvertFormula(Formula:=temp.Formula, fromReferenceStyle:=xlA1,
toReferenceStyle:=xlA1, toAbsolute:=xlRelRowAbsColumn,
relativeTo:=ActiveCell)
End If
Next temp

Case Is = 3
For Each temp In Selection
If temp.Formula <> "" Then
temp.Formula =
Application.ConvertFormula(Formula:=temp.Formula, fromReferenceStyle:=xlA1,
toReferenceStyle:=xlA1, toAbsolute:=xlAbsRowRelColumn,
relativeTo:=ActiveCell)
End If
Next temp

Case Is = 4
For Each temp In Selection
If temp.Formula <> "" Then
temp.Formula =
Application.ConvertFormula(Formula:=temp.Formula, fromReferenceStyle:=xlA1,
toReferenceStyle:=xlA1, toAbsolute:=xlAbsolute, relativeTo:=ActiveCell)
End If
Next temp
End Select
End If
End Sub

Sub auto_close()
On Error GoTo clearerror
Toolbars("Bezüge umwandeln").Delete
Exit Sub
clearerror:
Exit Sub
End Sub
 

Lesen sie die antworten

#1 Wolfgang Kutsche
29/01/2008 - 17:07 | Warnen spam
Hallo Gerhard,

bei mir laufen Deine Makros.

Das "Sub Symbolleiste_Setup" darf aber nur einmal gestartet werden, sonst
gibt es einen Fehler, weil die Symbollleiste bereits vorhanden und sichtbar
ist.
Die Symbollleiste wird erst beim Schließen der Datei wieder gelöscht.
Da sollte eine Abfrage eingebaut werden "Existiert die Symbolleiste bereits?".
Wenn Du dazu Hilfe brauchst melde Dich nochmal.

Das "Sub Bezug_umwandeln()" wird durch die Symbolleiste aufgerufen.
Ein direkter Start des Makros ergibt einen Fehler.

Gruß Wolfgang
WinXP Home SP2, Office 2003 SP2
http://www.wk-bau-edv.de

Ähnliche fragen