Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Filter über mehrere Spalten mit Eingabe





Frage

Hallo, hallöchen, ich habe eine Tabelle mit Namen und Besuchsdaten. Hinter jedem Namen gibt es mehrere Felder, Datum1 und KW1, Datum2 und KW2 usw. Nach Eingabe des Datums wird die Kalenderwoche angezeigt mit =KALENDERWOCHE(DATUM). Nun will ich über einen Button die Abfrage starten, welcher Kunde wurde in der Kalenderwoche XX besucht. Also Klick, dann Eingabe der Kalenderwoche und dann sollen in allen Spalten mit KW1, KW2...=Eingabe die Kundennamen angezeigt werden. Eigentlich wie beim Autofilter nur eben über mehrere Zeilen, ich pack es leider nicht. Schönen Gruß vom Markus

Antwort 1 von Coolpix

hallo Markus,

Davon ausgehend daß Spalte:

A=Name
B=Datum
C=Kalenderwoche

enthalten, kannst du folgendes probieren.


Sub Filter()
Dim SuchWert As String
SuchWert = InputBox("Kalenderwoche ?")
    Selection.AutoFilter Field:=3, Criteria1:=SuchWert
End Sub


Field:=3 heißt der Suchbegriff befindet sich in Spalte 3 der Matrix.


Greetings ;-)

Antwort 2 von DerNordBerliner

Hallöchen,

das ist schon klar, doch ich habe auch in Feld 5 und in Feld 7 und in Feld 9 u.s.w eine Kalenderwoche zu stehen und diese sollen ja auch mit angezeigt werden.

Bis dann denn.

Der Markus

Antwort 3 von nighty

hi alle :)

spaltenfilter mit einer noch ungluecklichen combobox

vielleicht weiss ja einer wie sich die combobox
korrekt befuellen liesse

gruss nighty

Option Explicit
Private Sub ComboBox1_Change()
Application.EnableEvents = False
Dim LastCell, spaltende, zaehler0, zaehler1, zaehler2
Dim altvalue$, menuezufuegen$
Rem ermittlung der letzten spalte
Set LastCell = ActiveSheet.Cells.SpecialCells(xlLastCell)
spaltende = LastCell.Column
zaehler0 = LastCell.Column
Do While Application.CountA(Columns(zaehler0)) = 0 And zaehler0 <> 1
zaehler0 = zaehler0 - 1
Loop
spaltende = zaehler0
Rem comboboxauswahl festhalten
altvalue$ = ComboBox1.Value
Rem combobox loeschen
ComboBox1.Clear
Rem ComboBox fuellen erst eintrag alle dann die erste zeile
ComboBox1.AddItem "Alle"
For zaehler2 = 1 To spaltende
menuezufuegen$ = Cells(1, zaehler2)
ComboBox1.AddItem menuezufuegen$
menuezufuegen$ = ""
Next zaehler2
Rem aus und einblenden der spalten
For zaehler1 = 1 To spaltende
If altvalue$ = Cells(1, zaehler1) Then
Cells(1, zaehler1).EntireColumn.Hidden = False
Else
Cells(1, zaehler1).EntireColumn.Hidden = True
End If
Next zaehler1
Rem alle spalten einblenden
If altvalue$ = "Alle" Then
Columns("A:IV").EntireColumn.Hidden = False
End If
Application.EnableEvents = True
End Sub

Antwort 4 von want2cu

Hallo Markus,

ich habe da einen ganz anderen LÖsungsansatz: die bedingte Formatierung.

=A2=$D$1

In Zelle D1 wird die jeweils anzuzeigende Kalnederwoche einfach als Zahl eingetragen. Die o.g. Formel trägst du als bedingte Formatierung (Formel ist) ein und kopierst sie dann mit dem Formatpinsel auf alle in Betracht kommenden Zellen.
Wird der Wert in D1 verändert, so werden automatisch die entsprechenden Kalenderwochen angezeigt.
Wichtig: Beachte die relative und die absolute Adressierung in der Formel, damit du Kopieren kannst!

CU
want2cu

Antwort 5 von coros

Hi NordBerliner,

ich schicke Dir mal eine Beispieldatei, die ich schon mal zwei Wochen einem anderen Fragesteller geschickt habe. Dabei solltest Du das Blatt "Eingabe Daten und Suchenfunkt." beachten. Dort sind 3 Varianten vorhanden. Zwei mit einer UserForm, eine mit zwei Inputboxen, die aber erweitert werden kann.

MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 6 von want2cu

Hallo Markus,

wie sieht es denn aus? Hat dich eine der angebotenen Lösungsvorschläge weitergebracht?

Ein Feedback wäre nett ;-)

CU
want2cu

Antwort 7 von DerNordBerliner

Hallo ihr Lieben,
naja, das eine oder andere habe ich schon wieder dazugelernt. Doch die richtige Lösung ist leider nicht dabei.
Ich habe mir jedenfalls jetzt Access vorgenommen, da ist noch einiges mehr möglich. Es geht im Excel eben nicht, das mehrere Spalten mit einer einzigen Filterfunktion versehen werden können.
Vielen Dank allen Helfern.

Der Markus

Antwort 8 von Aliba

Hi "Der Markus",

das ist schon auch mit Excel möglich,

nehmen wir mal an, in Tabelle1 Spalte A, Zeile1 steht die Überschrift "Namen", in B1 steht dann Datum1, C1 KW1 D1 Datum2 E1 Kw2 usw...

Das hört ja dann irgendwo auf, nehmen wir mal an in der Spalte X.

So, dann könnten wir in in Y1 einen Wert für die KW eingeben, z.B. 15, also alle Kunden, die in KW 15 besucht wurden.
Nun kommt die Hilfsspalte in Spalte Z. In Z2 die Formel:

=WENN(A2="";"";WENN(ISTNV(VERGLEICH($Y$1;B2:X2;0));"";MAX($Y$1:Y1)+1))

Diese FOrmel soweit benötigt nach unten ziehen.

Wir wechseln auf Tabellenblatt 2.

In A1 die Formel:
=WENN(MAX(Tabelle1!Y:Y)>ZEILE(A1);"";INDEX(Tabelle1!A:A;VERGLEICH(ZEILE(A1);Tabelle1!Y:Y;0);1))

Diese FOrmel soweit DU willst nach unten kopieren, du hast eine Auflistung aller Kunden, die in der KW aus Zelle Y1 besucht wurden.

Ich hoffe, die Formeln passen so, sind ungeprüft, da ich zu faul war, eine Beispieldatei zu basteln.

CU Aliba

Antwort 9 von Aliba

Hi, nochmal ich ,

und dafür brauch man nicht mal nen Button

CU ALiba

Antwort 10 von nighty

hi alle :)

hier noch schnell ein funktionierender spaltenfilter mit ROSA rotem BUTTON :))

bezieht sich auf die erste zeile(ueberschriften)

gruss nighty

Sub makro01()
Application.EnableEvents = False
Dim LastCell, spaltende, zaehler0, zaehler1, wert01
If Range("A1:IV1").EntireColumn.Hidden = True Then
Range("A1:IV1").EntireColumn.Hidden = False
End
End If
Range("A1:IV1").EntireColumn.Hidden = False
wert01 = InputBox("KalenderWoche Eingeben")
If wert01 = "" Then End
Set LastCell = ActiveSheet.Cells.SpecialCells(xlLastCell)
spaltende = LastCell.Column
zaehler0 = LastCell.Column
Do While Application.CountA(Columns(zaehler0)) = 0 And zaehler0 <> 1
zaehler0 = zaehler0 - 1
Loop
spaltende = zaehler0
For zaehler1 = 1 To spaltende
If wert01 = Cells(1, zaehler1) Then
Cells(1, zaehler1).EntireColumn.Hidden = False
Else
Cells(1, zaehler1).EntireColumn.Hidden = True
End If
Next zaehler1
Application.EnableEvents = True
End Sub


Antwort 11 von nighty

hi alle :)

selbtverstaendlich in wechselwirkung :))

gruss nighty


Antwort 12 von nighty

hi alle :)

nadann wenn schon denn schon :)

spaltenfilter in wechselwirkung auf die gesamte tabelle bezogen,es erfolgt eine automatische abtastung des spaltenendes wie des zeilenendes.

gruss nighty

 Option Explicit
Sub makro01()
Application.EnableEvents = False
Dim LastCell
Dim spaltende, zeilende
Dim zaehler1, zaehler2, zaehler3, wert01
If Range("A1:IV1").EntireColumn.Hidden = True Then
Range("A1:IV1").EntireColumn.Hidden = False
End
End If
Range("A1:IV1").EntireColumn.Hidden = False
wert01 = InputBox("KalenderWoche Eingeben")
If wert01 = "" Then End
Set LastCell = ActiveSheet.Cells.SpecialCells(xlLastCell)
spaltende = LastCell.Column
zeilende = LastCell.Row
For zaehler1 = 1 To spaltende
For zaehler2 = 1 To zeilende
If Cells(zaehler2, zaehler1) = wert01 Then
zaehler3 = 1
zaehler2 = zeilende
End If
Next zaehler2
If zaehler3 = 0 Then
Cells(1, zaehler1).EntireColumn.Hidden = True
End If
zaehler3 = 0
Next zaehler1
Application.EnableEvents = True
End Sub


Antwort 13 von DerNordBerliner

Hallöchen,

viele gute Hilfe, doch irgend wie bin ich zu blöd.
Ich habe es mit meiner Tabelle versucht, Werte entsprechend angepasst und dann habe ich eine neue Tabelle gemacht mit Werten aus euren Beispielen.
Ich will nicht mehr.
Vielen lieben Dank euch allen.
Leider habe ich jetzt aber das gleiche Problem im Access, nunja, es lebe die gut alte Karteikarte.

Gruß vom Markus

Antwort 14 von Aliba

Hi Markus,

hättest Du Dich mal früher gemeldet. Leider musste ich feststellen, daß ich bei meinen Formeln einen falschen Spaltenbezug eingetragen habe. Eigentlich sollten sie so aussehen:


=WENN(A2="";"";WENN(ISTNV(VERGLEICH($Y$1;B2:X2;0));"";MAX($Z$1:Z1)+1))

=WENN(MAX(Tabelle1!Z:Z)>ZEILE(A1);"";INDEX(Tabelle1!A:A;VERGLEICH(ZEILE(A1);Tabelle1!Z:Z;0);1))

So solle es eigentlich funzen.


CU Aliba


Antwort 15 von want2cu

Hallo Excelianer,

wieder mal ein sehr schönes Beispiel für "geht nicht - gibt´s nicht!"
Man sollte eben nicht zu früh das Handtuch werfen.
Ein dickes Lob für ALIBA!!!

An dieser Stelle nochmal ein wenig "Schleichwerbung" für das Buch "Excel - geheime Tricks", erschienen bei Markt&Technik , 14,95 €, ISBN 3-8272-6781-1.

Es handelt sich um den Fortsetzungstitel des schon seit Jahren vergriffenen Excel-Highlights "Excel 97 Supertricks".

Das Buch sollte man sich als Excel-Anwender einfach gönnen ;-)))

CU
want2cu

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: