Microsoft Excel

Herbers Excel/VBA-Archiv

Zeilen verschioeben wenn...

Betrifft: Zeilen verschioeben wenn... von: Luisa
Geschrieben am: 27.10.2020 11:38:56

Hallo zusammen,
folgendes Problem:
ich möchte gerne alle Zeilen in Spalte F in denen 'erledigt' eingetragen wird, aus Tabelle1 ausschneiden und in Tabelle 2 fortlaufend untereinander einfügen. Die leere Zeilen in Tabelle 1 sollen außerdem gelöscht werden.
Leider funktioniert mein Ansatz nicht, würde mich sehr über Hilfe freuen.

Sub zeilenkopieren()
Dim i As Long
With Sheets("Disskusion")
    For i = .Cells(Rows.Count, "F").End(xlUp).Row To 2 Step -1
    Debug.Print .Cells(i, "F")
        'If .Cells(i, "F").Text Like "erledigt" Then
        If StrComp(.Cells(i, "F"), "erledigt", 1) Then
            .Rows(i).Copy Sheets("erledigt").Cells(Sheets("erledigt").Cells(Rows.Count, "F"). _
End(xlUp).Row + 1, "A")
            Sheets(Disskusion).Activate
            .Rows(i).Delete
        End If
    Next
End With
ActiveWorkbook.Save
End Sub

Betrifft: AW: Zeilen verschioeben wenn...
von: Werner
Geschrieben am: 27.10.2020 12:03:35

Hallo,

ich bin davon ausgegangen, dass deine Datenbereich in A1 beginnt und in Zeile 1 Überschriften vorhanden sind.
Option Explicit

Public Sub Verschieben()
Dim loLetzte As Long

Application.ScreenUpdating = False
Application.DisplayAlerts = False

With Worksheets("Tabelle1")
    If WorksheetFunction.CountIf(.Columns("F"), "erledigt") > 0 Then
        .Range("A1").AutoFilter field:=6, Criteria1:="erledigt"
        With .AutoFilter.Range
            .Offset(1).Resize(.Rows.Count - 1).Copy
            With Worksheets("Tabelle2")
                loLetzte = .Cells(.Rows.Count, "A").End(xlUp).Offset(1).Row
                If .Cells(1, "A") = "" Then loLetzte = 1
                .Cells(loLetzte, "A").PasteSpecial Paste:=xlPasteValues
                Application.CutCopyMode = False
            End With
            .Offset(1).Resize(.Rows.Count - 1).Delete
        End With
        .Range("A1").AutoFilter
    End If
End With
End Sub
Gruß Werner

Betrifft: AW: Zeilen verschioeben wenn...
von: Luisa
Geschrieben am: 27.10.2020 13:09:55

Vielen Dank für die Antwort! Leider überspringt er ab then bis end with,

Hier die Excel, das ist wahrscheinlich einfacher

https://www.herber.de/bbs/user/141122.xlsm

Betrifft: AW: Zeilen verschioeben wenn...
von: Werner
Geschrieben am: 27.10.2020 13:22:59

Hallo,

da steht auch nicht erledigt in der Spalte F sondern erledigt gefolgt von einem Leerzeichen. Und das ist für den Code halt nicht das selbe.

Entferne mal bei jedem erledigt das Leerzeichen am Ende.

Und noch was:
Es macht keinen Sinn, eine Beispielmappe hochzuladen, wenn sie in ihrem Aufbau nicht deinem Original entsprich. Und ich nehme mal nicht an, dass es in deiner Originaldatei zwischen Spalte A und Spalte F tatsächlich Spalten gibt, die komplett leer sind.

Gruß Werner

Beiträge aus dem Excel-Forum zum Thema "Zeilen verschioeben wenn..."