Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1324to1328
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

If-Befehl

If-Befehl
22.08.2013 13:27:57
MBie
Hallo liebe Community,
Ich brauche bitte schnell eure Hilfe:
Habe folgenden Code:
********************************************************
Option Explicit
Sub Filter_aufheben_ActiveSheet()
ActiveSheet.Unprotect Password:="123"
If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData
End Sub

********************************************************
Dieser Code soll einfach den gesamten Filter der Arbeitsmappe aufheben. Manchmal ist die Arbeitsmappe jedoch passwortgeschützt und manchmal nicht. Deshalb würde ich folgende Funktion benötigen:
- Falls das Blatt nicht mit einem Passwort versehen ist -> dann Filter aufheben und
- Falls das Blatt mit einem Passwort versehen ist -> dann Passwort aufheben, Filter aufheben und Passwort wieder anwenden (deswegen vorher das PW aufheben, da man sonst nicht den Filter aufheben kann)
Irgendwie bekomm ich diese "Doppelanweisung" nicht hin. Vielen Dank im Vorhinein!!
Liebe Grüße
MBie

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: If-Befehl
22.08.2013 13:43:35
Toumas
Hallo,
ich bin VBA Neuling, also ist meine Lösung eher die Holzhammermethode...
Habe es aber bei mir so gelöst :
If ActiveSheet.ProtectContents = False Then GoTo Fehler
ActiveSheet.Unprotect "XXX"
Fehler:
ActiveSheet.Protect "XXX"
End Sub
Vielleicht ist es ja ein Ansatz

AW: If-Befehl
22.08.2013 13:45:21
Toumas
... auf die Stirn klatsch....
und lesen sollte man auch noch können....
sorry für meine unqualifizierte Antwort

AW: If-Befehl
22.08.2013 13:51:17
JACKD
Hallo MBie
so könnte es klappen
Was halt etwas schwierig ist, du redest von der Arbeitsmappe, in deinem Code ist allerdings nur ein Arbeitsblatt..
Sub Filter_aufheben_ActiveSheet()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
If ws.ProtectionMode = True Then
ws.Unprotect Password:="123"
If ws.FilterMode Then ws.ShowAllData
ws.Protect Password:="123"
Else
If ws.FilterMode Then ws.ShowAllData
End If
Next ws
End Sub
Grüße

Anzeige
AW: If-Befehl
22.08.2013 14:12:47
MBie
Hallo Toumas, Hallo JACKD,
Vielen lieben Dank an euch für die Antworten!
@JACKD: Ja ich muss künftig mehr auf meine "Schreibweise" achten... sorry.
Ich meine tatsächlich nur das aktive Arbeitsblatt und nicht die gesamte Mappe. Habe den Code jetzt wie folgt umgeschrieben:
Sub tester()
If ActiveSheet.ProtectionMode = True Then
ActiveSheet.Unprotect Password:="pui"
If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData
ActiveSheet.Protect Password:="pui"
Else
If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData
End If
End Sub
Also einfach nur auf das ActiveSheet bezogen. Allerdings gibt er mir einen Fehler aus. Dieser tritt auf wenn:
-Die Arbeitsmappe passwortgeschützt ist und ein Filter eingestellt ist
Fehlermeldung:
"Die Methode 'ShowAllData' für das Objekt '_Worksheet' ist fehlgeschlagen.
Vielen lieben Dank nochmals!
Liebe Grüße

Anzeige
AW: If-Befehl
22.08.2013 14:44:15
JACKD
Hallo Mbie
hast recht, geht nicht.
protectionmode ist auch der falsche Begriff
ProtectContents geht dafür umso besser
Sub tester()
If ActiveSheet.ProtectContents = True Then
ActiveSheet.Unprotect Password:="pui"
If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData
ActiveSheet.Protect Password:="pui"
Else
If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData
End If
End Sub
grüße

AW: If-Befehl
22.08.2013 15:37:56
MBie
Hallo JACKD,
Vielen lieben Dank für deine Hilfe!
Es funktioniert prima. Schönen Tag dir!
Sonnige Grüße

Danke für die Rückmeldung owT
22.08.2013 15:48:02
JACKD
.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige