Thema Datum  Von Nutzer Rating
Antwort
Rot Zeilen löschen die eine Bedingung erfüllen
10.08.2020 10:40:18 Vivien
NotSolved
10.08.2020 15:09:09 Gast64398
NotSolved
14.08.2020 08:52:43 Vivien
NotSolved
14.08.2020 09:18:44 Gast70886
NotSolved
14.08.2020 09:48:30 Vivien
NotSolved
14.08.2020 10:42:06 Gast98412
NotSolved
18.08.2020 16:32:36 Werner
NotSolved

Ansicht des Beitrags:
Von:
Vivien
Datum:
10.08.2020 10:40:18
Views:
1147
Rating: Antwort:
  Ja
Thema:
Zeilen löschen die eine Bedingung erfüllen

Hallo und Guten  Morgen!

Ich versuche im Augenblick Makros für das Auslesen, über- und weiterverarbeiten von Messdaten für mein Büro zu schreiben (da sich die Daten über mehr als 16.000 Zeilen zu je 6 Spalten erstrecken soll dieses soweit wie möglich automatisiert werden). Nur kurz zur Info was ich über VBA weiß habe ich mir selbst beigebracht.

Nun zu meinem Problem:

Das Makro soll alle Datensätze die außerhalb des Messzeitraums liegen löschen (als komplette Zeilen). Als Grundlage wird dafür das Datum verwendet => die Bedingung ist also größer als und kleiner als das eingegebene Datum => deren Zeilennummer. Neben dem Datum wird auch die Uhrzeit der Messung erfasst, deswegen habe ich es erst mit der Find-Funktion probiert, da ich hier aber die Suchroutine für das Ende des Messzeitraums noch ergänzen müsste damit er nicht vom 1. Ergebnis aus geht sondern das vom letzten, habe ich überlegt ob die Match-Funktion eine besser Lösung wäre. Das Makro besteht im Prinzip aus 2 For-Schleifen die solange wiederholt werden sollen bis die Bedingung nicht mehr eingehalten ist (der 2. Teil ist noch unfertig, ich wollte die erste Schleife fertigstellen und diese dann kopieren / anpassen). Die Spalte mit den Messzeitpunkten ist als Datum mit Uhrzeit formatiert und befindt sich in Spalte F => 6, dennoch steigt das Programm jedesmal bei der Set-Funktion aus.

Zu den Fehlern: Versuche ich den Code mit der Match-Funktion durchlaufen zu lassen bringt er mir "Laufzeitfehler 424 - Objekt erforderlich"

Versuche ich es mit Find wird Found auf "Nothing" gesetzt (weiß ich durch den Überwachungsmonitor) und er steigt logischerweise bei If aus "Laufzeitfehler 91 - Objektvariable oder With-Blockvariable nicht festgelegt". Nur verstehe ich nicht warum! Die Datei in der ich das Makro schreibe basiert auf einer Original-Auslese-Datei (schon bis zu diesem Punkt überarbeitet) dementsprechend habe ich bei meinen Probeläufen ein Datum gewählt das innerhalb des Datenbereichs liegt.

Sub Filtern2()
'
' Filtern2 Makro
'

'
    Dim Zeile As Variant
    Dim Ende As Variant
    Dim tofind As Variant
    Dim found As Variant
    Dim Zeile2 As Variant
    Dim tofind2 As Variant
    Dim found2 As Variant
    
    Application.ScreenUpdating = False
    
    Ende = Cells.SpecialCells(xlCellTypeLastCell).Row
    tofind2 = InputBox(prompt:="Bitte Anfangsdatum des Messzeitraums eingeben! Datenformat: dd-mm-yy", Title:="Datum")
        If tofind2 = "" Then Exit Sub
    tofind = InputBox(prompt:="Bitte Enddatum des Messzeitraums eingeben! Datenformat: dd-mm-yy", Title:="Datum")
        If tofind = "" Then Exit Sub
    For Zeile = Ende To found Step -1
        Set found = Application.Match(tofind.Value, ActiveSheet.Columns(6), -1)
'        Set found = ActiveSheet.Columns(6).Find(what:=tofind, LookIn:=xlValues, Lookat:=xlWhole)
'        If found Is Nothing Then Exit For
            If Cells(Zeile, 6) > found Then Rows(Zeile).EntireRow.Delete Shift:=xlUp
    Next Zeile
    
    found2 = Columns(6).Find(what:=tofind2, LookIn:=xlValues, Lookat:=xlWhole).Row
    For Zeile2 = found2 To 13 Step -1
        If found2 > Rows(Zeile2) Then Rows(Zeile2).Delete
    Next Zeile2
    
    Application.ScreenUpdating = True
    
End Sub

Ich weiß nicht mehr weiter, ich habe den Code auf Fehler durchgesehen aber nichts gefunden, ich habe versucht ihn umzuschreiben ohne Erfolg. Weiß jemand von euch vielleicht eine Lösung.


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Zeilen löschen die eine Bedingung erfüllen
10.08.2020 10:40:18 Vivien
NotSolved
10.08.2020 15:09:09 Gast64398
NotSolved
14.08.2020 08:52:43 Vivien
NotSolved
14.08.2020 09:18:44 Gast70886
NotSolved
14.08.2020 09:48:30 Vivien
NotSolved
14.08.2020 10:42:06 Gast98412
NotSolved
18.08.2020 16:32:36 Werner
NotSolved