ToggleButton auf "permanenter" Userform
#1
Hi,

ich hatte in jedem Blatt einen ToggleButton, der, wenn man ihn gedrückt hat, bewirkt hat, dass, wenn man in eine Zelle geht, sofort im Bearbeitungsmodus ist. Hat funktioniert. Nun habe ich aus verschiedenen Gründen eine Userform erstellt, die immer sichtbar bleibt, auch wenn man das Blatt wechselt, in die ich den ToggleButton eigebaut habe. Ich kriege es mit meinen bescheidenen VBA-Kenntnissen trotz Recherchiererei nicht hin, den Code so umzubauen, dass sendkeys in der gesamten Arbeitsmappe bzw. im jew. aktiven Blatt wirksam ist. Habe schon verschiedenste Variationen versucht, sowohl in "DieseArbeitsmappe", als auch in den Klassenmodulen der einzelnen Sheets, als auch im Codefenster der Userform.

Der Ursprungscode: (also der Code, der in jedem Arbeitsblatt-Modul stand - jedes Arbeitsblatt hatte denselben ToggleButton)


Code:
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
   If Sh.OLEObjects("ToggleButton1").Object.Caption = "Bearbeitung" Then
       On Error GoTo ChgEvent_Error
           SendKeys "{F2}"
ChgEvent_Error:
       Application.EnableEvents = True
   End If
End Sub
Top
#2
Hallöchen,

bei der modalen Geschichte heißt es doch glaube, dass man die Tabelle im Hintergrund bearbeiten kann. Daraus könnte man schließen, dass das UF noch im Vordergrund ist. Sendkeys sendet an die Anwendung im Vordergrund Sad

Probier doch mal, was passiert, wenn Du das UF am Anfang des SelectionChange hidest.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#3
Hallo,



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


Option Explicit

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
   If UserForm1.ToggleButton1 Then Application.SendKeys "{F2}"
End Sub


' **************************************************************
'  Modul:  Modul1  Typ = Allgemeines Modul
' **************************************************************


Option Explicit

Sub StarteUF()
 UserForm1.Show 0
End Sub

Code eingefügt mit: Excel Code Jeanie


Es wird sicher dann die Frage kommen, wie man aus dieser Nummer wieder raus kommt: Wink
Man muss den Bearbeitungsmodus mit Esc verlassen. Nur dann kommt man wieder an den ToggleButton. Smile

Gruß Uwe
Top
#4
Und ich fürchte, das mit dem Esc wird sich schlecht vermeiden lassen...

Super, vielen Dank!
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste