Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zeilen archivieren

Zeilen archivieren
27.11.2008 08:33:05
Paul
Ich muss leider noch mal nachfragen weil alle Tipps bislang nicht zum gewünschten Erfolg geführt haben:
In einem Sheet "Rechnungen" lasse ich eben solche mit div. Zusatzinformationen (u.a. mittels Formeln) eintragen. Jetzt möchte ich realisieren, dass wenn eine Rechnung komplett beglichen ist, dieses aus der Liste verschwindet und in dem Sheet "bezahlt" abgelegt wird. Dazu sollte ein Makro geschrieben werden, das in "Rechnungen" alle die Zeilen wo in der Spalte "W" der Betrag mit 0,00 € ausgewiesen ist, wertemäßig in das Sheet "Bezahlt" in die erste freie Zeile einfügt und die dann die beroffenen Zeile in "Rechnungen" löscht, sodass wieder eine lückenlose Liste der noch offenen Rechnung entstehht!
Hat da jemand eine Idee!
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen archivieren
27.11.2008 09:07:00
Ramses
Hallo
Probier mal
Option Explicit

Sub CleanUp()
    Dim i As Long, checkCol As Long
    Dim chkWks As Worksheet, tarWks As Worksheet
    checkCol = 23
    Set chkWks = Worksheets("sheet1")
    Set tarWks = Worksheets("Sheet2")
    With chkWks
        For i = .Cells(Rows.Count, checkCol).End(xlUp).Row To 2 Step -1
            If .Cells(i, checkCol) = 0 Then
                .Rows(i).Copy tarWks.Cells(tarWks.Cells(Rows.Count, 1).End(xlUp).Row + 1, 1)
                .Rows(i).Delete
            End If
        Next i
    End With
End Sub

Die Tabellennamen musst du anpassen
chkWks = wo die offenen Rechnungen stehen
tarWks = wo die bezahlten Rechnungen stehen
Gruss Rainer
Anzeige
AW: Zeilen archivieren
27.11.2008 12:35:00
Paul
Hallo Rainer,
das ist ja schon fast perfekt. Ein Problem hab ich noch: Die archivierten Zellen enthalten noch Formeln mit den alten Bezügen. Kann man das Makro so umschreiben, das nur die Zellinhalte (ohne Formeln) archiviert werden, so wie jetzt habe ich nähmlich im Archiv Felder mit Formelfehlern!
Gruß Paul
Anzeige
AW: Zeilen archivieren
27.11.2008 13:41:00
Yal
Hallo Paul,
trenne mal den Copy und den Paste auseinander und mache aus dem Paste ein PasteSpecial:
.Rows(i).Copy
tarWks.Cells(tarWks.Cells(Rows.Count, 1).End(xlUp).Row + 1, 1).PasteSpecial xlPasteValues
Viel Erfolg
Yal
AW: Zeilen archivieren
27.11.2008 16:45:50
Paul
Hallo Rainer,
habe bei dem Macro noch ein Problem festgestellt. und zwar sollte nicht nur die Spalte W auf 0€ geprüft werden sondern auch die Spalte in den zu archierenden Zeilen einen Wert enthalten!
Anzeige
AW: Zeilen archivieren
27.11.2008 19:18:00
Ramses
Hallo
":.sondern auch die Spalte in den zu archierenden Zeilen einen Wert enthalten!.."
Sorry, da versteh ich kein Wort.
Kannst du das mal etwas ausführlicher erläutern ?
Gruss Rainer
;
Anzeige
Anzeige

Infobox / Tutorial

Zeilen effektiv archivieren in Excel


Schritt-für-Schritt-Anleitung

Um Zeilen in Excel zu archivieren, wenn eine Rechnung beglichen ist, kannst du ein Makro verwenden. Hier ist eine einfache Anleitung, wie du dies umsetzen kannst:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Wähle "Einfügen" und dann "Modul", um ein neues Modul zu erstellen.

  3. Füge den folgenden Code in das Modul ein:

    Option Explicit
    
    Sub CleanUp()
        Dim i As Long, checkCol As Long
        Dim chkWks As Worksheet, tarWks As Worksheet
        checkCol = 23  ' Spalte W
        Set chkWks = Worksheets("Rechnungen")  ' Name des Quell-Sheets
        Set tarWks = Worksheets("Bezahlt")      ' Name des Ziel-Sheets
    
        With chkWks
            For i = .Cells(Rows.Count, checkCol).End(xlUp).Row To 2 Step -1
                If .Cells(i, checkCol) = 0 And .Cells(i, 1) <> "" Then  ' Prüfen ob Spalte W 0 und erste Spalte nicht leer ist
                    .Rows(i).Copy
                    tarWks.Cells(tarWks.Cells(Rows.Count, 1).End(xlUp).Row + 1, 1).PasteSpecial xlPasteValues
                    .Rows(i).Delete
                End If
            Next i
        End With
    End Sub
  4. Passe die Namen der Worksheets (Rechnungen und Bezahlt) nach Bedarf an.

  5. Schließe den VBA-Editor und führe das Makro aus, um die Zeilen zu archivieren.


Häufige Fehler

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige