Microsoft Excel

Herbers Excel/VBA-Archiv

Filter sperren in Excel 2007 | Herbers Excel-Forum


Betrifft: Filter sperren in Excel 2007 von: Andrea
Geschrieben am: 18.01.2010 17:13:54

Hallo zusammen

In einer Excel-Datei habe ich den Filter für den User gesperrt, damit er nur die Zeilen sieht, welche das Kriterium der in Feld C2 erfassten Zahl betreffen. In Excel 2000 hat dies mit dem Code

Dim xy As Variant
ActiveSheet.Unprotect Password:="Passwort"
Range("C2").Select
xy = ActiveCell.Value
Selection.AutoFilter Field:=5, Criteria1:=xy
ActiveSheet.Protect Password:="Passwort", DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub

bestens funktioniert. Nun haben wir aber das Problem, dass wir User haben, welche Excel 2007 verwenden. Und dort ist leider der Filter weiterhin offen trotz dieses Codes.

Hat jemand von euch eine Lösung, wie ich den Code anpassen kann, damit er in beiden Versionen funktioniert?

Ganz herzlichen Dank schon im voraus!

Herzliche Grüsse
Andrea

  

Betrifft: AW: Filter sperren in Excel 2007 von: Josef Ehrensberger
Geschrieben am: 19.01.2010 00:01:58

Hallo Andrea,

versuche es so.

Sub andrea()
Dim xy As Variant
Dim intVersion As Integer

intVersion = Val(Application.Version)

With ActiveSheet
  .Unprotect Password:="Passwort"
  xy = Range("C2").Value
  Range("C2").AutoFilter Field:=5, Criteria1:=xy
  
  #If lngVersion < 12 Then
    .Protect Password:="Passwort", DrawingObjects:=True, Contents:=True, _
      Scenarios:=True
    #Else
    .Protect Password:="Passwort", DrawingObjects:=True, Contents:=True, _
      Scenarios:=True, AllowFiltering:=False
    #End If
  End With
End Sub



Gruß Sepp



  

Betrifft: Korrektur von: Josef Ehrensberger
Geschrieben am: 19.01.2010 00:09:15

Hallo nochmal,

da haben sich zwei Fehler eingeschlichen.

Sub andrea()
Dim xy As Variant
Dim intVersion As Integer

intVersion = Val(Application.Version)

With ActiveSheet
  .Unprotect Password:="Passwort"
  xy = Range("C2").Value
  Range("C2").AutoFilter Field:=5, Criteria1:=xy
  
  #If intVersion < 11 Then
    .Protect Password:="Passwort", DrawingObjects:=True, Contents:=True, _
      Scenarios:=True
    #Else
    .Protect Password:="Passwort", DrawingObjects:=True, Contents:=True, _
      Scenarios:=True, AllowFiltering:=False
    #End If
  End With
End Sub



Gruß Sepp



  

Betrifft: AW: Korrektur von: Andrea
Geschrieben am: 19.01.2010 08:12:25

Hallo Sepp,

Super, das Makro funktioniert einwandfrei. Eine Frage habe ich doch noch: wofür sind die #-Zeichen? Das Makro läuft auch ohne diese, wie ich festgestellt habe.

Ganz herzlichen Dank für die rasche Unterstützung! Das macht immer wieder Freude bei herber.de! :-)

Herzliche Grüsse
Andrea


  

Betrifft: Stichwort: Bedingte Kompiliereung o.T. von: Josef Ehrensberger
Geschrieben am: 19.01.2010 08:18:41

Gruß Sepp



Beiträge aus den Excel-Beispielen zum Thema "Filter sperren in Excel 2007"