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

VBA - Automatisches aus- und einblenden von Zeilen

VBA - Automatisches aus- und einblenden von Zeilen
12.06.2016 09:49:03
Zeilen
Hallo liebe User
Ich bin neu hier und habe folgendes Problem (Excel 2016 (Office 365)):
- Ich möchte gerne auf Tabelle2 sämtliche Zeilen vollautomatisch ausblenden lassen, sobald in den Zellen der Spalte D die Zahl 0 resp. nichts erscheint. Die Zellen haben entsprechende Formeln drin (bezugnehmend auf Tabelle1, wenn; dann; sonst), daher können diverse Werte erscheinen und diese können stets variieren.
- Sobald diese eben variieren und nicht mehr 0 resp. " ", sondern einen Wert ausgeben, sollen diese Zeilen eben wieder vollautomatisch eingeblendet werden.
Ich bin nunmehr seit 3 Tagen damit beschäftigt, irgendetwas darüber im www zu finden. Ich habe zwar etwas ähnliches gefunden, jedoch nicht mit Bezügen auf mein Problem. Da ich ein absoluter VBA-Neuling bin, hoffe ich nun auf Euch!
Vielen lieben Dank vorab für die Hilfe!!
Gruss Portner
https://www.herber.de/bbs/user/106171.xls
= mein File
https://www.herber.de/bbs/user/106172.xlsm
= der zwar funktionierende, aber nicht auf mein Problem angepasste Code

23
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - Automatisches aus- und einblenden von Zeilen
12.06.2016 09:53:00
Zeilen
lese mal FAQ.
Zu Crossposting lies diese Seite Hajo-Excel.de
Durch Crosspostuing werden mehrere Gruppen von Leuten mit dem gleichen Thema befasst, ohne dass sie voneinander wissen.
Naturgemäß laufen dann die Antworten, die im einen Forum "zu spät" gegeben wurden, ins Leere und bleiben ohne Resonanz.
Es reicht also, zunächst in einem Forum zu posten - wenn die Antworten dann unbefriedigend sein sollten, steht es einem anschließend immer noch offen, ein anderes Forum zu Rate zu ziehen.
Ich mache keine Werbung für andere Foren und verzichte darum auf den Link.

Anzeige
AW: VBA - Automatisches aus- und einblenden von Zeilen
12.06.2016 09:55:10
Zeilen
Hallo Hajo
Ich habe das andere Thema geschlossen, da ich mich vielleicht ungenau ausgedrückt habe gestern, daher ein neues, einfach besser geschrieben. Ich würde mich wirklich sehr über Hilfe freuen!
Gruss

AW: VBA - Automatisches aus- und einblenden von Zeilen
12.06.2016 09:57:55
Zeilen
es geht nicht um den Beitrag in diesem Forum. Lese meinen Beitrag genau. Es geht um ein anderes Forum und das ist laut FAQ nicht erwünscht.
Gruß Hajo

AW: VBA - Automatisches aus- und einblenden von Zeilen
12.06.2016 10:00:02
Zeilen
Sie schreiben selber, sie warten einen Tag bis sie in ein anderes Forum gehen, dasselbe habe ich nun gemacht. Es ist für eine Abschlussprüfung, die ich morgen abgeben muss, und noch der letzte Meilenstein in einer sehr aufwändigen Arbeit, die ich bis jetzt ohne Fremde Hilfe machen konnte. Also ist es mir ein grosses Anliegen, dies nun mit einer einzigen Fremden Hilfe bewerkstelligen zu können.
Können oder wollen Sie mir nicht helfen?
Gruss

Anzeige
trotzdem eine Antwort...
12.06.2016 10:36:22
MB12
Hallo Jannik,
Thema Crossposting:
Die Helfer fühlen sich einigermaßen düpiert, wenn Fragen parallel in mehr als einem Forum auftauchen, denn wenn man seine private Zeit unentgeltlich investiert, steht womöglich im anderen Forum schon eine Lösung- da ist es nur anständig, wenn man gleich schreibt, wo man noch seine Frage eingestellt hat.
Trotzdem hier ein Lösungsversuch (obwohl mein VBA ein "Gestopsel" ist), aber ich möchte dich nicht ohne Lösung hängen lassen.
https://www.herber.de/bbs/user/106173.xlsm
Wenn du alle Zeilen ausblendest, wenn in Spalte F Wert = 0 oder leer ist, kannst du nicht auf die erste leere Zeile zugreifen. Deshalb habe ich das mit einem ChangeEvent gelöst, d.h. wenn du in H1 irgendetwas eintippst, werden die leeren Zeilen automatisch wieder eingeblendet und der Cursor springt in die erste leere Zeile in Spalte B.
Ausgeblendet wird über den Button.
Meine Hoffnung ist, dass ein Profi noch mit einspringt und den Code verbessert, aber zumindest funktioniert er.
Gruß, Margarete

Anzeige
AW: trotzdem eine Antwort...
12.06.2016 11:11:42
Portner
Hallo Margarete
Vielen Lieben Dank für Deine Hilfe!
Ohne Button wäre mir natürlich lieber, aber danke trotzdem.
Zudem möchte ich gerne die Zusammenfassung in der Tabelle2 ein- und ausblenden, sobald eben keine Werte in der Tabelle1 eingetragen sind. Hoffe, ich krieg das noch hin :)

AW: trotzdem eine Antwort...
12.06.2016 11:30:52
EtoPHG
Hallo Portner,
1. Deine Formel in Druckübersicht!C1 soll nur heissen =Eingaben!C2 und runterkopieren!
2. Ins Tabellenblatt Druckübersicht untenstehenden Code kopieren.
Option Explicit
Private Sub Worksheet_Calculate()
Dim rC As Range
For Each rC In Intersect(Columns(3), UsedRange)
rC.EntireRow.Hidden = rC = 0
Next rC
End Sub
Fertig!Gruess Hansueli

Anzeige
AW: trotzdem eine Antwort...
12.06.2016 11:47:26
Portner
Hallo Hansueli
Besten Dank für Deine Antwort! Das funktioniert alles super in einer "Testdatei", nur wenn ich dies in meine Datei integriere, hängt sich Excel auf bei der Berechnung. Meine Datei ist ziemlich gross, hat 10 Tabellenblätter mit jeweils hunderten von Formeln etc. Die Dateigrösse ist zwar nur 169 KB, aber dennoch hängt sich Excel auf.
Müsste ich vielleicht den Code auf die Zeilen (in meiner Datei) F16:F21, F23:F25, F27:F28, F30:F35, F37:F38, F40:F54 und F56:F59 begrenzen (denn nur dort soll es automatisch aus- und eingeblendet werden wenn 0)?
Hoffe das kriegen wir hin :) lieben Dank und Gruss

Anzeige
jetzt hab ich auch ne Frage, Hansueli
12.06.2016 12:01:57
MB12
Grüezi Hansueli,
grundsätzlich weiß ich, was Worksheet.Calculate bewirkt, aber warum funktioniert das hier nur, wenn man die Formel in Spalte C ändert?
**Rätsel**
Liebe Grüße in die Schweiz (?)
Margarete

AW: jetzt hab ich auch ne Frage, Hansueli
12.06.2016 13:08:03
Portner
Margarete, Du weisst auch nicht, wie ich den Code anpassen kann, damit sich Excel nicht mehr aufhängt?

was hast du denn in F22 usw. drin? owT
12.06.2016 13:27:27
MB12
F22 usw drin?

AW: was hast du denn in F22 usw. drin? owT
12.06.2016 13:35:58
Portner
In den unten nicht erwähnten Zellen (F22 und co.) ist gar nichts, weder Formeln noch Formatierungen. Diese Zeilen sind einfach "Platzhalter", damit es beim Drucken und so etwas besser aussieht...
Jedoch von F1 bis F15 ist das "Titelblatt" mit allgemeinen Angaben usw, wo Formeln oder Texte drin sind. Die brauche ich immer in jedem Fall eingeblendet. Daher sollte der Code nur bei den Zellen F16:F21, F23:F25, F27:F28, F30:F35, F37:F38, F40:F54 und F56:F59 angewendet werden.
Wenn man den Code von Hansueli nur auf diesen Zellen anwendet, könnte dies die Abstürze von Excel eliminieren? Und wenn ja, wie kann ich den Code entsprechend anpassen?
Liebe Grüsse aus der Schweiz (!)

Anzeige
Alternativlösung
12.06.2016 13:46:20
MB12
Hi,
zwei Schweizer auf einmal.... :-)
1. Die Lösung von Hansueli bezieht sich nur auf Zellinhalt gleich Null, müsste also theoretisch funktionieren, außer der Code hängt sich an der leeren Zelle auf, aber soweit kenne ich mich nicht aus, vor allem, wenn ich die Datei nicht sehe.
2. Probier mal aus, ob es funktioniert, wenn du die Leerzeilen löschst und stattdessen die Zeilenhöhe bei F23 ff verdoppelst. Dann hättest du auch den Abstand und wüßtest zumindest, woran das Problem liegt.
Weiter kann ich leider nicht helfen.
Gruß, Margarete

AW: trotzdem eine Antwort...
12.06.2016 14:33:43
Portner
Hallo Margarete
Funktioniert leider auch nicht. Hab jetzt alle leeren Zeilen manuell gelöscht sowie überall die Formel von Hansueli drin (=Eingabe!F12 usw).
Meine Excel-Datei stürzt nach wie vor immer komplett ab. Lustiger Weise funktioniert alles einwandfrei und genau so wie ich es will in einer neuen, leeren Test-Datei mit dem Code von Hansueli.
Hat vielleicht sonst noch irgendjemand eine Idee?
Besten Dank für jeden Vorschlag. Gruss

Anzeige
AW: trotzdem eine Antwort...
12.06.2016 20:06:54
Michael
Hi zusammen,
da ist doch ein Hund drin, oder? Die beiden verlinkten Tabellen sind vertauscht:
106171.xls löscht SPALTEN und nicht Zeilen und ist eben nicht die Tabelle, in die die Funktion rein soll!
Damit kann Hansuelis Code natürlich auch nicht mit DEINER Tabelle funktionieren; außerdem schreibst Du die ganze Zeit von Werten in Spalte F, in der Beispieldatei stehen sie aber in D!
Also gut, mit einer simplen Anpassung sollte es so laufen:
Option Explicit
Const bereich = "F16:F21,F23:F25,F27:F28,F30:F35,F37:F38,F40:F54,F56:F59"
Private Sub Worksheet_Calculate()
Dim rC As Range
For Each rC In Intersect(Range(bereich), UsedRange)
rC.EntireRow.Hidden = rC = 0
Next rC
End Sub
Sub einblenden()
Dim rC As Range
For Each rC In Intersect(Range(bereich), UsedRange)
If rC.EntireRow.Hidden Then rC.EntireRow.Hidden = False
Next rC
End Sub
Das Intersect mit usedrange sollte in Deinem Fall für die Katz sein, aber stört auch nicht weiter...
Als komplette Datei: https://www.herber.de/bbs/user/106184.xlsm
Schöne Grüße,
Michael

Anzeige
AW: trotzdem eine Antwort...
12.06.2016 21:55:12
Portner
Hallo Michael
Danke für Deine Hilfe und Deine Ergänzung!
Der Code funktioniert einwandfrei, aber sobald ich Ihn in meine "Masterdatei" integriere, hängt sich auch bei deinem Code Excel wieder auf. Bereiche und Bezüge stimmen natürlich, Code sitzt in der richtigen Tabelle etc...
Ich habe nun zwei Codes, die mein Vorhaben eigentlich perfekt lösen, nur hängt sich Excel immer wieder auf. Woran kann das noch liegen?
Lieber Gruss

Deadline?
13.06.2016 14:16:09
Michael
Hi,
tja, was soll man sagen, ohne die Originaldatei zu kennen?
Ohnehin ist diese Geschichte ja reine Kosmetik für den Ausdruck - wenn Du das heute abgeben mußt oder bereits abgegeben hast, dann halt ohne...
Sorry & schöne Grüße,
Michael

Anzeige
AW: Deadline?
13.06.2016 17:12:22
Portner
Hallo Michael
Kann ich Dir die Datei irgendwie persönlich mailen? Möchte sie (in original) wegen Datenschutz und so nur ungern ins Forum stellen. Ist das möglich oder verstösst dies gegen irgendwelche FAQ?
Gruss Jannik

vielleicht so....
13.06.2016 20:12:43
Michael
Hi zusammen,
es scheint, als ob das _Calculate nicht ohne weiteres beherrschbar ist: ich hatte auch Fehler wie stack-overflow, böses Stehenbleiben von Excel u.ä.
Ich habe dann u.a. versucht, die Events abzuschalten, aber das war alles nicht befriedigend.
Von der Logik her ist es doch so: wenn Du "normal" arbeitest, d.h. immer nur EIN Tabellenblatt anzeigst, sieht der Anwender ja nicht, was in der Zusammenfassung passiert.
Insofern reicht es eigentlich, ein Makro aufzurufen, sobald die "Zusammenfassung" aktiviert wird:
Private Sub Worksheet_Activate()
Dim rC As Range
If Not Intersect(Range(bereich), UsedRange) Is Nothing Then
'Msgbox dann rauswerfen
MsgBox Intersect(Range(bereich), UsedRange).Address
For Each rC In Intersect(Range(bereich), UsedRange)
rC.EntireRow.Hidden = rC = 0
Next rC
End If
End Sub
Das funktioniert bei mir klaglos.
Übrigens habe ich Deine Bereiche etwas geändert: die leere Zeile vor dem nächsten grünen Balken würde sonst IMMER ausgeblendet werden, weil sie ja keinen Wert enthält.
Schöne Grüße,
Michael

AW: vielleicht so....
13.06.2016 20:39:08
Portner
Lieber Michael
Vielen vielen lieben Dank für Deine suuuuuper Hilfe!
So klappts hervorragend!! Wieso auch immer :) :) :)
Liebe Grüsse und nen schönen Abend!

vielen Dank & LG zurück, M.
14.06.2016 18:31:05
Michael

AW: trotzdem eine Antwort...
12.06.2016 22:34:22
Portner
was noch komisch ist: sobald ich meine Datei mit dem Code abspeichere (xlsm wurde vorher bereits gemacht) kommt die Meldung: "Vorsicht: Teile Ihres Dokuments enthalten möglicherweise persönliche Informationen, die von der Dokumentprüfung nicht entfernt werden können."
Kann das ein Hinweis auf mein Problem sein? Und was bedeutet die Fehlermeldung?
gruss

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige