Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1600to1604
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
Inhaltsverzeichnis

Auswertung aus Datenbank filtern

Auswertung aus Datenbank filtern
04.01.2018 15:17:52
Pat
Hallo liebes Forum,
Mir fehlt bei folgendem Problem ein Ansatz:
Aus einer fortlaufenden Excel (Datenbank)Tabelle möchte ich bestimmte Spalten für eine Auswertung „Stundenabrechnung“ filtern.
Am Anfang soll in einem DropDown-Menu der Name ausgewählt werden nachdem in der Datenbank gesucht werden soll.
Dann soll in 2 Zellen eingetragen werden in welchem Zeitraum (z.B. vom 01.01.2018 bis 31.01.2018) die Datensätze begrenzt werden.
Wie sollte man so ein Problem lösen? Irgendwie mit Pivot Tabellen? Makros/VBA?
Habe mal eine Beispieldatei erstellt.
https://www.herber.de/bbs/user/118672.xlsx
Vielen Dank im Voraus!

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Auswertung aus Datenbank filtern
04.01.2018 16:23:47
UweD
Hallo
wenn der Spaltenaufbau der beiden Tabellen gleich wäre...
dann so
- Rechtsclick auf den Tabellenblattreiter von "Tabelle Filtern NameDatum"
- Code anzeigen
- Makro dort einfügen
Private Sub Worksheet_Change(ByVal Target As Range) On Error GoTo Fehler Dim TB1, TB2, LR1 As Double, LR2 As Double, EZ As Integer Dim NName As String, Von As Double, Bis As Double, Anz As Double Set TB1 = Sheets("Datenbank") Set TB2 = Sheets("Tabelle Filtern NameDatum") EZ = 5 'ab Zeile If Not Intersect(Range("C1", "F1:F2"), Target) Is Nothing Then NName = TB2.Range("C1") Von = CDbl(TB2.Range("F1")) Bis = CDbl(TB2.Range("F2")) If NName <> "" And Von > 0 And Bis > 0 Then If TB1.AutoFilterMode Then TB1.AutoFilterMode = False ' Autofilter ausschalten LR1 = TB1.Cells(TB1.Rows.Count, 1).End(xlUp).Row 'letzte Zeile der Spalte LR2 = WorksheetFunction.Max(TB2.Cells(TB2.Rows.Count, 1).End(xlUp).Row, EZ) 'Reset Application.EnableEvents = False TB2.Range(TB2.Rows(EZ), TB2.Rows(LR2)).ClearContents With TB1.Range("$A$1:$W$" & LR1) 'Prüfen, ob Werte für diese Kriterien vorliegen Anz = WorksheetFunction.CountIfs(TB1.Columns(1), NName, _ TB1.Columns(2), ">=" & Von, _ TB1.Columns(2), "<=" & Bis) If Anz > 0 Then .AutoFilter Field:=1, Criteria1:=NName .AutoFilter Field:=2, Criteria1:=">=" & Von, Operator:=xlAnd, _ Criteria2:="<=" & Bis 'gefilterte Zeilen kopieren .Offset(1).Copy Destination:=TB2.Cells(EZ, 1) Else MsgBox "Keine Daten vorhanden" End If TB1.AutoFilterMode = False End With End If End If '*** Fehlerbehandlung Err.Clear Fehler: Application.EnableEvents = True If Err.Number <> 0 Then MsgBox "Fehler: " & _ Err.Number & vbLf & Err.Description: Err.Clear End Sub
LG UweD
Anzeige
AW: Auswertung aus Datenbank filtern
04.01.2018 16:50:42
Pat
wow super!
jetzt kann ich ja die nicht gewollten Spalten einfach ausblenden, oder?
Vielen Dank Uwe. Bisher 3 Fragen hier gehabt und jedes Mal bist du zur Stelle! Wirklich klasse!
gern geschehen mwT
04.01.2018 17:06:57
UweD
Hallo nochmal
Ja, kannst du sogar vorher 1x machen
- verschiebe die Datumeingaben in C2:C3
- Kopiere die Kopfzeile aus der Datenbank
- Blende alle nicht benötigten Spalten aus
Beim kopieren bleiben Diese dann auch ausgeblendet
LG UweD
AW: gern geschehen mwT
08.01.2018 12:27:58
Pat
Noch eine kurze Frage:
Da ich entschlossen habe die „Tabelle Filtern NameDatum“ in eine eigene Excel-Datei zu verwandeln möchte ich nun die Tabelle „Datenbank“ extern auslesen. Leider bekomme ich die Verlinkung nicht hin. Kann man die geschlossene Datei auslesen? Oder muss es auf diese Weise gehen?:
...
Workbooks.Open "H:\xx\xx\xx\Daten.xlsm"
Set TB1 = Workbooks("Daten.xlsx").Sheets("Datenbank")
Set TB2 = Sheets("Tabelle Filtern NameDatum")
...
Anzeige
AW: Auswertung aus Datenbank filtern
04.01.2018 16:34:41
fcs
Hallo Pat,
ich würde es als Pivottabellenbericht (alle gewünschten Spalten im Zeilenbereich anordnen) lösen.
Allerdings die Filterwerte für Name und Datum direkt in den DropDowns des Pivotberichtes auswähle, nicht in separaten Zellen.
Userbild
Tabelle Filtern NameDatumFormeln der Tabelle
ZelleFormel
C1=A5
F1=MIN(B:B)
F2=MAX(B:B)

Datengültigkeit der Tabelle
ZelleZulassenDatenEingabe 1Eingabe 2
C1Liste =name1 


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Wenn du die Filterwerte in separaten Zellen eingeben/auswählen willst, dann benötigst du Makros, um die Filter im Pivotbericht zu setzen.
Eine weitere Möglichkeit wäre der erweiterte Filter.
Da hab ich aber fast immer Schwierigkeiten, die gefilterten Daten auf einem separaten Blatt darzustellen.
Gruß
Franz
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige