Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zeilen ausblenden, wenn der Z.Inhalt grau ist?

Zeilen ausblenden, wenn der Z.Inhalt grau ist?
23.05.2007 21:50:00
Selma
Hallo Leute,
ich suche nach eine VBA-Lösung für folgendes....
wenn in Spalte A der Zelleninhalt der Zelle mit grauer Schriftfarbe (ColorIndex 15) dargestellt ist,
dann soll diese ZEILE ausgeblendet werden.
Beim erneuten ausführen des Makros sollen diese Zeilen wieder eingeblendet werden.
Wie mache ich das?
Vielen herzlichen Dank im Voraus.
Liebe Grüße
Selma

Anzeige

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Versuch ...
23.05.2007 22:09:00
Matthias
Hi,
in ein Modul
Option Explicit

Sub Selma()
Dim Col As Boolean
If ActiveCell.Rows.Hidden = True Then ActiveCell.Rows.Hidden = False: Exit Sub
If ActiveCell.Font.ColorIndex = 15 Then Col = True
ActiveCell.Rows.Hidden = True
Col = False: Exit Sub
End Sub


Gruß Matthias

Anzeige
AW: Versuch ...
23.05.2007 22:24:00
Selma
Hallo Matthias,
erstmal Danke für deine Mühe. Leider funktioniert es nicht.
Es werden nicht alle Zeilen ausgeblendet.
Das Makro soll an aktives Arbeitsblatt angewendet werden.
LG
Selma

Beitrag ist noch offen !
23.05.2007 22:33:00
Matthias
Hallo Selma
Habe leider für heute keine Zeit mehr, sorry.
Gruß Matthias

Anzeige
AW: Versuch ...
23.05.2007 23:30:00
ingUR
Hallo, Selma,
die Idee von Matthias L. aufgegriffen und auf alle Zeilen bis zur letzen beschriebenen Zeile in der Spalte A erweitert, sieht bei mir so aus:

Option Explicit
Sub Selma()
Dim rngC As Range
For Each rngC In Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row)
With rngC
If .Rows.Hidden = True Then
Cells.EntireRow.Hidden = False
Range("A1").Select
Exit For
Else
If .Font.ColorIndex = 15 Then
.Rows.Hidden = True
End If
End If
End With
Next
End Sub

Diese Code ist zwar länger als der Von Josef E., jedoch sind nacharbeiten bei diesem kurzen Code dann notwendig, wenn die Schrift in der letzten oder in den letzten Zeilen graue Schrtiftfabe aufweist.
Gruß,
Uwe

Anzeige
Danke Uwe!
24.05.2007 00:02:00
Selma
Danke Uwe !
LG
Selma

AW: Zeilen ausblenden, wenn der Z.Inhalt grau ist?
23.05.2007 23:04:00
Josef
Hallo Selma,
versuch mal.
Sub Grau()
Dim rng As Range


For Each rng In Range("A2:A" & Cells(Rows.Count, 1).End(xlUp).Row)
    rng.EntireRow.Hidden = Not rng.EntireRow.Hidden And rng.Font.ColorIndex = 15
Next

End Sub

Gruß Sepp

Anzeige
Danke Sepp !
24.05.2007 00:01:52
Selma
Danke Sepp !
LG
Selma

Anpassung: z.T. nicht nachvollziehb. Ergebnisse
27.05.2007 11:07:50
Fritz_W
Hallo Forumsteilnehmer,
ích wollte die Makros aus diesem Thread gerne auf etwas veränderte Aufgabenstellungen anpassen.
Dabei sind mir auch einige Ungereimtheiten aufgefallen, die ich mir (aufgrund der unzureichenden VBA-Kenntnisse) nicht erklären kann.
Zum besseren Verständnis "als Anlage" meine Testdatei.
In der Arbeitsmappe wurde Uwes Makro in Grau_Schrift1 und Sepps Code in Grau_Schrift2 umbenannt.
Die Codes beider Makros blenden auch Zeile 18 der Spalte A aus, da die Zelle A18 entsprechend formatiert ist. Die Zelle A18 ist jedoch leer, deshalb würde ich gerne, dass die Zeile 18 nicht ausgeblendet wird. Ist das machbar?
Ich wollte anschließend den Code so verändern, dass die Zeilen in Abhängigkeit der Zellhintergrundfarbe aus- und wieder eingeblendet werden. Die von mir geänderten Codes liefern anschließend z.T. unterschiedliche "Ergebnisse" (vgl. Beispielmappe D31:E31, D33:E33). So werden in beiden Fällen die jeweils letzte Zeile mit in der Spalte A grau formatierter Hintergrundzelle (Zeile 29) nicht ausgeblendet. Bei Sepps Code werden anschließend die Zeilen 25 und 27 nicht wieder eingeblendet. Bezüglich des Ursprungscodes (Schriftfarbe grau) konnte ich doch keine Unterschiede feststellen?
Wäre dankbar hinsichtlich entsprechender Erklärungen und v.a. von Hilfen bezüglich der von mir gewünschten Anpassung.
Allen Helfern bereits an dieser Stelle meinen herzlichen Dank für die Unterstützung.
mfg
Fritz
https://www.herber.de/bbs/user/42793.xls

Anzeige
AW: Anpassung: z.T. nicht nachvollziehb. Ergebnisse
27.05.2007 11:24:08
Josef
Hallo Fritz,
das die Zeile 29 nicht ausgeblendet wird, ist klar, weil immer der Bereich bis zur letzten gefüllten Zelle bearbeitet wird. Dazu muss man den Bereich fix vorgeben.
Die Abfrage ob die Zelle leer ist, muss man im Code halt integrieren.
Sub Grau_Schrift1()
'Uwe (ingUR)
Dim rngC As Range
For Each rngC In Range("A1:A30")
    With rngC
        If .Rows.Hidden = True Then
            Cells.EntireRow.Hidden = False
            Range("A1").Select
            Exit For
        Else
            If .Font.ColorIndex = 15 And Len(.Text) > 0 Then
                .Rows.Hidden = True
            End If
        End If
    End With
Next
End Sub

Gruß Sepp

Anzeige
AW: Anpassung: z.T. nicht nachvollziehb. Ergebnisse
27.05.2007 11:44:43
Fritz_W
Hallo Sepp,
danke für die Hilfe, der von Dir geänderte Code, stellt für mich eine sehr geschätzte Variante dar.
Ich hoffe, Du siehst mir das nach, das mir manches nicht klar ist, was für dich selbstverständlich ist. -:)
Mit einem Bruchteil deiner Excel-Kenntnisse wäre schon zufrieden (das ist ernst gemeint und keine Schmeichelei). Ich glaub so denken ein Vielzahl der Forumsteilnehmer, denen Du hier schon geholfen hast.
Eine sinnvolle Änderung des Codes wäre demnach auch die Angabe eines Bereichs, auf denen sich das Aus- und Einblenden bezieht (z.B. A2:A51). Wie würde das aussehen?
Gruß
Fritz

Anzeige
AW: Anpassung: z.T. nicht nachvollziehb. Ergebnisse
27.05.2007 15:54:12
Josef
Hallo Fritz,
den Breich definierst du in

For Each rngC In Range("A1:A30")


also einfach anpassen.

Gruß Sepp

AW: Anpassung: z.T. nicht nachvollziehb. Ergebnisse
27.05.2007 18:27:55
Fritz_W
Hallo Sepp,
vielen Dank.
Ich habe nun schon wieder was dazugelernt
(Ich weiss, bei genauem Hinsehen hätte ich das eigentlich selbst herausfinden können).
Gleich melde ich mich noch einmal mit einer Frage im Thread von Gestern, in dem Du mir bereits geholfen hattest. Freue mich, wenn Du Dir das mal anschauern würdest.
Gruß
Fritz
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zeilen ausblenden bei grauer Schriftfarbe in Excel


Schritt-für-Schritt-Anleitung

Um Zeilen in Excel auszublenden, wenn der Zelleninhalt grau ist, kannst Du ein VBA-Makro verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne die Excel-Datei und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Klicke im Menü auf Einfügen > Modul.

  3. Kopiere den folgenden VBA-Code in das Modul:

    Option Explicit
    Sub Grau()
       Dim rng As Range
       For Each rng In Range("A2:A" & Cells(Rows.Count, 1).End(xlUp).Row)
           rng.EntireRow.Hidden = Not rng.EntireRow.Hidden And rng.Font.ColorIndex = 15
       Next
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Führe das Makro aus: Drücke ALT + F8, wähle Grau aus und klicke auf Ausführen.

Wenn Du den Code anpassen möchtest, um einen spezifischen Bereich zu bearbeiten, ändere die Zeile:

For Each rng In Range("A2:A30")

Häufige Fehler und Lösungen

  • Fehler: Einige Zeilen werden nicht ausgeblendet.

    • Stelle sicher, dass die Schriftfarbe tatsächlich grau ist (ColorIndex 15). Du kannst die Schriftfarbe ändern, indem Du die Zelle auswählst und die Schriftfarbe auf grau änderst.
  • Fehler: Das Makro funktioniert nicht auf allen Blättern.

    • Achte darauf, dass das Makro im richtigen Arbeitsblatt ausgeführt wird. Du kannst den Code anpassen, um sicherzustellen, dass er auf das aktive Arbeitsblatt angewendet wird.

Alternative Methoden

Wenn Du die Zeilen ausblenden möchtest, ohne VBA zu verwenden, kannst Du die Filterfunktion benutzen:

  1. Markiere die gesamte Tabelle.
  2. Gehe zu Daten > Filter.
  3. Setze einen benutzerdefinierten Filter, um nur die Zeilen mit grauem Text anzuzeigen.

Diese Methode ist zwar nicht so flexibel wie VBA, kann aber für einfache Aufgaben ausreichen.


Praktische Beispiele

Angenommen, Du hast eine Liste von Namen in Spalte A und möchtest alle Zeilen ausblenden, in denen die Namen grau formatiert sind. Verwende das obige Makro, um die Zeilen schnell auszublenden oder wieder einzublenden.

Wenn Du beispielsweise die Zeilen mit grauen Schriftarten ausblenden möchtest, kannst Du den Code oben verwenden. Wenn Du ein weiteres Beispiel benötigst, um den Bereich zu ändern, so könnte dies wie folgt aussehen:

For Each rng In Range("A1:A50")

Tipps für Profis

  • Verwendung von Bedingter Formatierung: Wenn Du die Zelleninhalte ausgrauen möchtest, kannst Du dies auch über die bedingte Formatierung tun. So kannst Du z.B. automatisch Zellen ausgrauen, wenn bestimmte Bedingungen erfüllt sind.

  • Schrift ausblenden: Um den Text in einer Zelle auszublenden, kannst Du die Schriftfarbe auf den gleichen Farbton wie den Hintergrund setzen. Dies geschieht durch:

    rng.Font.Color = rng.Interior.Color
  • Wiederverwendbare Makros: Speichere häufig verwendete Makros in einer persönlichen Makroarbeitsmappe, sodass sie in jeder Excel-Datei verfügbar sind.


FAQ: Häufige Fragen

1. Wie kann ich die ausgeblendeten Zeilen wieder einblenden? Um die ausgeblendeten Zeilen wieder anzuzeigen, führe das gleiche Makro erneut aus. Es wird die Sichtbarkeit der Zeilen umkehren.

2. Kann ich das Makro auf andere Spalten anwenden? Ja, Du kannst den Bereich im Code anpassen, um andere Spalten zu berücksichtigen, z.B. Range("B2:B100").

3. Was passiert, wenn ich grauen Hintergrund statt grauer Schrift verwenden möchte? Du musst den Code anpassen, um die Hintergrundfarbe der Zelle zu überprüfen. Verwende dafür If .Interior.ColorIndex = 15 Then.

4. Welche Excel-Version benötige ich für VBA? VBA ist in den meisten modernen Excel-Versionen verfügbar, einschließlich Excel 2010, 2013, 2016, 2019 und Microsoft 365.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige