Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen

Zeilen Löschen wenn Datum in Spalte D älter den

Betrifft: Zeilen Löschen wenn Datum in Spalte D älter den von: Vulferin
Geschrieben am: 29.09.2014 21:05:34

Ich hab meine Projekt fast fertig bekommen.
1 Sache bekomme ich aber einfach nicht hin.
Spalte D ist meine Datum Spalte

ich möchte gerne das wenn ich ein CommandButton drücker
Alles was 1 MOnat älter ist wie der Aktuelle Monat und in Spalte G Wahr steht
Diese Zeilen sollen gelöscht werden.

Ich hoffe ihr könnt mir da helfen.
Danke euch

  

Betrifft: AW: Zeilen Löschen mit Duplikate entfernen von: Daniel
Geschrieben am: 29.09.2014 21:38:42

Hi
So wie immer halt:
1. Per Formel alle Zeilen die gelöscht werden sollen mit einer 0 und alle die stehenbleiben sollen mit der Zeilennummer kennzeichnen.
2. In die erste Zeile der Hilfsspalte (Überschrift) ebenfalls die 0 schreiben
3. Daten - Datentools - Duplikate entfernen auf die Tabelle anwenden mit der Hilfsspalte als Kriterium und ohne Überschrift
4. Hilfsspalte wieder löschen.

Sieht als Code für deinen Button so aus:

With ActiveSheet.UsedRange
With .Columns(.Columns.Count + 1)
.FormulaR1C1 = "=if(and(rc7,rc4<date(year(today()),month(today()),1)),0,row())"
.Cells(1, 1) = 0
.EntireRow.RemoveDuplicates .Column, xlNo
.ClearContents
End With
End With

Gruß Daniel


  

Betrifft: AW: Zeilen Löschen mit Duplikate entfernen von: Vulferin
Geschrieben am: 30.09.2014 19:08:08

irgendwie klappt das nicht
ich verstehe deine formeln auch nicht ganz
RC ist rowcount ?
was ist formular1c1 ?

irgendwie fügt er die spalte ein markiert auch zeilen und löscht sie
aber er schaut nicht in Spalte7 nach Wahr


  

Betrifft: AW: Zeilen Löschen mit Duplikate entfernen von: Daniel
Geschrieben am: 30.09.2014 19:22:12

Hi

FormulaR1C1 heißt, dass die folgende Formel in englischer Sprache geschrieben ist (damit funktioniert das Makro in jeder Länderversion) und die Zellbezüge in R1C1 geschrieben sind.
R1C1 entspricht im Deutschen den Z1S1-Zellbezügen und bedeutet, dass nach dem R die Zeilennummer und nach dem C die Spaltennummer folgt. Folgt keine Nummer, so ist es ein Zellbezug in die gleiche Zeile oder Spalte, in der die Formel steht.

Prinzipell schaut die Formel schon in der Spalte 7 nach, ob da WAHR steht.
du kannst das auch noch mal absichern mit
.FormulaR1C1 = "=if(and(rc7=True,...
aber diese Prüfung ergibt ja auch nur WAHR oder FALSCH als Ergebnis und wenn WAHR oder FALSCH schon direkt als Wert in der Zelle steht, dann kann man diesen auch direkt abfragen.

Anders sieht es aus, wenn WAHR nicht als Wahrheitswert in der Zelle steht, sondern als Text, dann muss die Prüfung natürlich so lauten:
.FormulaR1C1 = "=if(and(rc7=""Wahr"",...

aber was jetzt richtig ist kann ich dir ohne deine Datei und die echten Zellinhalte zu kennen nicht sagen.

Gruß Daniel

ps: Feedback in den anderen Foren, in denen du die Frage ebenfalls gestellt hast nicht vergessen ;-)


  

Betrifft: AW: Zeilen Löschen mit Duplikate entfernen von: Vulferin
Geschrieben am: 01.10.2014 18:46:43

Hi daniel
Irgendiwe klappt das nicht
ich hab das mal mit ""Wahr"" und mit der = true testetet
er löscht mir alle
irgendwie schaut er falsch :)
Kannst du mir nochmal den rest der formel erklären ?
das mit dem Datum ?
Danke dir


  

Betrifft: AW: Zeilen Löschen mit Duplikate entfernen von: Daniel
Geschrieben am: 01.10.2014 19:02:23

die Formel prüft, ob in Spalte G in der gleichen Zeile WAHR steht und ob das Datum in Spalte 4 kleiner ist, als der 1. des aktuellen Monats.
Wenn ja, wird eine 0 in die Zelle geschrieben und wenn nein, die aktuelle Zeilennummer.
Über Duplikate Entfernen kann man dann ganz einfach alle Zellen mit 0 löschen. (die 0, die stehen bleibt, schreibt man sinnvollerweise in die Überschriftenzeile.

Ich würde dir erstmal empfehlen, das ganze ohne Marko von Hand auszuführen, damit du verstehts was passiert.
Beim Umsetzen als Makro (vorallem beim schreiben der Formel) hilft dir dann der Recorder.

Gruß Daniel


 

Beiträge aus den Excel-Beispielen zum Thema "Zeilen Löschen wenn Datum in Spalte D älter den "