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

Forumthread: nur bestimmte spalten einblenden

nur bestimmte spalten einblenden
09.03.2009 08:51:17
Jan
hallo zusammen
ich habe folgendes problem:
ich habe die zellen a4 und a6, welche beide daten beinhalten, wobei a4 grösser als a6 ist
dann habe ich noch die spalten B : DQ, welche ebenfalls daten in aufsteingender form beinhalten in etwa so:
01.02.2008__03.2008__01.04.2008__01.05.2008__01.06.2008 bis 01.01.2018
jetzt möchte ich in diesem bereich nur die spalten einblenden, welche zwischen den daten a4 und a6 liegen oder gleich den daten a4 und a6 sind.
wäre froh, wenn mir jemand helfen könnte, da ich nicht so der vba-experte bin..
vielen dank und noch einen schönen morgen!
gruss jan
Anzeige

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: nur bestimmte spalten einblenden
09.03.2009 08:56:31
Jogy
Hi.
Schon mal den Autofilter angeschaut?
Gruss, Jogy
AW: nur bestimmte spalten einblenden
09.03.2009 09:00:08
Jan
Hi Jogy
Erstlmals vielen Dank für deine Antwort. Kann man den auch auf bestimmte Spalten beschränken? In meinem Fall wären dann diese die Spalten B bis DQ.
Meines Wissens aktualisiert sich der aber nicht, wenn man in A6 oder A4 das Datum ändern würde..
Anzeige
AW: nur bestimmte spalten einblenden
09.03.2009 09:07:51
Ramses
Hallo
REchte Maustaste auf den Tabellenreiter der Tabelle wo die Daten stehen
code anzeigen
Dort diesen code reinkopieren
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim i As Long
    Dim colStart As Long, colEnd As Long, datRow As Long
    MsgBox Target.Address
    If Target.Address(0, 0) = "A6" Or Target.Address(0, 0) = "A4" Then
        'In dieser Spalkte beginnen die Daten
        colStart = 2
        'In dieser Zeile stehen die Daten
        datRow = 1
        'automatisches Ende der Datenreihe ermitteln
        colEnd = Cells(datRow, Columns.Count).End(xlToLeft).Column
        Cells.EntireColumn.Hidden = False
        For i = colStart To colEnd
            If Cells(datRow, i) >= Range("A6") And Cells(datRow, i) <= Range("A4") Then
                Columns(i).Hidden = True
            End If
        Next i
    End If
End Sub

Gruss Rainer
Anzeige
AW: nur bestimmte spalten einblenden
09.03.2009 09:19:07
Jan
vielen dank für deine antwort..
reich es den code nur einzufügen und dananch wieder zurück zu Excel oder muss ich den noch irgendwie speziell ausführen? da momentan passiert noch gar nichts..
AW: nur bestimmte spalten einblenden
09.03.2009 09:23:56
Ramses
Hallo
LESEN !!!!!
Beginnen die Datumspalten wirklich in B ?
colStart = 2
Stehen die Daten wirlich in Zeile 1
datRow = 1
Nach deiner Frage steht das grössere Datum in A4 und das kleinere Datum in A6
Wenn das alles korrekt ist, funktioniert das
Gruss Rainer
Anzeige
AW: nur bestimmte spalten einblenden
09.03.2009 09:27:33
Jan
-kleineres Datum in A4 und grlsseres in A6
Datenspalten beginnen in B und Enden in DQ und stehen in Zeile 10
Entschuldigung dass ich diese Angaben vergessen habe und vielen Dank für deine Mühe..wie würde es jetzt aussehen?
AW: nur bestimmte spalten einblenden
09.03.2009 09:30:52
Ramses
Hallo
Ich bin kein Hellseher, aber was sagt dir der gesunde Menschenverstand wenn du das liest
'In dieser Zeile stehen die Daten
datRow = 1
?
Irgendeine Idee ?
Gruss Rainer
Anzeige
AW: nur bestimmte spalten einblenden
09.03.2009 09:33:20
Jan
ich muss auch 1 eine 10 machen..ist mir klar, habe ich auch gemacht..danach noch alles A4 durch A6 ersetzen und umgekehrt..
danach code beim gewünschten tabellenblatt einfügen und dann zurück zu Excel..passiert aber leider nichts...muss ich den code noch irgendwie ausführen oder sollte das dann automatisch passieren?
Anzeige
AW: nur bestimmte spalten einblenden
09.03.2009 09:36:10
Ramses
Hallo
Gib doch einfach mal ein Datum in eine der beiden Zellen ein
Gruss Rainer
AW: nur bestimmte spalten einblenden
09.03.2009 09:42:08
Jan
Hallo Ramses
Endlich funktioniert das ganze, jedoch blendet Excel genau das aus, was ich nicht ausgeblendet haben will und blendet das ein, was ich ausgeblendet haben will.. wie gesagt, es macht genau das umgekehrte...
Ich hoffe, das das nicht wieder mein Fehler ist, falls ja, möchte ich mir bei dir entscchuldigen. Ich wäre dir aber sehr dankbar, wenn du dieses Problem beheben könntest.
Gruss Jan
Anzeige
AW: nur bestimmte spalten einblenden
09.03.2009 09:48:47
Ramses
Hallo
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim i As Long
    Dim colStart As Long, colEnd As Long, datRow As Long
    If Target.Address(0, 0) = "A6" Or Target.Address(0, 0) = "A4" Then
        'In dieser Spalkte beginnen die Daten
        colStart = 2
        'In dieser Zeile stehen die Daten
        datRow = 10
        'automatisches Ende der Datenreihe ermitteln
        colEnd = Cells(datRow, Columns.Count).End(xlToLeft).Column
        Cells.EntireColumn.Hidden = False
        For i = colStart To colEnd
            If Cells(datRow, i) >= Range("A4") And Cells(datRow, i) <= Range("A6") Then
                Columns(i).Hidden = False
            Else
                Columns(i).Hidden = True
            End If
        Next i
    End If
End Sub

Damit sollte es gehen
Gruss Rainer
Anzeige
AW: nur bestimmte spalten einblenden
09.03.2009 09:56:37
Jan
bist sehr nahe dran, aber immer noch nicht ganz:
Excel blendet den gewünschten Bereich ein, jedoch blendet es nach rechts alle Spalten aus, welche grösser als das Datum in A6 ist und nicht nur die Spalten in dem gewünschten Bereich B bis DQ. In den folgenden Spalten ab DP stehen keine Daten mehr. Vielleicht hilft dir das weiter...
Anzeige
Vergessen....
09.03.2009 09:35:18
Ramses
Hallo
Deine erste Frage lautet:
"..ich habe die zellen a4 und a6, welche beide daten beinhalten, wobei a4 grösser als a6 ist ..
Deine Antwort nun
"...-kleineres Datum in A4 und grlsseres in A6..."
Was denn nun wirklich ?
Ungenaue Fragestellungen kosten undendlich Zeit und Nerven
Ändere die Zeile
If Cells(datRow, i) >= Range("A6") And Cells(datRow, i) in
If Cells(datRow, i) >= Range("A4") And Cells(datRow, i) Logik kann so einfach sein :-)
Gruss Rainer
Anzeige
AW: nur bestimmte spalten einblenden
09.03.2009 10:05:04
Jan
unglaublich aber wahr, habe es selbst hinbekommen..:)
habe aus colEnd = Cells(datRow, Columns.Count).End(xlToLeft).Column
colEnd=121 gemacht..
vielen dank für deine Hilfe Ramses! Am liebsten würde ich dir gleich was spendieren..:)
Schönen tag noch:)
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Bestimmte Spalten in Excel Einblenden


Schritt-für-Schritt-Anleitung

  1. Daten vorbereiten: Stelle sicher, dass deine Daten in den Zellen A4 und A6 korrekt eingegeben sind. Die Zelle A4 sollte das größere Datum enthalten, während A6 das kleinere Datum hat.

  2. VBA-Editor öffnen: Klicke mit der rechten Maustaste auf den Tabellenreiter der Tabelle, in der sich deine Daten befinden. Wähle "Code anzeigen".

  3. Code einfügen: Kopiere den folgenden Code in das Codefenster:

    Option Explicit
    
    Private Sub Worksheet_Change(ByVal Target As Range)
        Dim i As Long
        Dim colStart As Long, colEnd As Long, datRow As Long
    
        If Target.Address(0, 0) = "A6" Or Target.Address(0, 0) = "A4" Then
            colStart = 2 ' Daten beginnen in Spalte B
            datRow = 10 ' Daten stehen in Zeile 10
            colEnd = Cells(datRow, Columns.Count).End(xlToLeft).Column
    
            Cells.EntireColumn.Hidden = False
            For i = colStart To colEnd
                If Cells(datRow, i) >= Range("A4") And Cells(datRow, i) <= Range("A6") Then
                    Columns(i).Hidden = False
                Else
                    Columns(i).Hidden = True
                End If
            Next i
        End If
    End Sub
  4. Zurück zu Excel: Nachdem du den Code eingefügt hast, gehe zurück zu Excel und gebe ein Datum in die Zellen A4 oder A6 ein.

  5. Überprüfen: Überprüfe, ob die gewünschten Spalten entsprechend den eingegebenen Daten ein- oder ausgeblendet werden.


Häufige Fehler und Lösungen

  • Fehler bei der Spaltenausblendung: Wenn die Spalten nicht wie gewünscht ein- oder ausgeblendet werden, überprüfe, ob die Zeilen- und Spaltennummern im Code korrekt sind. Achte darauf, dass datRow auf die Zeile verweist, in der deine Daten stehen.

  • Code wird nicht ausgeführt: Stelle sicher, dass du tatsächlich ein Datum in A4 oder A6 eingegeben hast. Der Code wird nur aktiviert, wenn sich diese Zellen ändern.

  • Falsche Spalten werden ausgeblendet: Überprüfe die Logik im Code und stelle sicher, dass die Bedingungen für das Ein- und Ausblenden der Spalten korrekt sind.


Alternative Methoden

  • Autofilter verwenden: Du kannst den Autofilter aktivieren, um nur bestimmte Spalten anzuzeigen. Markiere den Bereich deiner Daten und gehe zu "Daten" > "Filter". Damit kannst du die Sichtbarkeit der Spalten basierend auf den eingegebenen Daten steuern.

  • Formeln verwenden: Eine andere Möglichkeit, um nur bestimmte Zeilen oder Zellen anzuzeigen, ist die Verwendung von Formeln, wie WENN oder FILTER, um nur die gewünschten Daten anzuzeigen.


Praktische Beispiele

  • Beispiel für das Einblenden von Spalten: Angenommen, du hast Daten in den Spalten B bis DQ und möchtest nur die Daten zwischen den in A4 und A6 angegebenen Datumswerten sehen. Der oben bereitgestellte VBA-Code ermöglicht genau diese Funktionalität.

  • Einzelne Zellen ausblenden: Wenn du nur bestimmte Zellen in einer Zeile ausblenden möchtest, kannst du die Eigenschaft Hidden für einzelne Zellen verwenden. Beispiel: Cells(10, 3).Hidden = True blendet die Zelle C10 aus.


Tipps für Profis

  • Verwendung von Benutzereingaben: Du kannst den Code anpassen, um Benutzereingaben über ein Eingabefeld zu akzeptieren, sodass die Benutzer flexibler arbeiten können.

  • Automatische Aktualisierung: Stelle sicher, dass dein Code die Spalten automatisch aktualisiert, wenn du Änderungen in den Datumszellen vornimmst.

  • Fehlerbehandlung: Implementiere eine Fehlerbehandlungsroutine, um sicherzustellen, dass der Code auch bei falschen Eingaben stabil bleibt.


FAQ: Häufige Fragen

1. Wie kann ich Excel dazu bringen, nur bestimmte Spalten anzuzeigen? Du kannst dies erreichen, indem du den oben beschriebenen VBA-Code verwendest, um die Sichtbarkeit der Spalten basierend auf den Werten in bestimmten Zellen zu steuern.

2. Was mache ich, wenn der Code nicht funktioniert? Überprüfe die Zellreferenzen im Code und stelle sicher, dass du die richtigen Daten in A4 und A6 eingegeben hast. Vergewissere dich auch, dass du den Code im richtigen Tabellenblatt eingefügt hast.

3. Kann ich auch bestimmte Zeilen einblenden? Ja, du kannst ähnliche Logik wie im obigen Beispiel verwenden, um die Sichtbarkeit von Zeilen zu steuern, indem du die Zeilenreferenzen anpasst.

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