Microsoft Excel

Herbers Excel/VBA-Archiv

VBA + Blattschutz + Autofilter -> Sortireren

Betrifft: VBA + Blattschutz + Autofilter -> Sortireren von: Schmitty
Geschrieben am: 19.09.2014 07:38:41

Guten Morgen zusammen,

ich nutze einen Autofilter in einem geschützten Blatt. Solange ich den Blattschutz "manuell" über das Menü aktiviere, kann ich ein Häkchen setzten, dass der Autofilter trotzdem funktioniert.
Wenn ich aber Mittels VBA den Blattschutz aktiviere (mit

ActiveSheet.Protect Password:="", AllowFiltering:=True
) kann ich den Autofilter nicht mehr auswählen.
An sich ist das nun ein riesen Problem, da der Autofilter seine Filter-Argumente aus einer anderen Zelle bezieht, aber ich würde gerne die gefilterten Ergebnisse alphabetisch sortieren...

Jemand eine Idee?

Gruß
Christian

  

Betrifft: AW: VBA + Blattschutz + Autofilter -> Sortireren von: Max
Geschrieben am: 19.09.2014 08:21:30

Hallo Christian,

prinzipiell funktioniert dein Makro einwandfrei.
Du musst den Autofilter setzen, bevor du das Makro startest.

Dein Makro erlaubt nur das Auswählen des Filters, aber nicht das Erstellen.

Lg.


  

Betrifft: AW: VBA + Blattschutz + Autofilter -> Sortireren von: Schmitty
Geschrieben am: 19.09.2014 08:42:59

Hallo Max,

danke für deine Antwort.

Das Makro startet immer automatisch beim Öffnen der Excel-Datei und aktiviert automatisch den Blattschutz, damit niemand Daten verändern kann.

Ich dachte, es gibt noch einen VBA-Befehl, der das Blatt schütz, den Autofilter aber weiterhin zulässt...

Gruß
Christian


  

Betrifft: das geht doch auch ohne VBA ... von: Matthias L
Geschrieben am: 19.09.2014 09:35:12

Hallo

Es ist so wie Max schreibt.

Wenn Du den Filter gesetzt hast und beim Blattschutz


  • AutoFilter verwenden


aktivierst, dann kannst Du auch den Filter benutzen.
Du musst ihn nur vorher gesetzt haben!

Gruß Matthias


  

Betrifft: AW: VBA + Blattschutz + Autofilter -> Sortireren von: fcs
Geschrieben am: 19.09.2014 10:09:19

Hallo Christian,

wie von Mathias bereits erwähnt muss der Autofilter bereits eingerichtet sein bevor der Blattschutz aktiviert wird.
Allerdings kann man dann nur manuell die Filtereinstellungen ändern.

Wenn du das setzen der Filter per Makro unterstützen willst inkl. sortieren, dann musst du im makro dane Blattschutz kurzzeitig deaktivieren, dann Filter- und Sortieraktionen durchführen und den Blattschutz wieder aktivieren.

Gruß
Franz

Beispiel:

Sub SetAutofilter()
  Dim wks As Worksheet
  Set wks = Me.Worksheets("Tabelle1")
  With wks
    .Activate
    .Unprotect Password:=""
    If .FilterMode = True Then .ShowAllData
    If .Range("A2").Value <> "" Then
      .AutoFilter.Range.AutoFilter Field:=1, Criteria1:=.Range("A2").Value
    Else
      .AutoFilter.Range.AutoFilter Field:=1
    End If
    If .Range("B2").Value <> "" Then
      .AutoFilter.Range.AutoFilter Field:=2, Criteria1:=.Range("B2").Value
    Else
      .AutoFilter.Range.AutoFilter Field:=2
    End If
    With .AutoFilter.Range
      .Sort Key1:=.Range("B1"), Order1:=xlAscending, Header:=xlYes
    End With
    .Protect Password:="", AllowFiltering:=True
  End With
End Sub



  

Betrifft: AW: VBA + Blattschutz + Autofilter -> Sortireren von: Adis
Geschrieben am: 19.09.2014 16:15:45

Hallo

ich verweise noch auf die Eigenschaft: ScrollArea für jede Tabelle
Legt man dort einen Eingabebereich fest, z.B. nur die Zelle, "A1"
kann auf keine andere Zelle zugegriffen werden. Ich schütze so Formeln

Gruss Adis


  

Betrifft: AW: VBA + Blattschutz + Autofilter -> Sortireren von: Schmitty
Geschrieben am: 19.09.2014 16:25:14

Hallo Adis,

danke für deine Anmerkung.

Aber wenn ich filter bleiben trotzdem oft 20-30 Zeilen übrig und die will ich mit den Pfeiltasten durchgehen können, deshalb habe ich das Arbeitsblatt geschützt mit der Einstellung "gesperrte Zellen auswählen". Ändern kann dann trotzdem niemand eine Formel...

Gruß
Christian


 

Beiträge aus den Excel-Beispielen zum Thema "VBA + Blattschutz + Autofilter -> Sortireren"