Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.04.2024 20:05:21
28.04.2024 18:33:31
28.04.2024 18:25:12
28.04.2024 14:18:05
Anzeige
Archiv - Navigation
1932to1936
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

Eintrag über Kontextmenü mit Blattschutz

Eintrag über Kontextmenü mit Blattschutz
05.07.2023 15:18:39
Micha

Hallo
Ich habe ein neues Kontext-Menü erstellt. Jetzt komm ich nicht mehr weiter. Wenn ich was in das Blatt eintrage soll der Blattschutz Deaktiviert werden und danach wieder Aktiviert werden. Komme da nicht mehr weiter.

Mfg Micha

https://www.herber.de/bbs/user/159810.xlsm

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Eintrag über Kontextmenü mit Blattschutz
05.07.2023 16:18:23
Piet
Hallo

setzte direkt hinter
Sub den Befehl: - AktiveSheet.Unprotect - und vor End 
Sub - ActiveSheet.Protect
Für diese VBA Methode benötigst du kein Passwort, kannst aber bei beiden ein Passwort setzen:
AktiveSheet.Unprotect -"Mein Passwort"

mfg Piet



AW: Eintrag über Kontextmenü mit Blattschutz
05.07.2023 16:26:15
Micha
Vielen dank für deine Antwort.
Ich bekomme eine Fehlermeldun wenn ich das eintrage.

'Bereich für Rechte Maustaste
Sub eintrag(ByVal str As String)
AktiveSheet.Unprotect
Dim rng As Range, strRange As String

Select Case ActiveSheet.Name
 
    Case "Tabelle1"
        strRange1 = "D6:AA49" 'Bereich für Tabelle1
        strRange2 = "AB665:AY49"
 
    
   
End Select
For Each rng In Selection
    If Not Union(Range(strRange1), Range(strRange2), Range(strRange2)) Is Nothing Then
        rng = UCase(str)
    End If
Next
AktiveSheet.Unprotect
End Sub


Anzeige
AW: Eintrag über Kontextmenü mit Blattschutz
05.07.2023 19:40:43
Piet
Hallo

der Hauptfehler lag in der falschen Schreibweise - ActiveSheet:Protect mit k statt c!
Vielleicht kann man den Code auch kürzer programmieren. Ohne Gewähr das es so richtig ist!
Ich nehme lieber IF Then Statt Select Case für die Sheet Auswahl. Ist kürzer zu programmieren.

mfg Piet

  • Sub eintrag(ByVal str As String)
    Dim strRange1 As String, strRange2 As String, rng As Range
    If ActiveSheet.Name > "Tabelle1" Then Exit Sub
       ActiveSheet.Unprotect
       strRange1 = "D6:AA49"     'Bereich für Tabelle1
       strRange2 = "AB665:AY49"
       If Not Union(Range(strRange1), Range(strRange2)) Is Nothing Then
          Selection.Value = UCase(str)
       End If
       ActiveSheet.Protect
    End Sub


  • Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige