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

Zeilen ausblenden

Zeilen ausblenden
29.03.2016 17:25:31
chris58
Hallo !
Ich verzweifele bei diesem Versuch, das in die Arbeitsmappe zu integrieren.
Ich will wenn die Datei geschlossen wird, das falls Zeilen, die in Spalte A ein ZZZ stehen haben, ausgeblendet werden und der Passwortschutz aktiviert wird. Ich habe schon etliche Makros versucht einzufügen, jedesmal kommt ein anderer Fehler. Kann mir bitte einer sagen, wie ich das machen könnte.
Danke
chris
Private Sub Workbook_BeforeClose(Cancel As Boolean) Columns("A:A").AutoFilter Field:=1, Criteria1:="ZZZ" ActiveSheet.Protect Password:="test" End Sub

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen ausblenden
29.03.2016 19:50:31
Fennek
Hallo Chri,
in meinem Nachbau hat dein Code funktioniert, aber nur einmal. Bei jedem Versuch den Code ein zweites Mal auszuführen gab es eine Fehlermeldung. Also nur wenn die Settings zurück gesetzt werden, kann der Makro noch einmal laufen. D.h. du brauchst vor dem Speichern eine Abfrage, ob das Blatt geschützt ist.
Mfg

AW: Zeilen ausblenden
29.03.2016 20:01:13
Fennek
Hi Chris,
Sorry, zu schnell.
Ich nutzte:

Activeworkbook.protect password:="test"
Allerdings konnte ich es nicht wieder zurücksetzen.
Mfg

AW: Zeilen ausblenden
29.03.2016 20:16:20
chris58
Hallo !
Ja, das ist mir auch passiert. Ich habe nun den Code
Sub Ausblenden()
Dim Bereich As Range, rngC As Range
Set Bereich = Range("A6:A150")
For Each rngC In Bereich
rngC.EntireRow.Hidden = rngC = "ZZZ"
Next rngC
End Sub

in ein Modul aufgenommen und beim schliessen der Datei mit Call Ausblenden zum Laufen gebracht.
Leider ist es dann so, das das ganze Blatt wie wild zu zucken anfängt und die Zeilen sucht, die ausgeblendet werden sollen. Naja.....aber es geht
lg
chris

Anzeige
AW: Zeilen ausblenden
29.03.2016 21:16:29
Werner
Hallo Peter,
weshalb nimmst du nicht deinen ersten Code, hebst zu Beginn den Blattschutz auf und setzt ihn am Schlüss wieder?
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ActiveSheet.Unprotect Password:="test"
Columns("A:A").AutoFilter Field:=1, Criteria1:="ZZZ"
ActiveSheet.Protect Password:="test"
End Sub
Gruß Werner

AW: Zeilen ausblenden
29.03.2016 21:41:35
chris58
Hallo !
Naja, wenn ich den Code einbaue ins Arbeitsblatt, dann bekomm ich einen Laufzeitfehler 91 beim 2ten öffnen btzw. dann beim schliessen und in Zelle A3 ein Dropdown. Warum ? keine Ahnung.....
chris

Anzeige
AW: Zeilen ausblenden
30.03.2016 00:06:23
Werner
Hallo Chris,
also bei mir funktioniert das so. Aber...
der Code gehört auch nicht ins Arbeitsblatt sondern in "DieseArbeitsmappe"
Zudem solltest du meiner Meinung nach darauf verzichten mit "ActiveSheet" zu arbeiten, sondern das Tabellenblatt, um das es geht, explizit zu benennen. Das vermeidet Probleme, wenn du dich denn auf einem anderen Arbeitsblatt befindest.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
With Sheets("Tabelle1") 'Arbeitsblatt an deine Bedürfnisse anpassen
.Unprotect Password:="test"
.Columns("A:A").AutoFilter Field:=1, Criteria1:="ZZZ"
.Protect Password:="test"
End With
End Sub
Und das mit dem Dropdown kann ich nun überhaupt nicht nachvollziehen. Aber ich habe ja auch keine Ahnung was für Code du unter Umständen noch in deiner Datei hast.
Gruß Werner

Anzeige
mein Test ...
30.03.2016 00:09:59
Matthias
Hallo
Hab das jetzt mehrfach getestet, ohne Probleme
Allerdings speichere ich die Datei auch, sonst hat das ja alles keinen Sinn.
Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ActiveSheet.Unprotect Password:="test"
Columns("A:A").AutoFilter Field:=1, Criteria1:="ZZZ"
ActiveSheet.Protect Password:="test"
ThisWorkbook.Save
End Sub
Tabelle1

 A
1AAA
2AAA
3AAA
4AAA
5AAA
6AAA
7AAA
8AAA
9ZZZ
10ZZZ
11ZZZ
12ZZZ
13ZZZ
14ZZZ
15ZZZ
16ZZZ
17ZZZ
18ZZZ
19ZZZ
20XYV
21XYV
22XYV
23XYV
24XYV
25XYV
26XYV
27XYV
28XYV
29XYV
30XYV
31XYV
32XYV
33XYV


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
Beim Schließen setzt Excel den Filter speichert und schließt.
Beim erneuten Öffnen der Datei gibt es keine Probleme,
das Blatt ist geschützt und der Filter ist gesetzt.
Tabelle1

 A
1AAA
2AAA
3AAA
4AAA
5AAA
6AAA
7AAA
8AAA
20XYV
21XYV
22XYV
23XYV
24XYV
25XYV
26XYV
27XYV
28XYV
29XYV
30XYV
31XYV
32XYV
33XYV


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
Das kann ich hunderte Mal wiederholen. Es liegt also nicht am Code.
Gruß Matthias

Anzeige
das wilde Zucken ...
30.03.2016 09:24:53
Rudi
Hallo,
... bekommst du mit
Application.ScreenUpdating = False
in den Griff.
Oder erst alle auszublendenden Zeilen sammeln:
Sub Ausblenden()
Dim Bereich As Range, rngC As Range, rngH As Range
Application.ScreenUpdating = False
Set Bereich = Sheets(1).Range("A6:A150")
For Each rngC In Bereich
If rngC = "ZZZ" Then
If rngH Is Nothing Then
Set rngH = rngC
Else
Set rngH = Union(rngH, rngC)
End If
End If
Next rngC
If Not rngH Is Nothing Then
With Sheets(1)
.Unprotect "test"
rngH.EntireRow.Hidden = True
.Protect "test"
.Parent.Save
End With
End If
End Sub

Gruß
Rudi

Anzeige
AW: das wilde Zucken ...
30.03.2016 11:07:54
chris58
Hallo Rudi !
Danke, das geht nun bestens.......ich habe den Code direkt in die Arbeitsmappe kopiert, das "Call Ausblenden" rausgenommen.
Danke herzlichst..
chris

wenn A6:A150 sonst leer sind
30.03.2016 09:33:49
Rudi

Sub Ausblenden()
Dim Bereich As Range
Application.ScreenUpdating = False
With Sheets(1)
Set Bereich = .Range("A6:A150")
If Application.CountA(Bereich) Then
.Unprotect "test"
Bereich.SpecialCells(xlCellTypeConstants).EntireRow.Hidden = True
.Protect "test"
.Parent.Save
End If
End With
End Sub

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige