Der erste Versuch, Hilfe zu bekommen ist leider ein wenig misslungen. Ich versuche es noch einmal:
Ich habe eine Liste mit Projekten. Diese bestehen aus
einer laufenden Nummer
Projektname
Arbeitsbereich
Auftraggeber
Zeitsumme aller geleisteten Arbeitsstunden
und dem Projektstatus.
Ich möchte diese Liste filtern, und zwar soll die Möglichkeit bestehen, z.b. alle Projekte anzuzeigen, deren Zeitsumme über 100 Stunden liegt.
Ich habe bereits die Zeit in Dezimalzahlen konvertiert und erwartet, dass Excel es nun mit der Autofilterfunktion schafft, die entsprechenden Fälle anzuzeigen.
Bei der Projektnummer funktioniert es wunderbar, aber bei der Zeit verzweifle ich gerade.
dies ist der Code für die Filterfunktion:
Private Sub CB_Filtern_Click()
Dim c As Range
Dim SpalteS As String
Dim SpalteI As Integer
Dim Bereich As String 'um den Suchbereich zu definieren
Dim Operator As String '(=)
Dim Kriterium As Variant
Dim Kategorie As String
Dim last As Integer
If ActiveSheet.FilterMode Then
ActiveSheet.ShowAllData
End If
Kategorie = ComboBox_Filtern.Text
If Kategorie = "Projektnummer" Then
SpalteS = "C"
SpalteI = 1
Kriterium = CLng(ComboBox_Attr.value)
ElseIf Kategorie = "Projektbezeichnung" Then
SpalteS = "D"
SpalteI = 2
Kriterium = CStr(ComboBox_Attr.value)
ElseIf Kategorie = "Arbeitsbereich" Then
SpalteS = "E"
SpalteI = 3
Kriterium = ComboBox_Attr.value
ElseIf Kategorie = "Auftraggeber" Then
SpalteS = "F"
SpalteI = 4
Kriterium = ComboBox_Attr.value
ElseIf Kategorie = "Zeitsumme" Then
SpalteS = "G"
SpalteI = 5
Kriterium = CDbl(ComboBox_Attr.value * 60 / 1440)
ElseIf Kategorie = "Status" Then
SpalteS = "H"
SpalteI = 6
Kriterium = ComboBox_Attr.value
Else: Exit Sub
End If
last = newLast("Projekte", SpalteI)
Bereich = SpalteS & "8:" & SpalteS & last
Operator = ComboBox_Operator.Text
For Each c In ActiveSheet.Range(Bereich)
Select Case Operator
Case "=": If c.value = Kriterium Then c.AutoFilter SpalteI, Kriterium
Case "": If c.value > Kriterium Then c.AutoFilter SpalteI, Criteria1:=">" & Kriterium
Case ">=": If c.value >= Kriterium Then c.AutoFilter SpalteI, Criteria1:=">=" & Kriterium
Case "
die einzelnen Komponenten (csv, UserForm und Modul) sind unter diesem Link zu finden:https://www.herber.de/bbs/user/149341.zip
Eine abgespeckte Version der Tabelle ist hier (leider ist die Datei so groß, dass ich sie nicht anders zur Verfügung stellen kann. Ich weiß leider nicht, wie ich die Datei kleiner bekomme):
https://file.myrzcloud.de/MyDevice/s/598/5c3cff19-0639-44a7-b0ec-458634343ab4
ein Screenshot des betreffenden Tabellenblattes zur Veranschaulichung:
https://www.herber.de/bbs/user/149269.jpg
Vielen Dank für eure Hilfe