Office: Spalten ohne Inhalt automatisch ausblenden

Helfe beim Thema Spalten ohne Inhalt automatisch ausblenden in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen! Ich brauche ganz dringend Hilfe. Habe eine Tabelle mit "falschen" Inhalten eingefügt. Es soll folgendes gemacht werden können:... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Controller, 14. Juni 2013.

  1. Spalten ohne Inhalt automatisch ausblenden


    Hallo zusammen!

    Ich brauche ganz dringend Hilfe. Habe eine Tabelle mit "falschen" Inhalten eingefügt.
    Es soll folgendes gemacht werden können:

    Mit dem Filter wähle ich die Kategorie aus, die ich brauche. Z.B. "Auto".
    Nun sind die Spalten von G bis Z aber komplett sichtbar. Hierbei brauche ich aber NUR die Spalten, die auch tatsächlich gefüllt sind. Das heißt, z.B. die Spalten G, Hund O sollen ausgeblendet werden, weil sie ja keinen Inhalt haben.
    Ziel: die Tabelle soll mit einem Klick auf die gewünschten Inhalt zusammengestaucht werden.

    Geht so etwas tatsächlich nur mit VBA? Wenn ja, weiß jemand den entsprechenden Code dazu? Ich kenn mich mit VBA nämlich nicht so aus und alles andere (z.B. Pivot mit Datenschnitten) funzt nicht... Spalten ohne Inhalt automatisch ausblenden :(
    In Wirklichkeit ist diese Tabelle riesengroß, sie umfasst mehrere hundert Spalten und Zeilen!

    DANKE schonmal!!!
     
    Controller, 14. Juni 2013
    #1
  2. Exl121150 Erfahrener User
    Hallo,

    in der beiliegenden Excel-Datei habe ich Dir 2 Makros eingebaut, die zum Ausblenden und Einblenden der gewünschten Spalten dienen.
    Zu erreichen sind sie aus dem Arbeitsblatt durch Drücken der Tastenkombination Alt+F8. Durch Auswahl aus der dann angezeigten Liste können sie gestartet werden.
     
    Exl121150, 14. Juni 2013
    #2
  3. Wahnsinn!!! Das geht ja :))
    Vielen vielen Dank!!!

    Hier ein Ausschnitt aus dem Code:

    Set LinkeObereEcke = ActiveSheet.Cells(2, 2) 'Zelle B2

    With LinkeObereEcke.CurrentRegion
    Set RgCt = .Columns(.Columns.Count)
    Set RgCt = RgCt.Offset(2, 0).Resize(.Rows.Count - 2)
    End With

    Do
    AnzZl = WorksheetFunction.Count(RgCt)
    RgCt.EntireColumn.Hidden = (AnzZl = 0)
    Set RgCt = RgCt.Offset(0, -1)
    Loop Until RgCt.Cells(0) = "Verantwortlich"

    End Sub

    Public Sub Einblenden()
    Dim LinkeObereEcke As Range
    Dim Rg As Range, RgSp As Range

    Set LinkeObereEcke = ActiveSheet.Cells(2, 2) 'Zelle B2
    Set Rg = LinkeObereEcke.CurrentRegion

    Was genau muss ich jetzt für die "echte" Tabelle ändern? Ich schätze die Ziffern in Klammern. Aber was sagen die aus?
    Ich bin ganz neu in VBA und möchte das gern lernen ;) deshalb auch die Fragen...

    Danke!!
     
    Controller, 14. Juni 2013
    #3
  4. Spalten ohne Inhalt automatisch ausblenden

    Gleich hinterher noch eine Anmerkung:
    Das Makro funktioniert zwar wie gewünscht, doch wenn ich z.B. nur "Küche" auswähle, dann blendet er nicht nur die Spalten aus, die sich auf die Küche beziehen, sondern auf alle Kategorien. Also so, als wäre die Tabelle nicht gefiltert. Weißt du, was ich meine? Kann man da auch was ändern?
    Das wäre spitze :)
     
    Controller, 14. Juni 2013
    #4
  5. Exl121150 Erfahrener User
    Hallo,

    in der beiliegenden Excel-Datei habe ich das Makro "Ausblenden" modifiziert, dass es ausgeblendete Zeilen nicht in die Überprüfung (Summentest) mit einbezieht. Das habe ich erreicht, indem ich die Arbeitsblattfunktion "Count" (=ZÄHLEN()) durch die Arbeitsblattfunktion "SubTotal(109,Bereich)" (=TEILERGEBNIS(109;Bereich)) ersetzt habe. Der 109-Code in der Funktion bedeutet, dass eine Summierung über den "Bereich" stattfindet, aber nur mit den eingeblendeten Zellen dieses Bereiches. Ich habe jetzt dem Makro sehr viel Kommentar beigefügt.
    Code:
    Set LinkeObereEcke = ActiveSheet.Cells(2, 2) 'Zelle B2
    
     With LinkeObereEcke.CurrentRegion
     Set RgCt = .Columns(.Columns.Count)
     Set RgCt = RgCt.Offset(2, 0).Resize(.Rows.Count - 2)
     End With
    
    ActiveSheet.Cells(2,2) bedeutet, dass es sich hier um die Zelle in der 2.Zeile und 2.Spalte des aktiven Arbeitsblattes handelt (=B2).ActiveSheet.Cells(3,1) wäre damit die Zelle in der 3.Zeile und der 1.Spalte (=A3).
    Diese Zelle "B2" wird im Beispielmakro als Ausgangzelle für die Methode "Bereich.CurrentRegion" verwendet. Dabei sucht die Methode "CurrentRegion" ausgehend von "Bereich" (also B2) die Umgebung des Ausgangsbereiches ab, bis sie links und rechts bzw. oberhalb und unterhalb auf eine durchgehende Leerzeile/spalte trifft. Dieses Rechteck aus Leerzellen wird als äußere Begrenzung des Bereichs genommen, der von der Methode CurrentRegion zurückgeliefert wird (Die gleiche Wirkung wie die Leerzellen hat auch der Rand des Arbeitsblattes).
    In Deinem Echtproblem (Echtmakro) musst Du eine Zelle wählen, die garantiert in dem Datenbereich liegt und die derart von Datenzellen umgeben, dass damit durch die Bereichsmethode "CurrentRegion" der gesamte Datenbereich als Rechteckbereich erfasst wird. Du dürftest somit nicht eine Zelle als Ausgangsbereich für CurrentRegion auswählen, die zwar im Datenbereich liegt, die aber von lauter Leerzellen umgeben ist. Meist ist es am einfachsten, wenn man die linke obere Zelle des Datenbereichs hernimmt, denn dort beginnt meist eine Beschriftungszeile/spalte, die somit die Erfassung des gesamten Datenbereiches gewährleistet.
     
    Zuletzt bearbeitet: 15. Juni 2013
    Exl121150, 15. Juni 2013
    #5
  6. Gleiches Problem - allerdings hier keine reinen Zahlenwerte

    Guten Morgen!

    ich habe das gleiche Problem wie der Threadersteller: ich möchte Spalten ohne Inhalt automatisch ausblenden, dabei soll auch eine Filterung beachtet werden. Das Funktioniert mit dem Code von Exl121150 perfekt - aber ja nur solange, wie ich reine Zahlenwerte in den Spalten stehen habe, die aufsummiert werden können.

    In meiner Excel-Liste gibt es allerdings Spalten, die nicht nur reine Zahlen- sondern auch einen Mix von Zahlen und Buchstaben oder nur Buchstaben enthalten können. Ich habe eine Beispieldatei mal mit hochgeladen. Der Aufbau ist wie in der Beispiel-xlsm von "Exl121150", der Code ist auch schon eingefügt, dieser funktioniert wie gesagt auch bei Zahlenwerten. Eine Filterung soll nach der "Klasse" (B3) möglich sein.

    Lange Rede kurzer Sinn: Habt Ihr eine Idee, wie ich es auch bei Nicht-Zahlenwerten hinbekommen könnte?

    Vielen Dank und einen schönen Tag.
     
    JonnyBeGood, 9. Dezember 2015
    #6
  7. Exl121150 Erfahrener User
    Hallo,

    alles, was ich im Makro verändert habe, ist:
    Code:
      'Benannte Konstante, die für die "SubTotal"-Funktion benötigt wird:
      'Const SummeOhneAusgeblendete = 109
      Const Anzahl2OhneAusgeblendete = 103
    '......
        SumZl = WorksheetFunction.Subtotal(Anzahl2OhneAusgeblendete, RgCt)
        'SumZl = WorksheetFunction.Subtotal(SummeOhneAusgeblendete, RgCt)
    '....
    
    Dabei hätte bereits bloß folgende Änderung genügt:
    Code:
      'Benannte Konstante, die für die "SubTotal"-Funktion benötigt wird:
      Const SummeOhneAusgeblendete = 103
    '......
    '....
    
    aber um die Bedeutung der Konstante 103 zu verdeutlichen, habe ich den Namensbezeichner zusätzlich geändert.
     
    Exl121150, 11. Dezember 2015
    #7
  8. Spalten ohne Inhalt automatisch ausblenden

    Das klappt super! Vielen vielen Dank :)
     
    JonnyBeGood, 14. Dezember 2015
    #8
Thema:

Spalten ohne Inhalt automatisch ausblenden

Die Seite wird geladen...
  1. Spalten ohne Inhalt automatisch ausblenden - Similar Threads - Spalten Inhalt automatisch

  2. Spalte gruppieren und aus den Inhalten jeweils eine Tabelle

    in Microsoft Excel Hilfe
    Spalte gruppieren und aus den Inhalten jeweils eine Tabelle: Hallo zusammen, ich habe eine große Abrechnungstabelle mit mehrere Spalten. Ich habe eine Spalte "Kontonummer" und mehrere Kontonummern und Rechnungen dazu in den Zeilen. Z.B. habe ich...
  3. Letzter Wert in Zeile - abhängig von Inhalt einer Spalte

    in Microsoft Excel Hilfe
    Letzter Wert in Zeile - abhängig von Inhalt einer Spalte: Hallo zusammen, ich habe Tabellen, in der Kollegen Daten eintragen (jeder Kollege hat eine eigene Tabelle). Diese Daten importiere ich per Power Query in eine neue Tabelle. Nun möchte ich mit...
  4. Wenn gleiche Werte in einer Spalte, dann Inhalte aus Zeile in eine neue Spalte schreiben

    in Microsoft Excel Hilfe
    Wenn gleiche Werte in einer Spalte, dann Inhalte aus Zeile in eine neue Spalte schreiben: Hallo zusammen, ich möchte gerne die Spalte D automatisch generieren lassen basierend auf einer Übereinstimmung in der Spalte C. In Spalte D sollen dann die passenden Werte aus Spalte A...
  5. Zeile mit weniger Inhalt in andere Spalte kopieren

    in Microsoft Excel Hilfe
    Zeile mit weniger Inhalt in andere Spalte kopieren: [ATTACH] Hallo, vielleicht kann mir hier jemand weiter helfen. Ist es möglich von der Spalte A11 nur die Nummer (1000194) in die Spalte E9 zu kopieren? Vielen Dank im Vorraus :)
  6. Inhalte mehrer Spalten in zwei Spalten (untereinander)

    in Microsoft Excel Hilfe
    Inhalte mehrer Spalten in zwei Spalten (untereinander): Hallo, ich habe Daten, die wie in der Tabelle unten formatiert sind. Ich habe ein ähnliches Thema bereits im Forum gefunden: Einziger Unterschied ist, dass ich nicht nur eine Liste aller...
  7. Datenspalte in Tabelle ohne direkten inhaltlichen Bezug zu den restlichen Spalten

    in Microsoft Access Hilfe
    Datenspalte in Tabelle ohne direkten inhaltlichen Bezug zu den restlichen Spalten: Hallo, es gibt einen noch laufenden Thread: https://www.ms-office-forum.net/foru...d.php?t=370309 in welchem die Frage die ich hier separat stelle bereits eine 'Unterfrage' war, auf welche...
  8. Inhalte eine Spalte summieren, außer.....

    in Microsoft Excel Hilfe
    Inhalte eine Spalte summieren, außer.....: Hallo, ich habe folgendes Problem, ich möchte Zubehör für Produkte mengenmäßig summieren, es handelt sich um 6 verschiedene Produkte, 5 davon mit identischem Zubehör, bei dem 6ten ist eine kleine...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden