Clever-Excel-Forum

Normale Version: Kriege Code nicht auf ToggleButton gelegt
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo, sorry, komme schon wieder nicht weiter. (Falls ihr euch wundert, wenn ihr die Makros seht: Alles, was komplizierter ist, wurde mit Hilfe erstellt oder ganz für mich geschrieben.)

So zum Beispiel der "Test"-Code (im Dialogfenster "DieseArbeitsmappe" ab Z 76).  Der checkt, ob an jedem Tag in jeder Minute zwischen 7 und 24 Uhr jemand im Dienst ist. - Bei jeder Zeit-Eingabe, was unsere Pädagogen-Computer zu viel Rechenleistung kostet; je mehr Zeiten in den Dienstplan eingetragen werden, desto länger dauert es, bis er durchgelaufen ist. Und unter seltenen Umständen ist es erforderlich, ihn händisch zu aktivieren, weshalb ich ihn auf einen CommandButton gelegt habe ("Tabelle01" ganz oben). Aus dem zuvor genannten Grund möchte ich, dass er in Zukunft aus- und bei Bedarf wieder eingeschaltet werden kann. Daher habe ich versucht, ToggleButton3 zu intallieren (ebenfalls "Tabelle01" oben). Ich kriege aber die erforderlichen Code-Zeilen in "DieseArbeitsmappe" nicht hin. So, wie in einer anderen Datei läuft das hier nicht. Ein weiteres Problem ist, dass der ToggleButton2-Code ("DieseArbeitsmappe" Z 150; bewirkt, dass man in den Arbeitszeit-Zellen keinen Doppelpunkt eingeben muss) sich ebenfalls im Workbook_SheetChange befindet.

Funktioniert das so wie ich das vorhabe überhaupt?

Gruß
Uwe
Hallo Uwe,

auf Deine Fragen kann ich Dir nicht antworten, da ich nicht verstanden habe was Du machen willst bzw. was Dir fehlt.

Aber bei der Ansicht Deiner Datei haben mich die vielen schwarzen Linien "fast erschlagen", denn sie überdecken die eigentlichen Einträge.
Ich schlage Dir vor, das nachstehende Makro über die beiden Tabellenblätter laufen zu lassen, dann werden alle Linien hellgrau gefärbt und damit werden die Daten besser lesbar.

Code:
Option Explicit
'Option Private Module

Sub Rahmen_grau_färben()
    Dim i As Integer                'Spalte
    Dim j As Long                  'Zeile
    Dim b As Integer                'Rand (Border)
    Dim a As Integer
    Dim Info As Integer
   
    If Workbooks.Count = 1 Then
        Info = MsgBox("Es ist doch noch keine Arbeitsmappe geöffnet!" & Chr(10) & _
                    "Wo sollen denn da Rahmen gefärbt werden?", 32, "Keine Mappe geöffnet!")
        Exit Sub
    End If
    If ActiveSheet.ProtectContents = True Then
        Info = MsgBox("Die Rahmenfarbe kann ich jetzt leider nicht ändern, da" & Chr(10) & _
                      "das Tabellenblatt mit einem Passwort-Schutz versehen ist!" & Chr(10) & Chr(10) & _
                      "Hebe den Blattschutz auf und versuche es dann erneut!", 64, "Blattschutz vorhanden")
        Exit Sub
    End If
    Application.ScreenUpdating = False
    For i = 1 To ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Column
        For j = 1 To ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
            For b = 5 To 10
                If Cells(j, i).Borders(b).LineStyle <> xlNone And _
                  Cells(j, i).Borders(b).ColorIndex = xlAutomatic Then
                    Cells(j, i).Borders(b).ColorIndex = 48
                    a = 1
                End If
            Next
        Next
    Next
    'If a = 1 Then ActiveWindow.DisplayGridlines = False
    Application.ScreenUpdating = True
End Sub

Das mache ich übrigens mit allen meinen Projekten!
Hallo Uwe,

meiner Ansicht nach ist das Projekt viel zu kompliziert angelegt. Wieder ein schönes Beispiel dafür, dass aus welchen Gründen auch immer, das Design Vorrang vor der Funktionalität hat. Das alles wird wohl auch dazu beitragen, dass die Anwendung eine gewisse Trägheit entwickelt.