Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1116to1120
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Checkbox aktualisieren

Checkbox aktualisieren
Lutz
Hallo,
habe im Arbeitsblatt eine Checkbox, schalte damit Vollbild ein / aus, wie kann ich diese Checkbox aktualisieren, wenn ich die Bildschirmansicht über die Menüleiste ändere?
Danke für Hilfe.
M.f.G. Lutz

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Checkbox aktualisieren
15.11.2009 01:14:11
Oberschlumpf
Hi Lutz
Ich hab eine Checkbox in die Tabelle eingefügt, für das Change-Ereignis der Box diesen Code verwendet

If Application.DisplayFullScreen = True Then
Application.DisplayFullScreen = False
Else
Application.DisplayFullScreen = True
End If

und für alle Workbook/Sheet-Ereignisse im VBA-Editor Haltepunkte gestzt.
Wenn ich nun über Menü "Ansicht/Ganzer Bildschirm" das ausführe, was auch die Checkbox macht, passiert das für Excel "unbemerkt", es wird weder über die Box, noch über das Menü ein Ereignis ausgelöst.
Da ich aber nicht weiß, ob es vielleicht z Bsp mit API ne Möglichkeit gibt, lass ich den Thread mal offen.
Ciao
Thorsten
Anzeige
AW: Checkbox aktualisieren
15.11.2009 01:23:57
Lutz
Hallo Torsten,
danke für Deine Hilfe, aber ich sehe Du hast das Problem erkannt, vielleicht kann "uns" jemand helfen. (:-)
M.f.G. Lutz
AW: hier mit eien Timer
15.11.2009 09:12:07
Lutz
Hallo Tino,
dass sieht sehr gut aus, ich werde den Code so in meine Arbeitsmappe einbauen.
Danke.
M.f.G. Lutz
noch ein Vorschlag ...
15.11.2009 11:13:56
Matthias
Hallo
Ich denke mal es geht Dir hier nur um die Optik
(daher der Versuch eine Checkbox auf Billdschirmmodi zu aktualisieren)
Sollte es nicht so sein könntest Du auch z.B. ein Commandbutton benutzen.
Ich würde das dann so machen:
Application.DisplayFullScreen = Not Application.DisplayFullScreen
Da ist eine Überprüfung "eh wurscht" (also egal) ;o)
Bei jedem Klick drehst Du so den Zustand um.
Gruß Matthias
Anzeige
Da brauchst du doch keinen Timer
15.11.2009 10:54:01
Nepumuk
Guten Morgen allerseits,
du musst doch nur das Event des Commanbarbuttons abfangen, dessen Funktion unterdrücken und ein eigenes Event in der Tabelle initiieren, welches wiederum das Click-Event der CheckBox initiiert.
' **********************************************************************
' Modul: DieseArbeitsmappe Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Workbook_Activate()
    Tabelle1.CheckBox1.Value = False
    Application.DisplayFullScreen = False
    Tabelle1.Initialize_Class_ID_178
End Sub

Private Sub Workbook_Deactivate()
    Tabelle1.Terminate_Class
End Sub

' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private WithEvents objCommandBarButton As clsCommandBarButton

Private Sub CheckBox1_Click()
    Application.DisplayFullScreen = Not Application.DisplayFullScreen
    If CheckBox1.Value Then Call Initialize_Class_ID_2951 Else Call Initialize_Class_ID_178
End Sub

Private Sub objCommandBarButton_Click(blnValue As Boolean)
    CheckBox1.Value = blnValue
End Sub

Friend Sub Initialize_Class_ID_178()
    Set objCommandBarButton = Nothing
    Set objCommandBarButton = New clsCommandBarButton
    Set objCommandBarButton.Set_CommandBarButton = CommandBars.FindControl(ID:=178)
End Sub

Friend Sub Initialize_Class_ID_2951()
    Set objCommandBarButton = Nothing
    Set objCommandBarButton = New clsCommandBarButton
    Set objCommandBarButton.Set_CommandBarButton = CommandBars.FindControl(ID:=2951)
End Sub

Friend Sub Terminate_Class()
    CheckBox1.Value = False
    Set objCommandBarButton = Nothing
End Sub

' **********************************************************************
' Modul: clsCommandBarButton Typ: Klassenmodul
' **********************************************************************

Option Explicit

Public Event Click(blnValue As Boolean)

Private WithEvents mobCommandBarButton As CommandBarButton

Friend Property Set Set_CommandBarButton(objCommandBarButton As CommandBarButton)
    Set mobCommandBarButton = objCommandBarButton
End Property

Private Sub mobCommandBarButton_Click(ByVal Ctrl As Office.CommandBarButton, CancelDefault As Boolean)
    RaiseEvent Click(Ctrl.ID = 178)
    CancelDefault = True
End Sub

Gruß
Nepumuk
Anzeige
AW: Da brauchst du doch keinen Timer
15.11.2009 11:30:53
Tino
Hallo,
entweder habe ich Deinen Code falsch eingebaut oder irgendwas läuft da nicht richtig.
Unter xl2003 wird die CheckBox nur beim FullScreen gesetzt,
danach bleibt dieser aktiviert egal wie ich die ansicht schalte.
Unter xl2007 kann ich den FullScreen nicht mehr verlassen.
https://www.herber.de/bbs/user/65915.xls
Gruß Tino
AW: Da brauchst du doch keinen Timer
15.11.2009 11:54:43
Nepumuk
Hallo Tino,
funktioniert auch in deiner Mappe wie vorgesehen.
Häkchen setzen in der CheckBox -> "Ganzer Bildschirm" wird angezeigt
Häkchen rausnemen aus der CheckBox -> "Normale Ansicht" wird angezeigt
Commandbarbutton "Ganzer Bildschirm ein/aus" anklicken -> Häkchen wird gesetzt und "Ganzer Bildschirm" angezeigt
Commandbarbutton "Ganzer Bildschirm schließen" anklicken -> Häkchen wird rausgenommen und "Normale Ansicht" wird angezeigt.
Excel2007 ist was ganz anderes. Da gibt es zwar die "Standardbuttons" aus den Vorgängerversionen noch, die haben aber mit den Ribbons nichts zu tun und an die kommst du auch mit einer Klasse nicht heran. Da müsste man sich was ganz anderes einfallen lassen. Aber die Frage war ja für Excel 2003 gestellt.
Gruß
Nepumuk
Anzeige
AW: Da brauchst du doch keinen Timer
15.11.2009 12:29:33
Nepumuk
Hallo Tino,
ok, über die Menuleiste hab ich nicht bedacht, aber null Problemo:
' **********************************************************************
' Modul: DieseArbeitsmappe Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Workbook_Activate()
    Tabelle1.CheckBox1.Value = False
    Application.DisplayFullScreen = False
    Call Tabelle1.Initialize_Class
End Sub

Private Sub Workbook_Deactivate()
    Call Tabelle1.Terminate_Class
End Sub

' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private WithEvents objCommandBarButton As clsCommandBarButton

Private Sub CheckBox1_Click()
    Application.DisplayFullScreen = Not Application.DisplayFullScreen
    Call Initialize_Class
End Sub

Private Sub objCommandBarButton_Click(blnValue As Boolean)
    CheckBox1.Value = blnValue
End Sub

Friend Sub Initialize_Class()
    Set objCommandBarButton = Nothing
    Set objCommandBarButton = New clsCommandBarButton
    Set objCommandBarButton.Set_CommandBarButton1 = CommandBars.FindControl(ID:=178)
    Set objCommandBarButton.Set_CommandBarButton2 = CommandBars.FindControl(ID:=2951)
End Sub

Friend Sub Terminate_Class()
    CheckBox1.Value = False
    Set objCommandBarButton = Nothing
End Sub

' **********************************************************************
' Modul: clsCommandBarButton Typ: Klassenmodul
' **********************************************************************

Option Explicit

Public Event Click(blnValue As Boolean)

Private WithEvents mobCommandBarButton1 As CommandBarButton
Private WithEvents mobCommandBarButton2 As CommandBarButton

Friend Property Set Set_CommandBarButton1(objCommandBarButton As CommandBarButton)
    Set mobCommandBarButton1 = objCommandBarButton
End Property

Friend Property Set Set_CommandBarButton2(objCommandBarButton As CommandBarButton)
    Set mobCommandBarButton2 = objCommandBarButton
End Property

Private Sub mobCommandBarButton1_Click(ByVal Ctrl As Office.CommandBarButton, CancelDefault As Boolean)
    RaiseEvent Click(Ctrl.State = msoButtonUp)
    CancelDefault = True
End Sub

Private Sub mobCommandBarButton2_Click(ByVal Ctrl As Office.CommandBarButton, CancelDefault As Boolean)
    RaiseEvent Click(False)
    CancelDefault = True
End Sub

Gruß
Nepumuk
Anzeige
nicht schlecht,
15.11.2009 12:36:29
Tino
Hallo,
wäre ich nie drauf gekommen, respekt.
Noch einen schönen Sonntag.
Gruß Tino
AW: nicht schlecht,
19.11.2009 19:15:27
Lutz
Hallo,
vielen Dank an alle.
Dieses Problem habe ich schon lange mit mir herum getragen, da ich schon öfter die Synchronisation von Menüleiste und Schaltflächen in Formularen gewünscht hätte. (bei Vollbildmodus, o. Ä.)
Ich werde die Funktion ausprobieren, habe aber derzeit noch einwenig Schwierigkeiten den Code zu verstehen. (Wird sich aber beim Ausprobieren hoffentlich erledigen!?)
M.f.G.
Lutz

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige