Menubutton als Schalter

Bild

Betrifft: Menubutton als Schalter
von: Wolfgang
Geschrieben am: 21.09.2003 09:28:22

Ich habe die von Microsoft publizierte Funktion ausprobiert:
Beim Pressen des Buttons wird auch das Makro Overdues_lineup ausgelöst, jedoch beim zweiten klick leider nicht das Makro Standardview. Es kommt auch keine Fehlermeldung. Habe ich die Makroaufrufe falsch eingebaut?


Sub Makroschalter()
    Call CBCtlToggleState("Test")
End Sub


Function CBCtlToggleState(strCBarName As String, _
                          Optional strCtlCaption As String) As Boolean
   ' Toggle the State property of the strCtlCaption control
   ' on the strCBarName command bar. The State property is
   ' read-only for built-in controls, so if strCtlCaption
   ' is a built-in control, return False and exit the procedure.
   Dim ctlCBarControl As CommandBarControl
   On Error Resume Next
   Set ctlCBarControl = Application.CommandBars("Formatting").Controls("Test")
   If ctlCBarControl.BuiltIn = True Then
      CBCtlToggleState = False
      Exit Function
   End If
   If ctlCBarControl.Type <> msoControlButton Then
      CBCtlToggleState = False
      Exit Function
   End If
   ctlCBarControl.State = Not ctlCBarControl.State
   If Err = 0 Then
       Call Overdues_lineup
      CBCtlToggleState = True
   Else
       Call Standardview
      CBCtlToggleState = False
   End If
End Function

Bild


Betrifft: AW: Menubutton als Schalter
von: GerdW
Geschrieben am: 21.09.2003 13:30:07

Else wird nur erreicht, wenn ein Fehler auftritt!

Gerd


Bild


Betrifft: AW: Menubutton als Schalter
von: Wolfgang
Geschrieben am: 21.09.2003 14:27:41

gerd, könntest du mir bitte die letzten 6-8 zeilen so umschreiben, daß es funktioniert?


Bild


Betrifft: AW: Menubutton als Schalter
von: GerdW
Geschrieben am: 21.09.2003 14:41:18

dein Beispielcode ist nur für eingebautes controls gedacht. Willst
du das wirklich oder gehts um einen eigenen Menüpunkt?

Gerd


Bild


Betrifft: AW: Menubutton als Schalter
von: Wolfgang
Geschrieben am: 21.09.2003 15:27:43

Gerd, funktioniert auch bei selbst eingefügtem button. habe rumgebastelt und es hinbekommen. vielen dank für deine mühe
gruß
wolfgang

If Err = 0 Then
CBCtlToggleState = True

'jetzt den Makroaufruf einbinden
If ctlCBarControl.State = msoButtonUp Then
Call Makro1
Else
Call Makro2
End If
Else
CBCtlToggleState = False
End If

Trotzdem, vielen dank für Deine Mühe
gruß
Wolfgang


 Bild

Beiträge aus den Excel-Beispielen zum Thema " email versenden die letzte"