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

Forumthread: Zeilen mit speziellem Wert verschieben

Zeilen mit speziellem Wert verschieben
19.07.2018 09:11:48
Jens
Guten Morgen zusammen,
ich habe folgendes Problem.
Alle Zeilen die in der Spalte "Sortiercode 1" den Wert "0000.03" haben,
sollen nach oben verschoben werden unter die Zeile wo in der Spalte "Sortiercode 1" der Wert "0000" steht
Userbild
Folgendes habe ich schon versucht.
Er fügt es aber nicht dazwischen ein sondern überschreibt die Zeilen.

Sub move()
Dim lastFilterdRow
Dim wksZiel As Worksheet
ActiveSheet.Range("$A:$ZZ").AutoFilter Field:=3, Criteria1:="0000"
lastFilterdRow = GetFilteredRangeBottomRow
ActiveSheet.Range("$A:$ZZ").AutoFilter Field:=3, Criteria1:="0000.03"
With ActiveSheet.AutoFilter.Range
.Offset(1, 0).Resize(.Rows.Count - 2).Copy
End With
ActiveSheet.Paste Destination:=Worksheets(1).Range("A" & lastFilterdRow + 1)
With ActiveWorkbook.Worksheets(1)
.Cells(1, 1).End(xlUp).Offset(lastFilterdRow, 0).PasteSpecial Paste:=xlPasteAll
End With
End Sub
Function GetFilteredRangeBottomRow() As Long
Dim HeaderRow As Long, LastFilterRow As Long, Addresses() As String
On Error GoTo NoFilterOnSheet
With ActiveSheet
HeaderRow = .AutoFilter.Range(1).Row
LastFilterRow = .Range(Split(.AutoFilter.Range.Address, ":")(1)).Row
Addresses = Split(.Range((HeaderRow + 1) & ":" & LastFilterRow). _
SpecialCells(xlCellTypeVisible).Address, "$")
GetFilteredRangeBottomRow = Addresses(UBound(Addresses))
End With
NoFilterOnSheet:
End Function
Vielen Dank
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen mit speziellem Wert verschieben
19.07.2018 10:17:47
UweD
Hallo
ungeprüft...
anstelle von .copy schreibe .cut
und
anstelle .PasteSpecial Paste:=xlPasteAll schreibe .Insert Shift:=xlDown
LG UweD
AW: Zeilen mit speziellem Wert verschieben
19.07.2018 10:40:30
Jens
Hallo Uwe,
geht leider nicht bekomme einen Laufzeitfehler.
Laufzeitfehler '1004'
Die Insert-Methode des Range-Objektes konnte nicht ausgeführt werden.
Anzeige
Musterdatei...
19.07.2018 12:11:46
UweD
Anstelle eines Bildes
AW: Musterdatei...
20.07.2018 10:54:36
UweD
Hallo
Hab es so hinbekommen
Modul1
Option Explicit 
 
Sub move() 
           
    Dim RowInsert As Long, FirstRow 
    Dim HeaderRow As Long, LastFilterRow As Long, Addresses As String 
        
    With ActiveSheet 
         
        .Range("$A:$ZZ").AutoFilter Field:=3, Criteria1:="0000" 
         
        'prüfen ob Filterwerte 0000 in C:C vorhanden 
        If WorksheetFunction.Subtotal(3, Columns(3)) = 0 Then 
            .AutoFilterMode = False 
            MsgBox "Filterfehler 0000" 
            Exit Sub 
        End If 
         
        'Enfügezeite 
        RowInsert = .Cells(.Rows.Count, 3).End(xlUp).Row + 1 
        
        .Range("$A:$ZZ").AutoFilter Field:=3, Criteria1:="0000.03" 
         
        'prüfen ob Filterwerte 0000.03 in C:C vorhanden 
        If WorksheetFunction.Subtotal(3, Columns(3)) = 0 Then 
            .AutoFilterMode = False 
            MsgBox "Filterfehler 0000.3" 
            Exit Sub 
        End If 
         
        'Ausschneidebereich ermitteln 
        HeaderRow = .AutoFilter.Range(1).Row 
        LastFilterRow = .Range(Split(.AutoFilter.Range.Address, ":")(1)).Row 
        Addresses = .Range((HeaderRow + 1) & ":" & LastFilterRow). _
                         SpecialCells(xlCellTypeVisible).Address 
         
        'Erste Zeile vom Ausschneidebereich 
        FirstRow = Split(Replace(Addresses, "$", ""), ":") 
         
        'Filter ausschalten 
        .AutoFilterMode = False 
         
        'nur wenn nicht an selber Stelle 
        If RowInsert <> FirstRow(0) Then 
            .Rows(Addresses).Cut 
            .Rows(RowInsert).Insert xlDown 
        End If 
     
    End With 
End Sub 
    
 

LG UweD
Anzeige
AW: Musterdatei...
20.07.2018 12:06:15
Jens
Hallo,
super es funktioniert.
Vielen Dank!
LG Jens
Danke für die Rückmeldung owT
20.07.2018 12:39:15
UweD
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

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