Supportnet / Forum / Tabellenkalkulation
Zeile aus.- und einblenden über Makro
Frage
Hallo Leute,
ich habe folgendes Problem,
ich möchte gerne alle Zeilen in abhängigkeit von Zellen (A4 bis A3000 ) mit ein Makro aus bzw. einblenden lassen.
Das alles soll nartürlich selbststäntig ablaufen, da sich die Werte in den Zellen ( A4 - A3000 ) ändern
z.B.1
A4=0 Zeile ausblenden
A5=1 Zeile einblenden
z.B.2
A4=1 Zeile einblenden
A5=0 Zeile ausblenden
Gruß
Achim
Antwort 1 von Saarbauer
Hallo,
vielleicht brauchst du ein Makro, aber dafür sind die Angaben etwas dünn.
Wenn ich es richtig interpretiere sollen die Zeilen A4:A300 ausgeblendet werden, wenn in der Spalte A in einer Zelle eine 0 steht.
Geht auch über "Autofilter".
Notfalls Makro mit "Autofilterfunktion" aufzeichnen
Gruß
Helmut
vielleicht brauchst du ein Makro, aber dafür sind die Angaben etwas dünn.
Wenn ich es richtig interpretiere sollen die Zeilen A4:A300 ausgeblendet werden, wenn in der Spalte A in einer Zelle eine 0 steht.
Geht auch über "Autofilter".
Notfalls Makro mit "Autofilterfunktion" aufzeichnen
Gruß
Helmut
Antwort 2 von achim115
Hallo Helmut,
fast Richtig,
es sollen nur die Zeilen ausgeblendet werden in denen eine Null "A4=0" vorkommt und das kann eben von A4 - A3000 sein.
Es müßte aber auch umgekehrt funktioniern wenn in den Zeilen keine Null sondern eine eins " A4=1 " vorkommt soll wieder eingeblendet werden.
Aber nur eben die Zeilen die, die Kriterien erfüllen
Gruß
Achim
fast Richtig,
es sollen nur die Zeilen ausgeblendet werden in denen eine Null "A4=0" vorkommt und das kann eben von A4 - A3000 sein.
Es müßte aber auch umgekehrt funktioniern wenn in den Zeilen keine Null sondern eine eins " A4=1 " vorkommt soll wieder eingeblendet werden.
Aber nur eben die Zeilen die, die Kriterien erfüllen
Gruß
Achim
Antwort 3 von achim115
Hallo,
also das mit dem Autofilter ist schon das Richtige, aber mit einen Makro das automatisch im hintergrund läuft währe das ganze noch viel besser.
Nur weiß ich jetzt nicht wie ich das hinbekommen soll, ich möchte auch gerne die Pfeile die der Autofilter anlegt vermeiden.
Gruß und schönen Abend
Achim
also das mit dem Autofilter ist schon das Richtige, aber mit einen Makro das automatisch im hintergrund läuft währe das ganze noch viel besser.
Nur weiß ich jetzt nicht wie ich das hinbekommen soll, ich möchte auch gerne die Pfeile die der Autofilter anlegt vermeiden.
Gruß und schönen Abend
Achim
Antwort 4 von coros
Moin Achim,
irgendwie verstehe ich die ganze Sache nicht so richtig. Der Teil, wenn in Spalte A eine 0 vorkommt, die Zeile ausblenden ist mir schon klar, aber wie kommt die Zahl 1 in die Spalte A, also z.B. A4, wenn dort vorher eine 0 stand und die Zeile ausgeblendet wurde? Kannst Du Dich dazu noch mal äußern? Ansonsten sehe so ein Makro wie folgt aus. Kopiere es in ein StandardModul und satrte es über eine Befehlsschaltfläche.
Das Makro blendet Dir die Zeile aus, in der in Spalte A eine 0 steht. Wenn dort eine 1 steht, wird die Zeile wieder eingeblendet.
Ich hoffe, Du kommst zurecht. Bei Fragen melde Dich.
MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
irgendwie verstehe ich die ganze Sache nicht so richtig. Der Teil, wenn in Spalte A eine 0 vorkommt, die Zeile ausblenden ist mir schon klar, aber wie kommt die Zahl 1 in die Spalte A, also z.B. A4, wenn dort vorher eine 0 stand und die Zeile ausgeblendet wurde? Kannst Du Dich dazu noch mal äußern? Ansonsten sehe so ein Makro wie folgt aus. Kopiere es in ein StandardModul und satrte es über eine Befehlsschaltfläche.
Option Explicit
Sub Zeilen_ausblenden()
Dim Wiederholungen As Long
For Wiederholungen = 4 To Range("A65536").End(xlUp).Row
If Cells(Wiederholungen, 1) = 0 Then
Rows(Wiederholungen).EntireRow.Hidden = True
Else
Rows(Wiederholungen).EntireRow.Hidden = False
End If
Next
End Sub
Das Makro blendet Dir die Zeile aus, in der in Spalte A eine 0 steht. Wenn dort eine 1 steht, wird die Zeile wieder eingeblendet.
Ich hoffe, Du kommst zurecht. Bei Fragen melde Dich.
MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 5 von achim115
Morgen,
Danke coros, für das Makro.
Mit Makros habe ich es leider noch nicht so aber ich lerne dazu.
Die Spalte A ist eine so genannte Hilfsspalte,
die ermittelt ob in der Spalte C ein Wert steht
wenn ja wird eine 1 geschrieben wen nein eine 0.
Ich hoffe das hat deine frage beantwortet, wen nein melde dich noch einmal.
Gruß
Achim
Danke coros, für das Makro.
Mit Makros habe ich es leider noch nicht so aber ich lerne dazu.
Die Spalte A ist eine so genannte Hilfsspalte,
die ermittelt ob in der Spalte C ein Wert steht
wenn ja wird eine 1 geschrieben wen nein eine 0.
Ich hoffe das hat deine frage beantwortet, wen nein melde dich noch einmal.
Gruß
Achim
Antwort 6 von coros
Hi Achim,
nein, das beantwortet meine obige Frage nicht 100%ig. Wie kommen denn die Werte in Spalte C. Denn das ist analog wie bei Spalte A, wenn die Zeile ausgeblendet ist, wirst Du keinen Wert in Spalte C bekommen. Es sei denn, der wird dort ebenfalls durch eine Formel eingefügt und die Formel bezieht sich auf ein anderes Tabellenblatt.
Hast Du denn das Makro mal ausprobiert?
Wenn Du Probleme hast, das in Deine Datei zu bekommen, dann schau mal auf meiner HP in der Rubrik Anleitungen und dort dann in der Anleitungsnummer 3 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird. Ich hätte das auch schon in meiner ersten Antwort erwähnen können. Da Du aber so gezielt nach einem Makro gefragt hast, dachte ich, dass Du wüsstest wie man das macht.
MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
nein, das beantwortet meine obige Frage nicht 100%ig. Wie kommen denn die Werte in Spalte C. Denn das ist analog wie bei Spalte A, wenn die Zeile ausgeblendet ist, wirst Du keinen Wert in Spalte C bekommen. Es sei denn, der wird dort ebenfalls durch eine Formel eingefügt und die Formel bezieht sich auf ein anderes Tabellenblatt.
Hast Du denn das Makro mal ausprobiert?
Wenn Du Probleme hast, das in Deine Datei zu bekommen, dann schau mal auf meiner HP in der Rubrik Anleitungen und dort dann in der Anleitungsnummer 3 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird. Ich hätte das auch schon in meiner ersten Antwort erwähnen können. Da Du aber so gezielt nach einem Makro gefragt hast, dachte ich, dass Du wüsstest wie man das macht.
MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 7 von achim115
Hi coros,
erst einmal Danke für deine Antwort, die Werte in Spalte C werden auch durch eine Formel ermittelt.
Das mit den Makros, meinte ich mit den schreiben von Makros ( Autoaufzeichnen geht so ), wie man sie einfügt das habe ich zwischenzeitlich schon dazu gelernt.
Dein Makro habe ich noch nicht probiert da ich jetzt noch weg muß, aber heute Abend sitz ich wieder vor dem Rechner. Da die Excel Datei einmal fertig werden muß.
Mfg
Achim
erst einmal Danke für deine Antwort, die Werte in Spalte C werden auch durch eine Formel ermittelt.
Das mit den Makros, meinte ich mit den schreiben von Makros ( Autoaufzeichnen geht so ), wie man sie einfügt das habe ich zwischenzeitlich schon dazu gelernt.
Dein Makro habe ich noch nicht probiert da ich jetzt noch weg muß, aber heute Abend sitz ich wieder vor dem Rechner. Da die Excel Datei einmal fertig werden muß.
Mfg
Achim
Antwort 8 von achim115
Hallo coros,
dein Makro funktioniert nicht ganz so wie ich mir das vorstelle und zwar das ausblenden von den Zeilen funktioniert aber so bald wieder mehrere Zellen mit einer 1 vorhanden sind funktioniert das einblenden nicht mehr.
Ich kann dir auch die Tabelle zuschicken wenn es für dich dabei leichter ist das ganze zu verstehen.
Nartürlich ohne Inhalt.
Gruß
Achim
dein Makro funktioniert nicht ganz so wie ich mir das vorstelle und zwar das ausblenden von den Zeilen funktioniert aber so bald wieder mehrere Zellen mit einer 1 vorhanden sind funktioniert das einblenden nicht mehr.
Ich kann dir auch die Tabelle zuschicken wenn es für dich dabei leichter ist das ganze zu verstehen.
Nartürlich ohne Inhalt.
Gruß
Achim
Antwort 9 von coros
Hi Achim,
war ein DUmmer Fehler von mir. Da ich mit der Range-Anweisung "Range("A65536").End(xlUp).Row
" die letzte beschriebene Zeile ermittele und ausgeblendete Zeilen nicht dazu zählen, hat er natürlich immer nur als die letzte Zeile die Zeile angesehen, die bei Dir sichtbar ist. Daher funktionierte die ganze Sache nur in eine Richtung. Mit dem neuen Makro funktioniert es nun aber in beide Richtungen.
Bei Problemen bitte melden.
MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
war ein DUmmer Fehler von mir. Da ich mit der Range-Anweisung "Range("A65536").End(xlUp).Row
" die letzte beschriebene Zeile ermittele und ausgeblendete Zeilen nicht dazu zählen, hat er natürlich immer nur als die letzte Zeile die Zeile angesehen, die bei Dir sichtbar ist. Daher funktionierte die ganze Sache nur in eine Richtung. Mit dem neuen Makro funktioniert es nun aber in beide Richtungen.
Option Explicit
Sub Zeilen_ausblenden()
Dim Wiederholungen As Long
Application.ScreenUpdating = False
Cells.EntireRow.Hidden = False
For Wiederholungen = 4 To Range("A65536").End(xlUp).Row
If Cells(Wiederholungen, 1) = 0 Then
Rows(Wiederholungen).EntireRow.Hidden = True
Else
Rows(Wiederholungen).EntireRow.Hidden = False
End If
Next
End Sub
Bei Problemen bitte melden.
MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 10 von achim115
Danke coros,
Danke, jetzt funktioniert es.
Ich weiß jetzt wird es vielleicht ein wenig zuviel aber ich hoffe du kannst mir da auch noch einen Tip zum folgenden Problem geben.
Jetzt müßte das ganze nur noch automatisch funktioniern sobald ich die Tabelle aktiviere ( Anklicke )
ohne das ich einen Button anklicken muß.
Kannst Du mir ein Buch empfehlen, über das Makro schreiben oder wo hast du das gelernt?
Gruß
Achim
Danke, jetzt funktioniert es.
Ich weiß jetzt wird es vielleicht ein wenig zuviel aber ich hoffe du kannst mir da auch noch einen Tip zum folgenden Problem geben.
Jetzt müßte das ganze nur noch automatisch funktioniern sobald ich die Tabelle aktiviere ( Anklicke )
ohne das ich einen Button anklicken muß.
Kannst Du mir ein Buch empfehlen, über das Makro schreiben oder wo hast du das gelernt?
Gruß
Achim
Antwort 11 von coros
Hi Achim,
kein Problem. Nachfolgend der Code, der ausgeführt wird, wenn das Blatt aktiviert wird.
Ein Buch kann ich Dir leider nicht empfehlen, da ich keines habe, was VBA angeht. Ich habe sehr viel Vorlauf durch meine Arbeit gehabt und den Rest habe ich nach der Methode Learning by doing erlernt.
MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
kein Problem. Nachfolgend der Code, der ausgeführt wird, wenn das Blatt aktiviert wird.
Option Explicit
Private Sub Worksheet_Activate()
Dim Wiederholungen As Long
Application.ScreenUpdating = False
Cells.EntireRow.Hidden = False
For Wiederholungen = 4 To Range("A65536").End(xlUp).Row
If Cells(Wiederholungen, 1) = 0 Then
Rows(Wiederholungen).EntireRow.Hidden = True
Else
Rows(Wiederholungen).EntireRow.Hidden = False
End If
Next
End Sub
Ein Buch kann ich Dir leider nicht empfehlen, da ich keines habe, was VBA angeht. Ich habe sehr viel Vorlauf durch meine Arbeit gehabt und den Rest habe ich nach der Methode Learning by doing erlernt.
MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 12 von achim115
Hallo,
Danke, dan wird mir nichts anderes übrig bleiben und es auch so machen wie Du.
" Learning by doing ".
MfG
schönen Tag noch
Achim
Danke, dan wird mir nichts anderes übrig bleiben und es auch so machen wie Du.
" Learning by doing ".
MfG
schönen Tag noch
Achim