Discussion:
Application.DisplayStatusBar
(zu alt für eine Antwort)
Peter Schirmer
2005-06-30 19:17:07 UTC
Permalink
Hallo,

ich habe unter Excel 2003 (mit SP1) ein Makro geschrieben, dass die
Statusleiste nutzen soll.

Meine Anweisung lautet:

Application.ScreenUpdating = False
oldStatusBar = Application.DisplayStatusBar
Application.DisplayStatusBar = True

.... (weitere Anweisungen)

Am Ende geht's dann mit

Application.StatusBar = False
Application.DisplayStatusBar = oldStatusBar
Application.ScreenUpdating = True

wieder weiter, also zum Ende.

Diese Anweisungen habe so aus der Excel 2003-Hilfe entnommen.

Nun soll das Makro unter Excel 97 laufen.

Allerdings scheitert es an den oben aufgeführten Anweisungen. Die
Fehlermeldung besagt, dass die Prozedur nicht richtig deklariert sei.
Deaktiviere ich die Anweisungen, läuft unter Excel 97 alles normal.

Woran liegt, dass? Ich würde gerne die Statusleiste unter Excel 97
nutzen. Ich helfe mir zur Zeit mit einer Msgbox, aber das ist nicht
gerade elegant.
Muss ich in Excel 97 mit der Statusleiste anders umgehen?

Über eine Antwort würde ich mich freuen!

Gruß
Peter
--
Mozilla brüllt weiter!

This message was brought to you by Mozilla 1.8b1
Download Mozilla at: http://www.mozilla.org
German language pack: http://mozilla.kairo.at
Furthermore: http://www.mozdev.org
Stefan Onken
2005-06-30 19:53:11 UTC
Permalink
hallo Peter,
wie lautet denn die exakte Fehlermeldung?
Bei der Fehlermeldung kommst du über den button "Testen"
in den VBA-Editor, die den Fehler verursachenden Codezeile
ist gelb unterlegt. Welche ist es?

Gruß
stefan
Post by Peter Schirmer
Hallo,
ich habe unter Excel 2003 (mit SP1) ein Makro geschrieben,
dass die Statusleiste nutzen soll.
Application.ScreenUpdating = False
oldStatusBar = Application.DisplayStatusBar
Application.DisplayStatusBar = True
.... (weitere Anweisungen)
Am Ende geht's dann mit
Application.StatusBar = False
Application.DisplayStatusBar = oldStatusBar
Application.ScreenUpdating = True
wieder weiter, also zum Ende.
Diese Anweisungen habe so aus der Excel 2003-Hilfe entnommen.
Nun soll das Makro unter Excel 97 laufen.
Allerdings scheitert es an den oben aufgeführten Anweisungen.
Die Fehlermeldung besagt, dass die Prozedur nicht richtig
deklariert sei. Deaktiviere ich die Anweisungen, läuft unter
Excel 97 alles normal.
Woran liegt, dass? Ich würde gerne die Statusleiste unter
Excel 97 nutzen. Ich helfe mir zur Zeit mit einer Msgbox, aber
das ist nicht gerade elegant.
Muss ich in Excel 97 mit der Statusleiste anders umgehen?
Über eine Antwort würde ich mich freuen!
Gruß
Peter
Peter Schirmer
2005-07-01 06:34:13 UTC
Permalink
Post by Stefan Onken
hallo Peter,
wie lautet denn die exakte Fehlermeldung?
Bei der Fehlermeldung kommst du über den button "Testen"
in den VBA-Editor, die den Fehler verursachenden Codezeile
ist gelb unterlegt. Welche ist es?
Gruß
stefan
Post by Peter Schirmer
Hallo,
ich habe unter Excel 2003 (mit SP1) ein Makro geschrieben,
dass die Statusleiste nutzen soll.
Application.ScreenUpdating = False
oldStatusBar = Application.DisplayStatusBar
Application.DisplayStatusBar = True
.... (weitere Anweisungen)
Am Ende geht's dann mit
Application.StatusBar = False
Application.DisplayStatusBar = oldStatusBar
Application.ScreenUpdating = True
wieder weiter, also zum Ende.
Diese Anweisungen habe so aus der Excel 2003-Hilfe entnommen.
Nun soll das Makro unter Excel 97 laufen.
Allerdings scheitert es an den oben aufgeführten Anweisungen.
Die Fehlermeldung besagt, dass die Prozedur nicht richtig
deklariert sei. Deaktiviere ich die Anweisungen, läuft unter
Excel 97 alles normal.
Woran liegt, dass? Ich würde gerne die Statusleiste unter
Excel 97 nutzen. Ich helfe mir zur Zeit mit einer Msgbox, aber
das ist nicht gerade elegant.
Muss ich in Excel 97 mit der Statusleiste anders umgehen?
Über eine Antwort würde ich mich freuen!
Gruß
Peter
Die exakte Anweisung lautet:

Application.DisplayStatusBar = round(Prozent/Grund)*100) & " bearbeitet"

Peter
Stefan Onken
2005-07-01 13:41:16 UTC
Permalink
hallo Peter,
Post by Peter Schirmer
Application.DisplayStatusBar = round(Prozent/Grund)*100) & "
bearbeitet"
und die exakte Fehlermeldung?

Ich tippe mal, dass es Verweise sind, im VBA-Editor unter
Extras/Verweise hast du einen Eintrag: NICHT VORHANDEN:
da musst du das Häkchen davor entfernen.

Gruss
stefan
--
Immer auf dem aktuellen Stand mit den Newsgroups von freenet.de:
http://newsgroups.freenet.de
Peter Schirmer
2005-07-01 16:02:09 UTC
Permalink
Post by Stefan Onken
hallo Peter,
Post by Peter Schirmer
Application.DisplayStatusBar = round(Prozent/Grund)*100) & "
bearbeitet"
und die exakte Fehlermeldung?
Ich tippe mal, dass es Verweise sind, im VBA-Editor unter
da musst du das Häkchen davor entfernen.
Gruss
stefan
Hallo Stefan,

das war's auch nicht.

Application.DisplayStatusBar = round(Prozent/Grund)*100) & " bearbeitet"

Ich habe einfach die Anweisung zu Application.Statusbar aus der VBA
Hilfe aus Office 97 kopiert und eingefügt. Es gab wieder die
Fehlermeldung (markiert war der Befehl round).

Ich habe dann einfach round entfernt und es laufen lassen. Siehe da, es
lief!

Wie runde ich denn dann Werte unter VBA 97?

Gruß
Peter
--
Mozilla brüllt weiter!

This message was brought to you by Mozilla 1.8b1
Download Mozilla at: http://www.mozilla.org
German language pack: http://mozilla.kairo.at
Furthermore: http://www.mozdev.org
Melanie Breden
2005-07-02 06:10:15 UTC
Permalink
Hallo Peter,
Post by Peter Schirmer
Application.DisplayStatusBar = round(Prozent/Grund)*100) & " bearbeitet"
Ich habe dann einfach round entfernt und es laufen lassen. Siehe da, es
lief!
Wie runde ich denn dann Werte unter VBA 97?
Du willst einen Text in der Statuszeile anzeigen?
dafür sind in deiner obigen Syntax zu viele Fehler,
das wird in keiner Excel-Version laufen :-(

1.
Es wird nicht die DisplayStatusBar- , sondern die StatusBar-Eigenschaft verwendet.

2.
Für eine Tabellenfunktion muss in Excel97 das Application-Objekt dem
Funktionsnamen vorangestellt werden.

3.
In Excel97 ist das Argument "Anzahl_Stellen" in der Round-Funktion nicht optional,
es muss ein Wert angegeben werden.

4. Innerhalb der Round-Funktion ist ein Klammerfehler.

Versuchs mal mit dieser Syntax:

Application.StatusBar = Application.Round((Prozent/Grund) * 100, 0) & " bearbeitet"
--
Mit freundlichen Grüssen

Melanie Breden
- Microsoft MVP für Excel -

Microsoft Excel - Die ExpertenTipps http://tinyurl.com/cmned
Das Excel-VBA Codebook http://excel.codebooks.de
Excel-Auftragsprogrammierung
Dr. Eckehard Pfeifer
2005-06-30 20:15:01 UTC
Permalink
Hallo, folgendes geht unter 97 spielend durch

Sub test()
dim oldstatusbar as boolean
Application.ScreenUpdating = False
oldstatusbar = Application.DisplayStatusBar
Application.DisplayStatusBar = True
Application.StatusBar = "test"

Stop

Application.DisplayStatusBar = oldstatusbar
Application.ScreenUpdating = True

End Sub

Was bedeutet eigentlich, dass eine Prozedur nicht richtig deklariert sei?
Ist's vielleicht oldstatusbar, welches nicht vereinbart wurde?

--

MfG EP
Entwicklung - Beratung - Training
(MS Certified Application Developer)
www.dr-e-pfeifer.net
Peter Schirmer
2005-07-01 06:35:33 UTC
Permalink
Post by Dr. Eckehard Pfeifer
Hallo, folgendes geht unter 97 spielend durch
Sub test()
dim oldstatusbar as boolean
Application.ScreenUpdating = False
oldstatusbar = Application.DisplayStatusBar
Application.DisplayStatusBar = True
Application.StatusBar = "test"
Stop
Application.DisplayStatusBar = oldstatusbar
Application.ScreenUpdating = True
End Sub
Was bedeutet eigentlich, dass eine Prozedur nicht richtig deklariert sei?
Ist's vielleicht oldstatusbar, welches nicht vereinbart wurde?
--
MfG EP
Entwicklung - Beratung - Training
(MS Certified Application Developer)
www.dr-e-pfeifer.net
Das oldstatusbar nicht deklariert sein könnte, wäre eine Möglichkeit.
Kann sein, dass ich das übersehen habe.

Müsste das aber nicht unter Excel 2003 auch zu einer Fehlermeldung führen?

Peter
Dr. Eckehard Pfeifer
2005-07-01 07:45:44 UTC
Permalink
Hallo, nur wenn Option Explicit vereinbart ist.

--

MfG EP
Entwicklung - Beratung - Training
(MS Certified Application Developer)
www.dr-e-pfeifer.net
Post by Peter Schirmer
Post by Dr. Eckehard Pfeifer
Hallo, folgendes geht unter 97 spielend durch
Sub test()
dim oldstatusbar as boolean
Application.ScreenUpdating = False
oldstatusbar = Application.DisplayStatusBar
Application.DisplayStatusBar = True
Application.StatusBar = "test"
Stop
Application.DisplayStatusBar = oldstatusbar
Application.ScreenUpdating = True
End Sub
Was bedeutet eigentlich, dass eine Prozedur nicht richtig deklariert sei?
Ist's vielleicht oldstatusbar, welches nicht vereinbart wurde?
--
MfG EP
Entwicklung - Beratung - Training
(MS Certified Application Developer)
www.dr-e-pfeifer.net
Das oldstatusbar nicht deklariert sein könnte, wäre eine Möglichkeit.
Kann sein, dass ich das übersehen habe.
Müsste das aber nicht unter Excel 2003 auch zu einer Fehlermeldung führen?
Peter
Loading...