Microsoft Excel

Herbers Excel/VBA-Archiv

Bestimmte Zeilen löschen

Betrifft: Bestimmte Zeilen löschen
von: Gisela
Geschrieben am: 11.04.2003 - 22:27:20

Ich versuche in einer Excel Datei mit ca. 16500 Datensätze jeweils nach 53 Zeilen 11 Zeilen zu löschen.
1. Löschung der 11 Zeilen soll ab Zeile 50-61 sein.
2. Löschung der 11 Zeilen soll ab Zeile 114 - 125 sein
und jeweils weiter mit 53 Zeilen überlesen und dann 11 Zeilen löschen u.s.w.

  

Re: Bestimmte Zeilen löschen
von: PeterW
Geschrieben am: 11.04.2003 - 22:36:17

Hallo Gisela,

das läßt sich mit einem Makro ohne Probleme machen, aber wenn es ums Löschen geht macht man das besser von unten nach oben. Deswegen die Nachfrage, sind die "Datenpakete" so strukturiert, dass die Tabelle mit 11 zu löschenden Zeilen endet?

Gruß
Peter

  

Re: Bestimmte Zeilen löschen
von: Gisela
Geschrieben am: 11.04.2003 - 22:51:13

Hallo Peter,
die Datei endet mit der letzten Datenzeile 29299.
1. Löschung, nach 44 Zeilen müssen 12 Zeilen gelöscht werden und dann nach 53 Zeilen wieder 12 Zeilen und wieder nach 53 Datenzeilen 12 Zeilen u.s.w.
Ich hatte mich versehen, es sind nicht 11 Zeilen zum löschen, sondern 12.

  

Re: Bestimmte Zeilen löschen
von: Christoph
Geschrieben am: 11.04.2003 - 23:10:08

Hi Gisela,

ad 1: sorry, Peter, wenn ich mich da einmische - ich überlasse dir auch gleich wieder das Feld.
ad 2: Peter hat natürlich recht, wenn er sagt, dass man per Makro die Zeilen in einer Tabelle am besten von unten nach oben durchläuft - dem hab ich auch nichts hinzuzufügen.
ad 3: Gisela, wenn du 29299 Zeilen hast und dies jeweils Blöcke von 53+12, also Blöcke à 65 Zeilen sind ergibt dies nach Adam Riese 450 Blöcke und ein Rest von 49 Zeilen. Dein erster Block hat aber 56 Zeilen (44+12). Auf was ich raus will: Dein Schema (53+12) scheint nicht unbedingt zu passen. Gibt es denn eine Gemeinsamkeit all jener Zeilen, die gelöscht werden sollen? (Bsp: in Spalte A steht in allen zu löschenden Zeilen eine 1)

Gruß
Christoph


  

Re: Bestimmte Zeilen löschen
von: Gisela
Geschrieben am: 11.04.2003 - 23:23:11

Hallo jetzt Christoph oder Peter,
in Spalte A stehen Daten wie: Zahlen mindestens 8 stellig, diese Daten müssen erhalten bleiben.
In Spalte A mit anderen Merkmalen: wie leer;Strich;oder Text mit Zahl < 6 stellig sollen gelöscht werden.
Die Datei kann nicht nach Spalte A sortiert werden und dann diese überflüssigen Zeilen gelöscht werden, es ist eine Excel.htm
Vielen Dank im Voraus.

  

Re: Bestimmte Zeilen löschen
von: PeterW
Geschrieben am: 11.04.2003 - 23:30:55

Hallo Gisela,

als Versuch von oben nach unten zu löschen (trotz der berechtigten Anmerkungen von Christoph):


Option Explicit

Sub ZwoelfZeilen()
Dim iZeile As Integer
iZeile = 45

Do
    Rows(iZeile & ":" & iZeile + 12).Delete
    iZeile = iZeile + 53
Loop Until iZeile > 29299

End Sub


Gruß
Peter

  

Re: Bestimmte Zeilen löschen
von: Christoph
Geschrieben am: 12.04.2003 - 00:00:41

Hi Gisela,
ich muss dir erst mal sagen, ich bin nicht vom Forum, sondern selbst eifriger Fragesteller. Daher wirst du von mir keine superprofesionelle Lösung bekommen, aber eine, die funktioniert:

Wenn ich dich richtig verstanden habe, sollen alle Zeilen gelöscht werden, in denen in SpalteA kein Eintrag mit 8 oder mehr Stellen steht (unabhängig von Zahl oder Text). Dann gilt folgende Lösung:

gebe in eine unbenutzte Spalte (z.B. Spalte J)in die erste Zeile (J1) folgende Formel ein: =WENN(LÄNGE(A1)>=8;"x";"")
Diese Formel ziehst du per Maus runter bis zum Ende.

Anschließend startest du ein Makro mit folgedem Inhalt:

Sub Leere_Zeilen_Loeschen()

'' Dieses Makro löscht alle Zeilen, in denen
'' in Spalte 10(also Spalte J) eine Leerzelle ist

'' Variablendeklaration
Dim lR%, i%

lR = Cells(Rows.Count, 1).End(xlUp).Row
For i = lR To 1 Step -1
If IsEmpty(Cells(i, 10)) Then
Rows(i).Delete
End If
Next i
End Sub

Wenn du die Formel in Spalte K (also Spalte 11) eingeben hast, musst du die Zeile "If IsEmpty(Cells(i, 10)) Then" durch "If IsEmpty(Cells(i, 11)) Then" ersetzten, etc.

probiers mal aus, es funktioniert
Gruß
Christoph


 

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