Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1700to1704
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

Funktion trotz Blattschutz?

Funktion trotz Blattschutz?
19.07.2019 11:15:32
Jochen
Hallo zusammen,
ist es möglich diese Funktion:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("I1").Text = "JA" Then 'JA
Rows("03:04").EntireRow.Hidden = True
End If
If Range("I1").Text = "NEIN" Then 'NEIN
Rows("03:04").EntireRow.Hidden = False
End If
End Sub
auch bei aktivem Blattschutz auszuführen?
Ohne Blattschutz klappt das einwandfrei!
In Zelle I1 ist ein Dropdownmenü mit JA oder NEIN
Zeilen 3 und 4 sollen sichtbar sein oder auch nicht.
lg Jochen

19
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Funktion trotz Blattschutz?
19.07.2019 11:31:05
UweD
Hallo
so...
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo Fehler

    ActiveSheet.Unprotect "ABC"
        
    If Range("I1").Text = "JA" Then 'JA 
        Rows("03:04").EntireRow.Hidden = True
    End If
    
    If Range("I1").Text = "NEIN" Then 'NEIN 
        Rows("03:04").EntireRow.Hidden = False
    End If
    
    Err.Clear
    On Error GoTo Fehler
Fehler:
    ActiveSheet.Protect "ABC"
    
    If Err.Number <> 0 Then MsgBox "Fehler: " & _
        Err.Number & vbLf & Err.Description: Err.Clear

End Sub

Passwort anpassen oder weglassen
LG UweD
Anzeige
AW: Funktion trotz Blattschutz?
20.07.2019 12:59:10
Jochen
Hallo,
wie ist das, wenn das aus- und einblenden von Zeilen auf einem anderen Tabellenblatt zusätzlich statt finden soll?
Diese Funktion ist in Tabelle3 und ich möchte das automatisch in Tabelle2 die Zeilen 5-8 ausgeblendet bzw. wieder eingeblendet werden wenn der Wert in I1 z.b. auf JA oder NEIN gesetzt wird.
lg Jochen
AW: Funktion trotz Blattschutz?
20.07.2019 13:11:08
Daniel
Hi
Wenn du Zellen oder Zellbereiche ansprechen willst, die auf einem anderen Blatt liegen, musst du das Blatt dazschreiben:
Sheets("Tabelle2").Range("5:8")
Gruß Daniel
AW: Funktion trotz Blattschutz?
20.07.2019 15:02:50
Jochen
Hi Daniel,
wie würde das in meiner funktion aussehen wenn ich in Tabelle3(HuW) die Zeilen 35 bis 53 ausblenden will wenn in Tabelle1(Basis1) in Zelle F21 eine 0 ist?
Zeilen 35-43 anzeigen wenn F21 eine 1 und Zeilen 45-53 ausgeblendet
Zeilen 35-53 einblenden wenn F21 eine 2 steht.
Also F21=0 Zeilen 35-53 aus, F21=1 Zeilen 35-43 ein 45-53 aus, F21=2 Zeilen 35-53 ein
Zeilen 35-53 in Tabelle3
Dieser Code in Tabelle1
Private Sub Worksheet_change(ByVal Target As Range)
On Error GoTo Fehler
ActiveSheet.Unprotect "123"
If Range("A21").Text = "JA" Then 'JA
Rows("22:28").EntireRow.Hidden = False
Range("B1").Select
End If
If Range("A21").Text = "NEIN" Then 'NEIN
Rows("22:28").EntireRow.Hidden = True
Range("B1").Select
End If
If Range("F21").Text = "0" Then '0 Mieterwechsel
Columns("K:O").EntireColumn.Hidden = True
Range("A1").Select
End If
If Range("F21").Text = "1" Then '1 Mieterwechsel
Columns("K:M").EntireColumn.Hidden = False
Columns("N:O").EntireColumn.Hidden = True
Range("B1").Select
End If
If Range("F21").Text = "2" Then '2 Mieterwechsel
Columns("K:O").EntireColumn.Hidden = False
Range("B1").Select
End If
Err.Clear
On Error GoTo Fehler
Fehler:
ActiveSheet.Protect "123"
If Err.Number  0 Then MsgBox "Fehler: " & _
Err.Number & vbLf & Err.Description: Err.Clear
End Sub

Anzeige
AW: Funktion trotz Blattschutz?
19.07.2019 11:31:46
Daniel
Hi
Grundsätzlich gilt, dass Makros immer nur das ausführen können, was auch der Anwender von Hand tun kann:
da hast du zwei Möglichkeiten:
a) im makro den Blattschutz aufheben und wieder setzen, das Passwort muss dem Makro bekannt sein:
Private Sub Worksheet_Change(ByVal Target As Range)
Me.Unprotect Password:="Hallo Welt"
Range("3:4").EntireRow.Hidden = (Range("I1") = JA)
Me.Protect Password:="Hallo Welt"
End Sub
b) Setze beim Aktiveren des Blattschutzes den Haken bei: Zeilen formatieren
dann kann aber auch der Anwender von Hand das Zeilenformat ändern.
Gruß Daniel
Anzeige
AW: Funktion trotz Blattschutz?
19.07.2019 11:56:17
Jochen
Danke euch beiden ...
@Daniel
Nachdem ich da Ja noch eben in "" gesetzt habe funktioniert auch das.
lg Jochen
Makros ausführen, Manuelles blockieren
19.07.2019 12:43:32
Luc:-?
Es sollte mittlerweile bekannt sein, Folks,
dass es dafür eine Möglichkeit gibt. Allerdings muss dann der Blattschutz auch per Makro gesetzt und dabei der zusätzliche Parameter UserInterfaceOnly:=True angegeben wdn.
Daniels Aussage ist folglich nicht korrekt.
Gruß, Luc :-?
„Der beste Beweis für intelligentes Leben im Universum ist, dass noch niemand versucht hat, Kontakt mit uns aufzunehmen.“ H.Lesch, 2018, Sonneberg
Deshalb Intelligenz steigern mit …

Anzeige
Ja Luc, die Ausnahme gibt es, ich weiß
19.07.2019 13:00:22
Daniel
du solltest aber auch dazu anmerken, dass der Blattschutz dann nicht nur immer per Makro aktiviert werden muss, sondern dies nach jedem Öffnen der Datei erneut ausgeführt werden muss, weil das UserInterfaceOnly:=True immer nur für die aktuelle Session gilt.
Daher ist das meiner Erfahrung nach nicht besonders praxistauglich, weshalb ich es auch nicht empfehle.
Ansonsten kann man sich meine Aussage durchaus merken, das gilt nämlich nicht nur für den Blattschutz, sondern auch in anderen Fällen wie beispielsweise in freigegebenen Dateien.
Gruß Daniel
Wenn der Blattschutz per EreignisProz gesetzt ...
19.07.2019 14:01:22
Luc:-?
…wird, Daniel,
wird das bspw bei jedem Öffnen der Datei automatisch ausgeführt. Damit ist dann auch dieser unterschiedliche Schutz gewährleistet, anderenfalls nur der Blattschutz generell.
MS erwähnt sowohl diese Methode als auch ein temporäres Unprotect gleichwertig. Inwiefern jetzt die Vorteile der letzteren die der ersteren Methode überwiegen sollten, ist mir unklar. Die Nachteile der letzteren sind dagg klar, bspw falls die Datei unbeabsichtigt nach Aufheben des Blattschutzes gespeichert wird und Xl abstürzt bevor der Blattschutz wieder gesetzt wird. Wesentliche Nachteile der erste­ren Methode kann ich dagg nicht erkennen, es sei denn, freigegebene Dateien bereiten hierbei Probleme. Aber die sorgen ja ohnehin für noch andere.
Die von dir genannte Begründung ändert allerdings nichts an der Subjektivität deiner generellen Aussage und somit wenigstens for­ma­len Inkorrektheit, zumal das hier und anderswo schon oft vorgeschlagen wurde.
Gruß, Luc :-?
Anzeige
AW: Wenn der Blattschutz per EreignisProz gesetzt ...
19.07.2019 14:05:20
Daniel
luc, für einen normal von Hand aktivierten Blattschutz ist meine Aussage durchaus korrekt.
Du hattest 'VBA wie manuell' postuliert! owT
20.07.2019 03:19:29
Luc:-?
:-?
AW: Du hattest 'VBA wie manuell' postuliert! owT
20.07.2019 08:38:22
Daniel
Ist ja auch richtig.
Wird der Blattschutz mit Standardeinstellungen wie vom Recorder aufgezeichnet aktiviert, gilt diese Regel, unabhängig davon ob der Blattschutz manuell oder mit VBA aktiviert wurde.
Gruß Daniel
VBA hat eine Möglichkeit mehr, ...
20.07.2019 13:06:25
Luc:-?
…Daniel,
ist also nicht deckungsgleich. Das gilt auch für andere manuelle Xl-Methoden. Entscheidend ist nur, ob VBA die gleichen Objekte, Eigen­schaften und Methoden zV stellt wie Xl oder nicht. Da gibt's Abweichungen in beide Richtungen, die erst in neuester Zeit teilweise aus­ge­glichen wurden. Manipulationsmöglichkeiten mittels Win-API nicht eingeschlossen!
Luc :-?
Anzeige
AW: VBA hat eine Möglichkeit mehr, ...
20.07.2019 13:27:24
Daniel
Ich hatte geschrieben, das Makros nur dass tun dürfen, was der normale Anwender auch tun darf
Und das ist richtig, weil ich mich hier auf den allgemeinen Standardfall, der nicht nur auf den Blattschutz beschränkt ist, beziehe und nicht auf mögliche Ausnahmefälle.
Wenn, dann hättest du schreiben müssen, das ich die dritte Lösungsmöglichkeit für das Problem nicht erwähnt habe, sondern nur zwei.
Gruß Daniel
In deinem BT steht (Zitat): ...
20.07.2019 15:28:52
Luc:-?
Grundsätzlich gilt, dass Makros immer nur das ausführen können, was auch der Anwender von Hand tun kann:
Das ist hier nicht ganz zutreffend und in seiner Allgemeinheit schlicht falsch, zumindest bis Xl14/2010. Versuche doch bspw mal, das, was bei Shapes manuell mit Verlaufsfarben möglich ist, auch auf Zellen manuell anzuwenden. Zumindest bis zur o.g. Xl-Version wirst du wohl scheitern, obwohl es mit VBA (analog Shapes) möglich ist.
Luc :-?
Anzeige
AW: In deinem BT steht (Zitat): ...
21.07.2019 00:15:41
Daniel
Hast du da mal ein konkretes Codebeispiel?
Muss ich, wenn ich für Excel 365 antworte, immer auch alle Altversionen beachten?
Früher war Index auch mal ne volatile Funktion und trotzdem wird es heute allgemein als Ersatz für Indirekt empfohlen.
Gruß Daniel
Im Prinzip musst du in entsprd Xl-Version ...
21.07.2019 17:08:06
Luc:-?
…doch nur die VerlausfarbenMenüs von Zellen und Shapes vgln, Daniel,
um feststellen zu können, ob dir bei Zellen der gleiche Manipulationsumfang wie bei Shapes angeboten wird. Ist das nicht der Fall, geht's bei Zellen aber trotzdem, mit VBA. Das hatte ich schon abundzu gezeigt, zB hier:
https://www.herber.de/forum/archiv/1560to1564/t1562789.htm#1562816 & ~#1562877
Außerdem gibt's im Archiv ein ganzes Projekt, das Ähnliches verwendet. Den Link müsste ich allerdings erst heraussuchen.
Im Prinzip geht's dabei eigentlich nur um das Setzen von Stops und deren FarbZuordnung.
Nebenbei, dass INDEX früher mal (wann & warum?) volatil gewesen sein soll, entzieht sich meiner Kenntnis.
Luc :-?
Anzeige
AW: Im Prinzip musst du in entsprd Xl-Version ...
21.07.2019 17:17:26
Daniel
naja, wenn das Blatt geschützt ist und der Anwender keine Formate ändern darf, läuft auch dieser Code auf einen Fehler.
Gruß Daniel
aber du hast im Prinzp recht, ich hätte besser
21.07.2019 17:21:54
Daniel
"dürfen" statt "können" schreiben sollen.
Makros dürfen normalerweise nur das tun, was auch der Anwender tun darf.
Gruß Daniel

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige