Zeilen löschen und gleichzeitig Formeln einfügen

Sorry, aber welcher Code soll es denn sein, bei mir geht jedenfalls nichts. Die Mappe1, da geht aber nichts? Gruß Josef
 
Zuletzt bearbeitet:
Ersetz mal in deiner Mappe 1 (Anhang) das " With Info" mit "With Tabelle1", und schon gehts.
Habs bei mir eben getestet

EDIT: Ähhh....quatsch. Da fehlt noch was: und zwar die ermittlung der letzten Zeile.
Die muss noch vor die Schleife rein
Code:
With Tabelle1
lngZeileMax = .Cells(.Rows.Count, zielspalte).End(xlUp).Row
'Schleifen
 
Ist wohl noch ein Hacken in der Sache, sorry, es bewegt sich nichts, leider. Frage mich allerdings warum es in der einen Tabelle geht, und in meinem "Original" nicht. Wo könnte ich denn noch Veränderungen vornehmen? In der Spalte 6 wo ich die Formel anwende, geschieht nichts. Ich aktualisiere über eine Eingabemaske. Ist "Worksheet_Activate()" nicht ein automatisches Aktivieren eines Prozesses? Gruß Josef

Der Code:
Code:
 Private Sub Worksheet_Activate() '   Open() '  Activate()  ' ** Zeilenentfernen() ' Zeileentfernen()

Dim lngZeile As Long, zielspalte As Long  '  , With as variable
        zielspalte = 6
                With Tabelle1
              
             lngZeileMax = .Cells(.Rows.Count, zielspalte).End(xlUp).Row
          
            For lngZeile = lngZeileMax To 2 Step -1

        .Cells(lngZeile, zielspalte).FormulaLocal = "=WENN(E" & lngZeile & "="""";"""";DATEDIF(E" & lngZeile & ";HEUTE();""D""))"
  
If .Cells(lngZeile, zielspalte) >= 10 Then .Rows(lngZeile).Delete ' Löscht Daten älter 30 Tage
Next
    End With
Application.CutCopyMode = False '  Beendet den Copiervorgang
End Sub
 
Zuletzt bearbeitet:
Ich glaube ich habe deinen Fehler gefunden:
Die Ermittlung der letzten Zeile findet in Bezug auf Spalte F statt.
Wenn da natürlich keine Einträge sind, wirft er als letzte Zeile natürlich nur schmarrn raus.
Änder mal wie folgt ab:
Code:
    With Tabelle1
        lngZeileMax = .Cells(.Rows.Count, 1).End(xlUp).Row 'Hier Änderung von "zielspalte" auf "1" Spalte A
        For lngZeile = lngZeileMax To 2 Step -1
            .Cells(lngZeile, zielspalte).FormulaLocal = "=WENN(E" & lngZeile & "="""";"""";DATEDIF(E" & lngZeile & ";HEUTE();""D""))"
            If .Cells(lngZeile, zielspalte) >= 10 Then .Rows(lngZeile).Delete ' Löscht Daten älter 10 Tage
        Next
    End With
Ich habe jetzt Spalte A genommen. Du musst natürlich selbst wissen, welche Spalte definitiv Einträge bis zum "Ende" hat (Adressen-Spalte?).
Ich habe die If-Delete-Zeile auskommentiert, und alle Formeln wurden korrekt gesetzt
 
Danke für deine erneute Hilfe. Habe den Code mit Erfolg getestet. Ist mir für die Praxis eine große Hilfe. Nochmal vielen Dank, Gruß Josef
 
Zurück