Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Zeilen löschen


Betrifft: Zeilen löschen von: Christian
Geschrieben am: 23.08.2016 09:27:59

Hallo zusammen,

Ich habe ein Datenaufstellung mit sehr sehr vielen Zeilen.

In Zeile 1 ist die Spaltenüberschrift.
Ab Zeile 2 beginnen die Daten. Ein Datensatz enthält jeweils 6 Zeilen.

Ich möchte nun jeweils 4 von diesen 6 Zeilen löschen, da alles 3fach vorkommt.

Heißt konkrekt, dass Zeile 4-7,10-13,16-19,22-25,usw. gelöscht werden sollen.

Was kann ich tun um es einfach zu gestalten?

  

Betrifft: AW: Zeilen löschen von: UweD
Geschrieben am: 23.08.2016 09:47:29

Hallo


in ein normales Modul:

Private weg_damit_6()
    On Error GoTo Fehler
    Dim i%, SP%, ZE&, LR&
    Application.ScreenUpdating = False
    With Sheets("Tabelle1")
        SP = 1 'Spalte A 
        ZE = 2 'ab Zeile 
        LR = .Cells(.Rows.Count, SP).End(xlUp).Row 'letzte Zeile der Spalte 
        For i = LR To ZE + 2 Step -6
            .Rows(i - 3 & ":" & i).Delete xlUp
        Next
    End With
    '*** Fehlerbehandlung 
    Err.Clear
Fehler:
    If Err.Number <> 0 Then MsgBox "Fehler: " & _
        Err.Number & vbLf & Err.Description: Err.Clear
End Sub


VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 15 - mit VBAHTML 12.6.0


Gruß UweD


  

Betrifft: AW: Zeilen löschen von: Christian
Geschrieben am: 23.08.2016 10:22:17

Danke!!!


  

Betrifft: AW: Zeilen löschen von: Daniel
Geschrieben am: 23.08.2016 10:13:47

Hi
ohne VBA am einfachsten so:

1. schreibe in eine Hilfsspalte am Tabellenende eine Formel, welche alle Zeilen die gelöscht werden sollen mit 0 kennzeichnet und die die Stehen bleiben sollen mit der aktuellen Zeilennummer

in deinem Fall die Formel:

=Wenn(Rest(Zeile()-2;6)<2;Zeile();0)
2. wenn nicht schon durch die Formel gegeben, schreibe in die Überschriftenzeile der Hilfsspalte ebenfalls die 0

3. Wennde auf die ganze Tabelle die Funktion DATEN - DATENTTOOLS - DUPLIKATE ENTFERNEN mit der Hilfsspalte als Kriteriumsspalte und der Option "Keine Überschrift" an.

4. Lösche dann die Hiflsspalte wieder.

das ist einfach, sehr schnell und funktioniert auch mit grössten Datenmengen.
und es funktioniert sowohl von Hand als ich in VBA nach der gleichen Methode.

der Code dazu sieht so aus:
With ActiveSheet.UsedRange
    With .columns(.columns.count + 1)
        .FormulaR1C1 = "=IF(Mod(Row()-2,6)<2,Row(),0)
        .Cells(1, 1).Value = 0
        .EntrireRow.Removeduplicates .Column, xlno
        .ClearContents
    End With
End with
das funktioniert so für alle Fälle, in denen du Zeilen mit Bedingung löschen willst.
Anpassen musst du nur die Formel, welche die zu löschenden zeilen kennzeichnet.

Gruß Daniel


  

Betrifft: AW: Zeilen löschen von: Christian
Geschrieben am: 23.08.2016 10:27:21

Echt interessanter Tip!


  

Betrifft: AW: Zeilen löschen von: Werner
Geschrieben am: 23.08.2016 10:31:16

Hallo Christian,

nicht nur interessant sondern vor allem wahnsinnig schnell.

Gruß Werner


Beiträge aus den Excel-Beispielen zum Thema "Zeilen löschen"