Zeilen ausblenden, wenn Zelle auf anderem Tabellenblatt leer

Moderator: ModerationP

Re: Zeilen ausblenden, wenn Zelle auf anderem Tabellenblatt

Beitragvon HKindler » 19. Mai 2022, 11:04

Hallo bierhahn,

das bier ist aber nach fast einem Monat schon gehörig abgestanden!
Und dann auch noch ein Screenshot mit dem Handy gemacht. Das kann doch keine Sau entziffern. Einen Screenshot macht man direkt am Rechner mit z.B. "Snipping Tool" bzw. "Ausschneiden und Kopieren" (beides Win10 Bordmittel).

Und so ganz hast du meinen Vorschlag nicht umgesetzt. Ich verwende z.B. immer X als Variable. Was dazu führt, dass man die Zeilen sehr einfach kopieren kann und nur noch wenige Dinge anpassen muss.
Dann habe ich die Prüfung, ob die Zelle betroffen ist, je Zelle nur 1x. Also: was hast du da überhaupt von meinem Vorschlag übernommen?

Und ich kann deinen Fehler nicht nachvollziehen. Wenn ich deinen Code in ein Blatt einer neuen Mappe kopiere, dann noch drei weitere Blätter mit den Codenamen tb_EinsatzplanungTeam, DienstplanPrint und tb_EinsatzplanungLeitung erzeuge, dann läuft dein Code ohne Fehler durch.
Gruß,
Helmut

----------------------------
Windows 10 Enterprise (64 Bit) / Office 365 ProPlus (32 Bit)
Benutzeravatar
HKindler
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 7168
Registriert: 04. Jul 2013, 09:02
Wohnort: Schwarzwald

Re: Zeilen ausblenden, wenn Zelle auf anderem Tabellenblatt

Beitragvon bierhahn » 19. Mai 2022, 11:12

Hey Helmut,

Ja, das stimmt. Das Bier ist etwas älter, liegt daran, dass ich zwischenzeitlich im Ausland war und nicht weitermachen konnte.
Den Screenshot (der kein Screenshot ist) habe ich zugesandt bekommen während ich dort war, deshalb habe ich den genau so reingepackt - sorry! Kann ich aber auch nochmal neu machen, wenn gewünscht.

Ich hab das "X" jeweils angepasst, weil ich dachte, dass es sonst nur für eine Zeile funktioniert und VBA durcheinanderkommt, wenn X jedes Mal neu gesetzt wird. Ist dem nicht so? Also soll ich besser das X lassen?

Ja, ich hatte die Funktion in der Form auch am Anfang getestet und da lief alles problemlos durch.
Kann es evtl. sein, dass der Blattschutz da Probleme macht? Das Blatt ist im Benutzermodus geschützt. Kanns daran liegen?
Vielleicht müsste ich dann am Code gar nichts ändern, sondern nur davor und danach jeweils unprotect/protect einfügen, oder?
bierhahn
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 28
Registriert: 25. Apr 2022, 21:54

Re: Zeilen ausblenden, wenn Zelle auf anderem Tabellenblatt

Beitragvon HKindler » 19. Mai 2022, 11:45

Hi,

klar liegt das am Blattschutz! Solange der gesetzt ist, kann man keine Zeilen ausblenden. Es sei denn beim Setzen des Blattschutzes wurde UserInterfaceOnly auf True gesetzt. Dann kann man mit Makros Änderungen vornehmen. Allerdings gilt das nur so lange die Datei geöffnet ist. Wird sie geschlossen und wieder geöffnet, dann ist das UserInterfaceOnly wieder auf False und muss neu gesetzt werden. Oder man entfernt im Makro den Blattschutz bei Bedarf und setzt ihn wieder (was ich normalerweise so mache).

Und das mit dem X (oder wie du die Variable nennst) ist tatsächlich so. Durch Set x = Intersect(...) bekommt x auf alle Fälle einen neuen Wert - falls es keine Schnittmenge gibt, dann bekommt es den Wert Nothing. Somit reicht eine einzige Variable.
Gruß,
Helmut

----------------------------
Windows 10 Enterprise (64 Bit) / Office 365 ProPlus (32 Bit)
Benutzeravatar
HKindler
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 7168
Registriert: 04. Jul 2013, 09:02
Wohnort: Schwarzwald

Re: Zeilen ausblenden, wenn Zelle auf anderem Tabellenblatt

Beitragvon bierhahn » 19. Mai 2022, 12:05

Okay, dann baue ich den Code mal um.
Reicht es in dem Fall, wenn ich am Anfang vor dem ersten Dim einmalig folgenden Code

Code: Alles auswählen
Sub TB_Unprotect()
    tb_EinsatzplanungTeam.Unprotect
End Sub


und am Ende analog dazu einmalig

Code: Alles auswählen
Sub TB_Unprotect()
    tb_EinsatzplanungTeam.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowSorting:=True, AllowFiltering:=True
    tb_EinsatzplanungTeam.EnableSelection = xlUnlockedCells
End Sub


einfüge?
bierhahn
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 28
Registriert: 25. Apr 2022, 21:54

Re: Zeilen ausblenden, wenn Zelle auf anderem Tabellenblatt

Beitragvon HKindler » 19. Mai 2022, 12:16

Hi,

ja klar, es muss aber nicht vor den Dim sein. Es reicht vor dem ersten xxx.Hidden

Und bitte nur den Aufruf einfügen. :-)
Gruß,
Helmut

----------------------------
Windows 10 Enterprise (64 Bit) / Office 365 ProPlus (32 Bit)
Benutzeravatar
HKindler
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 7168
Registriert: 04. Jul 2013, 09:02
Wohnort: Schwarzwald

Re: Zeilen ausblenden, wenn Zelle auf anderem Tabellenblatt

Beitragvon bierhahn » 19. Mai 2022, 12:39

Wie meinst du nur den Aufruf? Wenn ich möchte, dass das Tabellenblatt danach wieder geschützt wird, dann muss der Befehl am Ende doch auch wieder rein, oder?

Ich möchte das ja nur ein einziges Mal machen und dann soll es Gültigkeit für sämtliche Zellen/Zeilen haben.
bierhahn
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 28
Registriert: 25. Apr 2022, 21:54

Re: Zeilen ausblenden, wenn Zelle auf anderem Tabellenblatt

Beitragvon HKindler » 19. Mai 2022, 12:47

Hi,

du sollst nur den Aufruf der jeweiligen Sub und nicht die sub selbst einfügen:
Code: Alles auswählen
Private Sub Worksheet_Change(ByVal Target As Range)
Dim x As Range
TB_Unprotect
Set x = Range("$D$21")
...
TB_Protect
End Sub

Sub TB_UnProtect()
...
End Sub

Sub TB_Protect
...
End Sub
Gruß,
Helmut

----------------------------
Windows 10 Enterprise (64 Bit) / Office 365 ProPlus (32 Bit)
Benutzeravatar
HKindler
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 7168
Registriert: 04. Jul 2013, 09:02
Wohnort: Schwarzwald

Re: Zeilen ausblenden, wenn Zelle auf anderem Tabellenblatt

Beitragvon bierhahn » 19. Mai 2022, 12:56

Ah, ja klar... soweit war es logisch.
Meine Frage bezog sich vielmehr darauf, ob ich den Aufruf in jedem einzelnen Dim nochmals neu platzieren muss, oder ob es nicht reicht, den anfänglich einmalig aufzurufen und dann in den einzelnen Anweisungen weglassen zu können.
bierhahn
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 28
Registriert: 25. Apr 2022, 21:54

Re: Zeilen ausblenden, wenn Zelle auf anderem Tabellenblatt

Beitragvon HKindler » 19. Mai 2022, 13:05

Hi,

wenn dir obiges Beispiel nicht reicht, dann versuche es einmal logisch anzugehen:
- wenn du den Blattschutz händisch aufhebst, dann funktioniert es
- wenn du den Blattschutz händisch setzt, dann funktioniert es nicht
- und zwar jeweils für das komplette Makro
- was wäre also die logische Schlussfolgerung?
Und wenn man zu faul zum denken ist, dann könnte man es ja auch einfach einmal ausprobieren.
Gruß,
Helmut

----------------------------
Windows 10 Enterprise (64 Bit) / Office 365 ProPlus (32 Bit)
Benutzeravatar
HKindler
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 7168
Registriert: 04. Jul 2013, 09:02
Wohnort: Schwarzwald

Vorherige

Zurück zu Excel Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 14 Gäste