Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Uhrzeiten Filtern aber Kniffliger
#1
Moin zusammen,

ich bräuchte ein Makro mit dem ich mir die Schichtzeiten bzw. eher sind es Ausführungszeiten für Equipments... 
Mein Aktueller Code sieht so aus:

Code:
ActiveSheet.Range("$C$4:$C$28").AutoFilter Field:=1, Criteria1:=">=06:00", _
        Operator:=xlAnd, Criteria2:="<=14:30"

Im Normalfall würde das auch funktionieren, allerdings zickt er rum und ich denke es liegt daran, dass 2 Zeiten in der Spalte je Zelle angegeben sind...

Beispiel:

Spalte A                                   Spalte B
Wetterschutzhaus                    10:00 12:00

Wobei die 10:00 = Start der Leistung ist und 12:00 die endzeit... beides in einer Zelle... das ist ein Umstand den ich leider nicht ändern kann *lach*

Heißt das Makro müsste sich auf die zweite Zahl beziehen.

Ich denke das wird irgendwie mit der Links oder Rechts funktion klappen... nur habe ich die in VBA nie genutzt :s

Aufbau jeder zelle wäre 
X = Zahl
XX:XX[Leerzeichen]XX:XX

Hoffe hier kann mir jemand helfen :)

Bis dahin, 

liebe Grüße Seeqi
Antworten Top
#2
Hallo,
 
lege eine Hilfsspalte mit gesplitteten Zellinhalt dieser Zellen an und filtere dann in dieser Hilfsspalte.
 
Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Egon12 für diesen Beitrag:
  • Seeqi
Antworten Top
#3
vielen Dank :D

manchmal muss man nicht alles verkomplizieren...^^ ich werde es mal testen :)
Antworten Top
#4
Hi,

im Makro die Zellen splitten und dann filtern.
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#5
Hallo,

Edgars Vorschlag könnte dann so aussehen:

Code:
Sub FilterMakro()
  Dim rngD As Range
  Set rngD = Cells(4, Columns.Count).End(xlToLeft).Offset(0, 1)
  Range("$C$4:$C$28").TextToColumns Destination:=rngD, DataType:=xlDelimited, _
      TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, _
      Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo _
      :=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
  rngD.Resize(, 2).AutoFilter Field:=1, Criteria1:=">=06:00", Operator:=xlAnd, Criteria2:="<=14:30"
  rngD.Resize(, 2).AutoFilter Field:=2, Criteria1:=">=06:00", Operator:=xlAnd, Criteria2:="<=14:30"
End Sub

Gruß, Uwe
Antworten Top
#6
Hey,

alternativ gehts auch so: 

Code:
Sub FilterEquipmentTimes()
    Dim lastRow As Long
    Dim i As Long
    Dim timeRange As Range
   
    ' Set the range to filter
    Set timeRange = ActiveSheet.Range("C4:C28")
   
    ' Loop through each cell in the range
    lastRow = timeRange.Cells(timeRange.Rows.Count, "C").End(xlUp).Row
    For i = 4 To lastRow
        ' Split the time string into two parts
        Dim timeParts() As Variant
        timeParts = Split(timeRange.Cells(i, "C").Value, " ")
       
        ' Check if the start time is >= 06:00 and <= 14:30
        If TimeValue(Left(timeParts(1), Len(timeParts(1)) - 2)) >= TimeValue("06:00") And TimeValue(Left(timeParts(1), Len(timeParts(1)) - 2)) <= TimeValue("14:30") Then
            ' Filter the data
            ActiveSheet.Range("$C$4:$C$28").AutoFilter Field:=1, Criteria1:=">=06:00", _
                Operator:=xlAnd, Criteria2:="<=14:30"
        End If
    Next i
End Sub
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste