Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Zeilen löschen die Wert einer festen Zelle enthalten (Datum)
zurück: Auslosung Fussballturnier, 2 Tabellen zufällig mischen weiter: Problem SaveCopyAs Excel 2007 Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Antwort Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Gast



Verfasst am:
23. Jun 2009, 08:40
Rufname:

Zeilen löschen die Wert einer festen Zelle enthalten (Datum) - Zeilen löschen die Wert einer festen Zelle enthalten (Datum)

Nach oben
       Version: Office 2007

Hallo,

leider bin ich durch die Suche nicht fündig geworden. Ich habe folgendes "Problem": Ich möchte per Makro monatliche Reports erstellen. Dazu kopiere ich mein Blatt und lasse es mit dem aktuellen Monat als Namen einfügen, das funktioniert schon mal. Smile
Allerdings müssen die Daten auch datumsabhängig gelöscht werden. In der Tabelle habe ich eine Spalte S mit dem zugehörigen Monat (MM) und eine Spalte T mit dem Jahr (JJJJ). Es sollen nun alle Zeilen gelöscht werden die:
-ungleich der aktuellen Jahreszahl und
-kleiner als der aktuelle Monat sind.
Bislang habe ich in zwei Zellen das aktuelle Datum einfügen lassen und per benutzerdefiniertem Format in "MM" in Zelle B3 und "JJJJ" in Zelle B2 ausgeben lassen. Das Makro soll nun diese Zellen auslesen und alle Zeilen löschen die nicht den Kriterien entsprechen. Mein Code dazu sieht wie folgt aus:

Code:
Sub HPL_Auswertung6()
'
' HPL_Auswertung Makro
'löschen nach Monat


Dim lZeile  As Long

   With ActiveSheet
      For lZeile = .Cells(Rows.Count, 8).End(xlUp).Row To 1 Step -1
         If .Range("S" & lZeile).Value < B3 Then
            .Rows(lZeile).Delete Shift:=xlUp
         End If
      Next lZeile
   End With
   
End Sub


Code:
Sub HPL_Auswertung7()
'
' HPL_Auswertung Makro
'löschen nach Jahr


Dim lZeile  As Long

   With ActiveSheet
      For lZeile = .Cells(Rows.Count, 8).End(xlUp).Row To 1 Step -1
         If .Range("T" & lZeile).Value <> B2 Then
            .Rows(lZeile).Delete Shift:=xlUp
         End If
      Next lZeile
   End With
   
End Sub


Leider funktioniert das aber nicht. Kann mir jemand sagen was ich falsch mache? Vielleicht gibt es ja auch eine viel einfachere Lösung..
Danke schön! Smile
Inge
ExcelTüftler
Excel-VBA "Rumspieler"


Verfasst am:
23. Jun 2009, 10:06
Rufname: Daniel
Wohnort: Kehl am Rhein


AW: Zeilen löschen die Wert einer festen Zelle enthalten (Da - AW: Zeilen löschen die Wert einer festen Zelle enthalten (Da

Nach oben
       Version: Office 2007

Hi Inge!

Zunächst einmal:
Um Bereiche anzusprechen, musst du "Range" oder "Cells" oder "[]" benutzen...
Da du das im Makro sonst auch gemacht hast, nehme ich an, Du hast es übersehen

If .Range("S" & lZeile).Value < .Range("B3") Then

dann sollte es gehen...
Diesen Fehlern kannst du vorbeugen, in dem du "Option Explicit" verwendest
Damit erzwingt VBA die Deklaration von Variablen und würde meckern, da er die Variablen B3 oder B2 nicht kennt.

Schneller und ohne viel Gewackel gehts so:
Option Explicit

Sub HPL_Auswertung6()
    ' 
    ' HPL_Auswertung Makro 
    'löschen nach Monat und Jahr 
    
    Dim lZeile  As Long
    Dim DelRng As Range
    
    With ActiveSheet
        For lZeile = .Cells(Rows.Count, "S").End(xlUp).Row To 4 Step -1 '1 auf 4 geändert - sonst können ja auch B2,B3 verschwinden 
            If .Range("S" & lZeile).Value < .Range("B3") Or .Range("T" & lZeile).Value <> .Range("B2") Then
                If DelRng Is Nothing Then                       'Wenn DelRng noch leer ist, dann 
                    Set DelRng = .Rows(lZeile)                      'Ist die lZeile der DelRng 
                Else                                            'Wenn DelRng nicht mehr leer ist, dann 
                    Set DelRng = Union(DelRng, .Rows(lZeile))       'Kommt die neue lZeile zur DelRng hinzu 
                End If
            End If
        Next lZeile
        DelRng.Select               'zu Testzwecken DelRng nur auswählen - später diese zeile löschen 
        'DelRng.Delete Shift:=xlUp  'wenn Test OK, die Zeile Nehmen 
    End With
End Sub
Code eingefügt mit VBA in HTML 2.0.0.3

Unterschied:
Er markiert erst alle Zeilen,die den Kriterien entsprechen (ähnlich wie Markieren mit <Strg>)
und löscht den Bereich auf einmal.
Somit wird Zeit für ...
...das immer wieder neue Zuweisen von Zellwerten +
...den immer wieder neuen Bildaufbau
gespart.

_________________
Gruß Daniel

P.S. Nein, das ist kein Pfusch... das ist Improvisation! ;o)
Gast



Verfasst am:
24. Jun 2009, 11:00
Rufname:

AW: Zeilen löschen die Wert einer festen Zelle enthalten (Da - AW: Zeilen löschen die Wert einer festen Zelle enthalten (Da

Nach oben
       Version: Office 2007

Hi Daniel!
Wow - vielen Dank für die schnelle Hilfe, funktioniert einwandfrei und um Längen schneller als vorher! Smile
Grüße Inge
Gast



Verfasst am:
30. Jul 2009, 11:10
Rufname:

AW: Zeilen löschen die Wert einer festen Zelle enthalten (Da - AW: Zeilen löschen die Wert einer festen Zelle enthalten (Da

Nach oben
       Version: Office 2007

Hallo,

ich muss nochmal eine Rückfrage stellen, die Lösung unten funktioniert einwandfrei - allerdings sollen nun zusätzlich die Zeilen die leer sind nicht gelöscht werden.
Kann ich vielleicht vorweg einen Befehl einfügen der für dieses Makro nur die "nicht leeren Zellen" beachtet? Andernfalls schliesse ich die leeren Zellen ja schon mit der Bedingung "<> .Range("J2")" mit ein.

Mein code sieht jetzt wie folgt aus:

Code:
Sub HPL_Auswertung6()
    'löschen nach Monat und Jahr
   
    Dim lZeile  As Long
    Dim DelRng As Range
   
    With ActiveSheet
        For lZeile = .Cells(Rows.Count, "S").End(xlUp).Row To 9 Step -1             If .Range("S" & lZeile).Value < .Range("J3") Or .Range("T" & lZeile).Value <> .Range("J2") Then
                If DelRng Is Nothing Then                       
                    Set DelRng = .Rows(lZeile)                     
                Else                                                             
(DelRng, .Rows(lZeile))     
                End If
            End If
        Next lZeile

        DelRng.Delete Shift:=xlUp
    End With
End Sub


Hat jemand eine Idee wie ich das Problem lösen kann?
Danke schön! Smile
Inge
ExcelTüftler
Excel-VBA "Rumspieler"


Verfasst am:
30. Jul 2009, 12:20
Rufname: Daniel
Wohnort: Kehl am Rhein


AW: Zeilen löschen die Wert einer festen Zelle enthalten (Da - AW: Zeilen löschen die Wert einer festen Zelle enthalten (Da

Nach oben
       Version: Office 2007

eigentlich müsste es das hier tun:

If (.Range("S" & lZeile).Value < .Range("J3") Or .Range("T" & lZeile).Value <> .Range("J2")) And ACount(.RRows(lZeile))>0 Then

_________________
Gruß Daniel

P.S. Nein, das ist kein Pfusch... das ist Improvisation! ;o)
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Excel Formeln: Datum aus Liste extrahieren 2 Gast 1173 08. Jul 2004, 09:03
Gast Datum aus Liste extrahieren
Keine neuen Beiträge Excel Formeln: Wort in Zelle immer mit Großbuchstaben beginnen 6 QWERT 2522 24. Jun 2004, 15:56
steve1da Wort in Zelle immer mit Großbuchstaben beginnen
Keine neuen Beiträge Excel Formeln: Löschen von Teilen in einer Zelle 2 Rolle 946 16. Jun 2004, 12:41
Rolle Löschen von Teilen in einer Zelle
Keine neuen Beiträge Excel Formeln: Zelle leer anzeigen 4 Tieftaucher03 963 26. Mai 2004, 13:42
Tieftaucher03 Zelle leer anzeigen
Keine neuen Beiträge Excel Formeln: Datum einfügen 6 Gast 859 07. Mai 2004, 14:46
steve1da Datum einfügen
Keine neuen Beiträge Excel Formeln: Aktuelles Datum soll in einer Zelle farbig markiert werden 7 Moustee 2511 01. Mai 2004, 19:55
Gast Aktuelles Datum soll in einer Zelle farbig markiert werden
Keine neuen Beiträge Excel Formeln: Aktuelles Datum einfügen 1 julien88 1033 25. Apr 2004, 20:02
iso Aktuelles Datum einfügen
Keine neuen Beiträge Excel Formeln: Zugehörige Daten in anderen Zelle anzeigen 5 puescher 1780 20. Apr 2004, 07:23
Thomas Ramel Zugehörige Daten in anderen Zelle anzeigen
Keine neuen Beiträge Excel Formeln: letzer wert in einer Spalte 3 RRs-Carshop 1034 31. März 2004, 09:53
fridgenep letzer wert in einer Spalte
Keine neuen Beiträge Excel Formeln: zaehlen wenn zelle farbig ist 3 Natalino 1437 10. März 2004, 09:06
xpecidy zaehlen wenn zelle farbig ist
Keine neuen Beiträge Excel Formeln: Mehrere Zeilen Verknüpfen 3 BeneFunk 937 05. März 2004, 16:28
Sebastian Mehrere Zeilen Verknüpfen
Keine neuen Beiträge Excel Formeln: Datum in Monat und Jahr aufspalten 4 momo 836 18. Feb 2004, 18:34
peb Datum in Monat und Jahr aufspalten
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: PHP JavaScript