Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Formatierung an dynamische Tabellenlänge anpassen

Formatierung an dynamische Tabellenlänge anpassen
19.03.2015 14:23:55
D.
Hallo,
habe eine dynamische Tabelle (ich such mir aus einer Dropdown Liste ein Wort aus) die Tabelle (Zahlen/Liste der Namen) ändert sich je nach Wort.
Manchmal ist die Liste jedoch sehr lang, manchmal sehr kurz
Ich möchte diese Formatierung der Tabelle dann dynamisch anpassen aber hab keinen schimmer wie ich das realisieren soll.
Anbei eine Beispieldatei
https://www.herber.de/bbs/user/96492.xlsx

Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formatierung an dynamische Tabellenlänge anpas
19.03.2015 14:36:11
Klaus
Hi,
kopier dir das Makro in ein Modul. Der Dropdownbox das Makro zuweisen.
Option Explicit Sub BlendeA() Dim r As Range Dim w As Range Dim rBlend As Range Set rBlend = Range("C11:C19") Application.ScreenUpdating = False rBlend.EntireRow.Hidden = False For Each r In rBlend If Len(r) = 1 Then If w Is Nothing Then Set w = r Else Set w = Union(w, r) End If End If Next r If Not w Is Nothing Then w.EntireRow.Hidden = True Application.ScreenUpdating = True End Sub Grüße,
Klaus M.vdT.

Anzeige
AW: Formatierung an dynamische Tabellenlänge anpas
19.03.2015 14:51:44
D.
Funktioniert einwandfrei.
Versuche nur noch selber zu verstehen, was das makro alles macht. Hast du evtl eine kurze ErkLàrung für den Teil:
rBlend.EntireRow.Hidden = False
Danke!

AW: Formatierung an dynamische Tabellenlänge anpas
19.03.2015 15:00:05
Klaus
Hi,
rBlend ist ein Bereich, den du festlegen kannst:
Set rBlend = Range("C11:C19")
Also wird aus der Variablen
rBlend.EntireRow.Hidden = False
die Zuweisung:
Range("C11:C19").EntireRow.Hidden = False
und davon die gesamte Zeile:
Rows("11:19").Hidden = False
Jetzt erkennst du, es wird Zeile 11:19 EINgeblendet.
Danach blende ich die Zeilen, die du nicht sehen willst, wieder AUS. Das "Union" sorgt dafür, dass als Gruppe alles auf einmal ausgeblendet wird.
Man könnte auch Zeilen-weise entscheiden und EIN oder AUS blenden. Dann währ der Code leichter verständlich, aber die Laufzeit währe länger - bei langen Listen merkt man das dann auch.
Grüße,
Klaus M.vdT.

Anzeige
AW: Formatierung an dynamische Tabellenlänge anpas
23.03.2015 11:24:29
Sioo
Hallo Klaus,
kannst du mir helfen. Möchte dein Macro erweitern. Zusätzlich zu den Spalten C11:C19 soll dann nochmal von C30:C39 das selbe getan werden (Reihen ein/ausblenden je nach Inhalt)
Habe es versucht selber zu ergänzen aber das klappt nicht.
Gruss!

AW: Formatierung an dynamische Tabellenlänge anpas
23.03.2015 11:24:41
Sioo
Hallo Klaus,
kannst du mir helfen. Möchte dein Macro erweitern. Zusätzlich zu den Spalten C11:C19 soll dann nochmal von C30:C39 das selbe getan werden (Reihen ein/ausblenden je nach Inhalt)
Habe es versucht selber zu ergänzen aber das klappt nicht.
Gruss!

Anzeige
AW: Formatierung an dynamische Tabellenlänge anpas
23.03.2015 14:54:35
Klaus
Hi Sioo,
Namen geändert?
Du hättest den Code natürlich einfach kopieren können, und im zweiten Makro das RANGE verändern. Aber um unnötiges kopieren zu ersparen, rufe das Makro einfach zweimal auf - jeweils mit einer eigenen Range-Zuweisung.
Sub StarteDiesesMakro()
Call BlendeA("C11:C19")
Call BlendeA("C30:C39")
End Sub
Sub BlendeA(rBlend As Range)
Dim r As Range
Dim w As Range
Application.ScreenUpdating = False
rBlend.EntireRow.Hidden = False
For Each r In rBlend
If Len(r) = 1 Then
If w Is Nothing Then
Set w = r
Else
Set w = Union(w, r)
End If
End If
Next r
If Not w Is Nothing Then w.EntireRow.Hidden = True
Application.ScreenUpdating = True
End Sub
Grüße,
Klaus M.vdT.

Anzeige
AW: Formatierung an dynamische Tabellenlänge anpas
19.03.2015 15:01:43
D.
Funktioniert 1a, danke!

AW: Formatierung an dynamische Tabellenlänge anpas
19.03.2015 15:02:32
D.
Sorry, ausversehen das Kontrollkästchen angeklickt.

erst die Werte mit INDEX(), dann Formatierung ...
19.03.2015 14:40:10
neopa
Hallo,
... wenn ich Dich richtig interpretiere, in C11 folgende Formel nach unten bis C20 kopieren und in den Formeln in E11:N21 einfach die Summierung vornehmen, wo in C dann "total" steht.
Project Cost Tracker

 C
11diam

Formeln der Tabelle
ZelleFormel
C11=WENN((C10="total")+(C10=""); "";WENN(ZEILE(A1)>ANZAHL2(INDEX(Lists!A:A;Lists!B2):Lists!A34); "Total";INDEX(Lists!A:A;Lists!B2+ZEILE(A1)+5)))

Bedingte Formatierungen der Tabelle
ZelleNr.: / BedingungFormat
C111. / Zellwert ist gleich =0Abc


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Gruß Werner
.. , - ...
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Dynamische Tabellenlängen in Excel formatieren


Schritt-für-Schritt-Anleitung

Um die bedingte Formatierung einer dynamischen Tabelle in Excel anzupassen, kannst du die folgenden Schritte befolgen:

  1. Erstelle eine Dropdown-Liste: Nutze die Funktion „Datenüberprüfung“, um eine Dropdown-Liste mit den Werten zu erstellen, die du analysieren möchtest.

  2. Bereich definieren: Bestimme den Bereich, den du dynamisch anpassen möchtest (z.B. C11:C19).

  3. Makro erstellen:

    • Öffne den VBA-Editor mit ALT + F11.
    • Füge ein neues Modul hinzu.
    • Kopiere den folgenden Code in das Modul:
Sub BlendeA(rBlend As Range)
    Dim r As Range
    Dim w As Range
    Application.ScreenUpdating = False
    rBlend.EntireRow.Hidden = False
    For Each r In rBlend
        If Len(r) = 1 Then
            If w Is Nothing Then
                Set w = r
            Else
                Set w = Union(w, r)
            End If
        End If
    Next r
    If Not w Is Nothing Then w.EntireRow.Hidden = True
    Application.ScreenUpdating = True
End Sub

Sub StarteDiesesMakro()
    Call BlendeA(Range("C11:C19"))
    Call BlendeA(Range("C30:C39"))
End Sub
  1. Makro zuweisen: Weise das Makro der Dropdown-Liste zu, um die Formatierung dynamisch zu aktualisieren, wenn du einen neuen Wert auswählst.

  2. Bedingte Formatierung hinzufügen: Nutze die Funktion „Bedingte Formatierung“ unter dem Menü „Start“, um spezifische Regeln für die Zellen zu definieren.


Häufige Fehler und Lösungen

  • Fehler: Makro funktioniert nicht: Stelle sicher, dass du das Makro richtig zugewiesen hast und dass die Zellbereiche korrekt definiert sind.

  • Fehler: Formatierung wird nicht angewendet: Überprüfe, ob die Bedingungen in der bedingten Formatierung richtig eingestellt sind. Möglicherweise müssen die Zellbezüge angepasst werden.

  • Fehler: Zeilen blenden nicht richtig: Achte darauf, dass die Len(r) = 1 Bedingung korrekt ist. Dies könnte je nach Datenstruktur variieren.


Alternative Methoden

Falls du nicht mit Makros arbeiten möchtest, kannst du auch die Excel-Bedingte Formatierung ohne VBA nutzen:

  1. Dynamischer Bereich: Setze einen dynamischen Bereich mithilfe der Funktion OFFSET() in der bedingten Formatierung.

  2. Formelbasierte Formatierung: Du kannst auch eine Formel verwenden, die überprüft, ob der Zellwert einen bestimmten Zustand erfüllt (z.B. =C11="").


Praktische Beispiele

Hier ist ein Beispiel, wie du die bedingte Formatierung für einen dynamischen Bereich in Excel einrichten kannst:

  • Angenommen, in C11 wird ein Wert eingegeben, und du möchtest, dass die Zellen C11:C19 rot hervorgehoben werden, wenn der Wert gleich 0 ist.
  1. Wähle den Bereich C11:C19 aus.
  2. Gehe zu „Bedingte Formatierung“ > „Neue Regel“.
  3. Wähle „Formel zur Ermittlung der zu formatierenden Zellen verwenden“ und gib die Formel ein: =C11=0.
  4. Wähle das gewünschte Format aus (z.B. roter Hintergrund).

Tipps für Profis

  • Nutze benannte Bereiche, um deine Formeln und Makros übersichtlicher zu gestalten.
  • Experimentiere mit der Formel für bedingte Formatierung, um komplexere Bedingungen zu erstellen.
  • Halte deine Makros gut dokumentiert, um spätere Änderungen und Anpassungen zu erleichtern.

FAQ: Häufige Fragen

1. Wie kann ich die bedingte Formatierung für mehrere Bereiche gleichzeitig anwenden? Du kannst mehrere Bereiche in der bedingten Formatierung auswählen oder ein Makro erstellen, das die Formatierung für die gewünschten Bereiche anwendet.

2. Gibt es eine Möglichkeit, die Formatierung automatisch zu aktualisieren, wenn sich die Daten ändern? Ja, indem du die Makros an die Dropdown-Liste oder an die Arbeitsmappe bindest, kannst du sicherstellen, dass die Formatierung automatisch aktualisiert wird.

3. Kann ich auch andere Excel-Versionen verwenden? Die beschriebenen Methoden sind in den meisten modernen Excel-Versionen verfügbar, einschließlich Excel 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