Datei öffnet so langsam
19.03.2005 21:52:55
Reinhard
dank Nepumuk ransi Hajo u.a. habe ich jetzt meine Datei zum Laufen gebracht, sogar mit einem Klassenmodul drinnen *freu*
Ich habe excel2000, kann mal bitte jmd die Datei testen ob sie auch auf XL97 läuft und auch auf Xl2000?
Mch würde sehr interessieren ob sie sauber nach Beendigung alle Symbolleisten wieder so einstellt wie die Datei sie vorfand, nicht dass ich da jemandem seine Symbolleisten zerschiesse:-(
Passieren tut in der Datei noch nicht viel, in einer eigen Symbolleiste kann man Grundeinstellungen in der Tabelle vornehmen, wie Zeilenfarben ändern und Symbolleisten ein/ausblenden.
Die Sanduhr bleibt beim Start der Datei fast 6 Sekunden stehen (mein rechner hat 450 MHz), obwohl die Ausführung des Workbook_Opens Ereignisses nich mal ne Sekunde dauert, siehe Zellenbereich A1:A3. Kann ich das irgendwie beschleunigen bzw was passiert in den 6 Sekunden?
Im Anhang ist die Datei und der Code von Workbook_Open und der 2 Subs die dort aufgerufen werden. In Worksheets("Einstellungen").Range("A7") steht "wahr" oder "falsch".
Danke
Reinhard
Die Datei: https://www.herber.de/bbs/user/19885.xls
Private Sub Workbook_Open()
Application.ScreenUpdating = False
[A1] = Timer
Call Umblenden(Worksheets("Einstellungen").Range("A7"))
[A2] = Timer
Call Eigene_Leiste
[A3] = Timer
Application.ScreenUpdating = True
End Sub
Sub Eigene_Leiste()
On Error Resume Next
Application.CommandBars("Eigene Symbolleiste").Delete
Set cbar1 = Application.CommandBars.Add("Eigene Symbolleiste", msoBarFloating, False, True)
cbar1.Visible = True
Set EigeneSL = Application.CommandBars("Eigene Symbolleiste")
With cbar1
.Controls.Add Type:=msoControlButton
.Controls.Add Type:=msoControlButton
.Controls.Add Type:=msoControlButton
.Position = msoBarTop
With .Controls(1)
.FaceId = 8
.OnAction = "HauptUF"
.TooltipText = "Tabellengrundeinstellungen"
End With
With .Controls(2)
.FaceId = 8
.OnAction = "HauptUF"
.TooltipText = "Mein Makro"
End With
With .Controls(3)
.FaceId = 49
.OnAction = "Hilfe"
.TooltipText = "Hilfe"
End With
End With
End Sub
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _
(ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _
(ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Long) As Long
Private Enum constats
GWL_STYLE = -16
WS_CAPTION = &HC00000
End Enum
Public Sub Umblenden(ByVal bolOnOff As Boolean)
Dim myCommandBar As CommandBar
Dim lnghWnd As Long, lngStyle As Long
On Error Resume Next
lnghWnd = FindWindow("XLMAIN", vbNullString)
If lnghWnd <> 0 Then
lngStyle = GetWindowLong(lnghWnd, GWL_STYLE)
If bolOnOff Then
lngStyle = lngStyle Or WS_CAPTION
Else
lngStyle = lngStyle And Not WS_CAPTION
End If
SetWindowLong lnghWnd, GWL_STYLE, lngStyle
DrawMenuBar lnghWnd
End If
With Application
'.ScreenUpdating = False
.DisplayStatusBar = bolOnOff
.DisplayFormulaBar = bolOnOff
.DisplayScrollBars = bolOnOff
End With
For Each myCommandBar In Application.CommandBars
myCommandBar.Enabled = bolOnOff
Next
CommandBars("Eigene Symbolleiste").Enabled = True
ActiveWindow.DisplayWorkbookTabs = bolOnOff
'Application.ScreenUpdating = True
End Sub