Anzeige
Archiv - Navigation
1632to1636
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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.
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

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige