Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1480to1484
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Horizontal Filtern
17.03.2016 10:38:36
Aleardo
Hallo zusammen
Ich habe ein Problem zum Horizontalen Filtern (ausblenden). Und zwar habe ich eine Mitarbeiterliste die über 12 Monate geht, wobei für jeden Mitarbeiter pro Monat eine eigene Spalte besteht, welche aus SAP exportiert ist. Die Reihenfolge der Spalten aus SAP sind nach Monaten geordnet, das heisst, es werden für jeden Mitarbeiter für jeden einzelnen Monat individuelle Spalten aufgeführt. Die Reihenfolge ist wie folgt: Mitarbeiter 1 (Jan); Mitarbeiter 2 (Jan); Mitarbeiter 2 (Jan), etc. Nun möchte ich aber gerne, dass ich alle horizontalen Spalten pro Mitarbeiter filtern (bzw. ausblenden), so dass ich dadurch eine Jahresübersicht über den Mitarbeiter erhalte: Mitarbeiter 1 (Jan); Mitarbeiter 1 (Feb); Mitarbeiter 1 (März); etc.
Die Filterfunktion sollte über das aus 3 Buchstaben bestehende Kürzel des Namens erfolgen (siehe Beispiel xls).
Herzlichen Dank für Eure Hilfe. Ich habe zur Veranschaulichung noch das xls angehängt. https://www.herber.de/bbs/user/104411.xlsx
Gruss,
Aleardo

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Horizontal Filtern
17.03.2016 11:02:20
Michael
Hallo!
Teste mal, in Deiner Beispiel-Datei:
Sub SpaltenNachMitarbeiterAusblenden()
Dim MaNameKurz As String
Dim Spalten As Range
Dim Zelle As Range
Application.ScreenUpdating = False
MaNameKurz = InputBox("MA-Kürzel eingeben", "MA-Jahresansicht")
Set Spalten = ActiveSheet.Range(Cells(1, 2), Cells(1, ActiveSheet.Columns.Count))
Spalten.EntireColumn.Hidden = True
For Each Zelle In Spalten
If InStr(1, Zelle.Text, MaNameKurz, vbTextCompare) > 0 Then
Zelle.EntireColumn.Hidden = False
End If
Next
Application.ScreenUpdating = True
End Sub
Code muss in ein allgemeines Modul. Alt + F11, im VBA-Editor Einfügen Modul, Code hineinkopieren, mit F5 teste.
LG
Michael

Anzeige
AW: Horizontal Filtern
17.03.2016 11:56:46
Aleardo
Hallo Michael
BINGO!! Herzlichen Dank. Genial.
Darf ich so frech sein, jetzt wo ich auf den Geschmack gekommen bin, dass es noch gleichzeitig die Spalte "A" filtert und nur die Projekte automatisch anzeigt, bei welchen beim gefilterten Mitarbeiter auf ein Eintrag vorhanden ist?
Das wäre die creme de al creme.
Herzlichen Dank aber nochmals für die grossartige Hilfe!
Gruss,
Aleardo

Schon ungeduldig? ;-)...
17.03.2016 14:30:45
Michael
Calma signore Aleardo!
Du musst nicht ungeduldig werden; manche Dinge sind nicht ganz trivial, und manche von uns haben zwischendurch auch noch was anderes zu tun! Freut mich, dass dir mein Makro hilft. Bzgl. Deiner weiteren Frage:
Das wird in Deiner derzeitigen Daten-/Tabellenkonstellation nicht funktionieren (zumindest fällt mir noch nichts schlaues dazu ein!). Erstens sind Deine gesamten Werte Texte und keine Zahlen, und auch in den leeren Wertfeldern sind Zeichen vorhanden (vermutlich Leerzeichen); somit sind das auch Texte.
Das ist deshalb problematisch, weil damit nicht gut rechnen ist - habe überlegt ob ich Dir über eine Hilfsspalte zähle, wieviele Einträge in der Zeile vorhanden sind, und dann darüber einen AutoFilter lege.
Leider - so wie's momentan in Deiner Bsp-Mappe ausschaut, sehe ich keine Möglichkeit. Wenn mir noch was einfällt, melde ich mich.
LG
Michael

Anzeige
Ha, so geht's...
17.03.2016 14:44:59
Michael
Ecco Signore Aleandro...
Hier doch noch eine Möglichkeit, hab's direkt in Deiner Bsp-Datei im Blatt Tabelle2 getestet, teste Du es bitte auch nochmal: https://www.herber.de/bbs/user/104420.xlsm
Wichtig war hier: Ich hab Deine Daten aus dem 1. Blatt ins 2. kopiert und dort dann alle Zellwerte mit sich selbst ersetzt, so entstehen echte Zahlenwerte und dann klappt mein Workaround.
Makros sind soweit drinnen - auch eines zum zurücksetzen der Ansicht.
Gib Bescheid!
LG
Michele

AW: Ha, so geht's...
18.03.2016 06:59:51
Aleardo
Ciao Michele
Grazie Mille.....für deine super Hilfe!!
Funktioniert einwandfrei.
Gruss,
Aleardo

Anzeige
AW: Ha, so geht's...
18.03.2016 07:04:03
Aleardo
....UND danke für die absolute Luxusvariante, dass du sogar das Makro für die Umwandlung der Daten beigefügt hast.....

Piacere! - Danke für die Rückmeldung, owT
18.03.2016 09:48:07
Michael

AW: Horizontal Filtern
17.03.2016 15:39:07
Daniel
Hi
hier ne Möglichkeit als Makro zum Ausblenden von Zeilen und Spalten (aber warum hast du VBA-Nein angegeben, wenn du ne VBA-Lösung willst?)
Sub ausblenden()
Dim MaNameKurz As String
Dim rngSpalte As Range
Dim rngZeile As Range
Dim Zelle As Range
Cells.EntireColumn.Hidden = False
Cells.EntireRow.Hidden = False
Set rngSpalte = Cells(1, 1)
Set rngZeile = Cells(1, 1)
MaNameKurz = InputBox("MA-Kürzel eingeben", "MA-Jahresansicht")
For Each Zelle In Range(Cells(1, 2), Cells(1, 1).End(xlToRight))
If Zelle.Value Like "*" & MaNameKurz & "*" Then
Set rngSpalte = Union(rngSpalte, Zelle)
Set rngZeile = Union(rngZeile, Zelle.EntireColumn.SpecialCells(xlCellTypeConstants). _
EntireRow)
End If
Next
With ActiveSheet.UsedRange.Offset(1, 1)
.EntireColumn.Hidden = True
.EntireRow.Hidden = True
End With
rngSpalte.EntireColumn.Hidden = False
rngZeile.EntireRow.Hidden = False
End Sub
Gruß Daniel

Anzeige
AW: Horizontal Filtern
17.03.2016 11:04:00
Daniel
Hi
ein Filtern für Spalten gibt es in Excel nicht.
wenn du nur die Spalten eines Mitarbeiters sehen und die anderen ausblenden willst, gehe so vor:
1. füge eine über der Überschriftenzeile eine weiter Zeile ein (Zeile 1)
2. in diese Hilfszeile kommt ab Zelle B1 bis zum Tabellenende folgende Formel:
=WENN(ISTZAHL(SUCHEN($A$1;B2));"";FALSCH)
3. in die Zelle A1 kommt das Kürzel des gesuchten Mitarbeiters
jetzt steht in der Hilfszeile in den Spalten beim gesuchten Mitarbeiter der Text "" und bei den anderen Mitarbeitern der Wahrheitswert FALSCH.
4. markiere die Zeile 1 und schränke die Selektion auf die Wahrheitswerte ein, klicke hierzu:
START - BEARBEITEN - SUCHEN UND AUSWÄHLEN - INHALTE - FORMELN - WAHRHEITSWERTE
5. klicke jetzt den Menüpunkt
START - ZELLEN - FORMAT - SICHTBARKEIT - AUSBLENDEN & EINBLENDEN - SPALTEN AUSBLENDEN
eine andere Variante wäre, dass du die Tabelle nach den Namenskürzeln sortierst, so dass gleiche Namen direkt nebeneinander stehen.
auch hierzu fügst du in der Zeile 1 eine Hilfsszeile mit dieser formel ein , um das Namenskürzel zu extrahieren: =Teil(B2;8;99)
dann sortierst du die Liste nach der Zeile 1, um so zu sortieren, klicke im "Sortieren"-Dialog auf "Optionen" und lege fest, dass du Spalten sortieren willst.
die dritte Variante wäre, dass du die Tabelle transponierst (dh Zeilen und Spalten tauschst) um dann mit dem normalen Excel-Zeilenfilter arbeiten zu können.
hierzu kopierst du die Tabelle und fügst sie auf einem neuen Blatt mit der Option "Transponieren" ein.
diese Option wird dir im Kontextmenü zum einfügen als 4. Option angeboten.
Gruß Daniel

Anzeige
AW: Horizontal Filtern
17.03.2016 14:08:16
Aleardo
Hallo
Das Makro von Michael hat mir geholfen. Danke! Wie könnte das Makro ergänzt werden, dass es zum einen die Mitarbeiter filtert und zum anderen nur die Projekte in Spalte A anzeigt, für die ein Wert in den Folgespalten besteht?
Sub SpaltenNachMitarbeiterAusblenden()
Dim MaNameKurz As String
Dim Spalten As Range
Dim Zelle As Range
Application.ScreenUpdating = False
MaNameKurz = InputBox("MA-Kürzel eingeben", "MA-Jahresansicht")
Set Spalten = ActiveSheet.Range(Cells(1, 2), Cells(1, ActiveSheet.Columns.Count))
Spalten.EntireColumn.Hidden = True
For Each Zelle In Spalten
If InStr(1, Zelle.Text, MaNameKurz, vbTextCompare) > 0 Then
Zelle.EntireColumn.Hidden = False
End If
Next
Application.ScreenUpdating = True
End Sub
Gruss,
Aleardo
Anzeige

51 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige