Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1056to1060
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

Wenn-Formel in Makro packen

Wenn-Formel in Makro packen
09.03.2009 20:03:24
Elmar
Hallo zusammen,
ich bräuchte mal Hilfe...
Ich habe eine Tabelle, die in der Spalte "T" Uhrzeiten angibt (ca. 10000 Datensätze je Datei mit verschiedensten Uhrzeiten) und in Spalte "U" hole ich mir mit "=WOCHENTAG(S2;2)" den Tag (Montag bis Sonntag). Nun suche ich nach einem Makro, dass mir die Tabelle so durchsucht, dass immer wenn die Tagein Spalte "U" Montag bis Freitag (1 bis 5) sind, alle Uhrzeiten zwischen 00:00 Uhr und 14:00 Uhr gelöscht werden. Wenn der Tag = Samstag oder Sonntag ist, dann sollen alle Datensätze mit den Uhrzeiten 00:00 Uhr bis 11:00 Uhr gelöscht werden.
Übrig sollen also nur noch Datensätze bleiben für Mo - FR von 14:01 Uhr bis 23.59 Uhr und Sa und So von 11:01 Uhr bis 23:59 Uhr.
Kann mir jemand helfen?
Mein Problem ist auch noch, dass die ganze Tabelle noch im Format "Text" ist.
Danke schon mal
Grüße
Elmar

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wenn-Formel in Makro packen
09.03.2009 21:39:34
UweD
Hallo
hab mal was gebastelt:
 
 STU
1DatumZeitTag
210.03.200916:322
311.03.200917:323
412.03.200918:324
513.03.200919:325
614.03.200920:326
715.03.200921:327
816.03.200922:321
917.03.200923:322
1029.03.200911:327
1111.03.200914:323
1212.03.200915:324
1313.03.200916:325
1414.03.200917:326
1515.03.200918:327
1616.03.200919:321
1717.03.200920:322
1818.03.200921:323
1919.03.200922:324
2020.03.200923:325
Formeln der Tabelle
U2 : =WOCHENTAG(S2;2)
 



Option Explicit
Sub Raus()
    On Error GoTo Fehler
    Dim TB1, i%, LR&
    Set TB1 = ActiveSheet
    LR = TB1.Cells(Rows.Count, 20).End(xlUp).Row 'letzte Zeile der Spalte
    Application.ScreenUpdating = False
    For i = LR To 2 Step -1
        If (TB1.Cells(i, 21) < 6 And CDate(TB1.Cells(i, 20)) < "14:00:00"Or _
           (TB1.Cells(i, 21) >= 6 And CDate(TB1.Cells(i, 20)) < "11:00:00"Then
                Rows(i).Delete Shift:=xlUp
        End If
    Next
    Err.Clear
Fehler:
    If Err.Number <> 0 Then MsgBox "Fehler: " & Err.Number & vbLf & Err.Description: Err.Clear
    Application.EnableEvents = True
    Application.DisplayAlerts = True
End Sub


Gruß UweD
Anzeige
AW: Wenn-Formel in Makro packen
09.03.2009 21:58:05
UweD
Hallo
Die Grenzen noch durch &lt= mit einbeziehen.
Du kannst auch die Formel in Spalte T weglassen und hier mit abfragen:


Option Explicit
Sub Raus()
    On Error GoTo Fehler
    Dim TB1, i%, LR&, TTag%, Zeit As Date
    Set TB1 = ActiveSheet
    LR = TB1.Cells(Rows.Count, 20).End(xlUp).Row 'letzte Zeile der Spalte
    Application.ScreenUpdating = False
    For i = LR To 2 Step -1
        TTag = Weekday(TB1.Cells(i, 19), vbMonday)
        Zeit = TB1.Cells(i, 20)
        If (TTag <= 5 And Zeit <= "14:00:00"Or _
           (TTag >= 6 And Zeit <= "11:00:00"Then
                Rows(i).Delete Shift:=xlUp
        End If
    Next
    Err.Clear
Fehler:
    If Err.Number <> 0 Then MsgBox "Fehler: " & Err.Number & vbLf & Err.Description: Err.Clear
    Application.EnableEvents = True
    Application.DisplayAlerts = True
End Sub


Gruß UweD
Anzeige
AW: Wenn-Formel in Makro packen
09.03.2009 22:10:39
Elmar
Hallo Uwe,
das läuft ja prima..... Bei 15000 Datensätzen braucht es zwar eine ganze Zeit, aber das stört nicht. Eine große Erleichterung....DANKE
Grüße vom Bodensee
Elmar

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige