Supportnet Computer
Planet of Tech

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

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

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

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.

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

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.

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

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

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.

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

Antwort 11 von coros

Hi Achim,

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

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: