Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
632to636
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
632to636
632to636
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zeilen löschen

Zeilen löschen
04.07.2005 08:58:03
dmoser
Moin, Ich möchte in meiner Tabelle jede zweite Zeile löschen und würde mich freuen wenn jemand mir den Macro in VBE geben könnte.

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen löschen
04.07.2005 09:03:13
andreas
Hallo,
nimm dieses Makro

Sub JedeZweiteZeilelöschen()
Dim i As Long
Sheets("Tabelle1").Activate
ActiveSheet.UsedRange.Select
For i = Selection.Rows.Count To 1 Step -1
If i Mod 2 = 1 Then
Selection.Rows(i).Delete Shift:=xlUp
End If
Next
End Sub

gruß
andreas e
http://www.klick-ware.de
AW: Zeilen löschen
04.07.2005 09:29:40
dmoser
Ich habe es ausprobiert dauert ziemlich lange. Könntest du das Macro bitte so ändern das er nur bis Zeile 5000 geht.
AW: Zeilen löschen
04.07.2005 09:38:07
andreas

Sub JedeZweiteZeilelöschen()
Application.ScreenUpdating = False
Dim i As Long
Sheets("Tabelle3").Activate
For i = 5000 To 1 Step -1
If i Mod 2 = 1 Then
Rows(i).Delete Shift:=xlUp
End If
Next
Application.ScreenUpdating = True
End Sub

Anzeige
@ andreas e
04.07.2005 09:46:38
Rocky
Hallo andreas,
ich bin nicht ganz so fitt, doch frage mich wozu if ... then?
Gruß Rocky
AW: @ andreas e
04.07.2005 09:50:41
andreas
Hallo Rocky,
hast recht - kann man sich schenken
Allerdings ist bei dir beim hochzählen ein Problem - teste es mal - besser von hinten kommen, oder ?
Gruß
Andreas
AW: @ andreas e
04.07.2005 10:00:12
Rocky
Schon gemerkt! muss heißen Step 1 nicht Step 2!
Danke Gruß Rocky
AW: Zeilen löschen
04.07.2005 09:43:13
Rocky
Hallo,
das müsste so aussehen:

Private Sub jedezweiteloeschen()
Dim i As Long
Application.ScreenUpdating = False
Sheets("Tabelle1").Activate
ActiveSheet.UsedRange.Select
For i = 1 To 5000 Step 2
Rows(i).Delete Shift:=xlUp
Next i
Application.ScreenUpdating = True
End Sub

alles klar?
Gruß Rocky
Anzeige
AW: Zeilen löschen
04.07.2005 09:48:39
andreas
Hallo Rocky,
Mal getestet ?
Besser ists von hinten kommend

Sub ae()
Dim i As Long
Application.ScreenUpdating = False
Sheets("Tabelle1").Activate
For i = 5000 To 1 Step -2
Rows(i).Delete Shift:=xlUp
Next i
Application.ScreenUpdating = True
End Sub

AW: Zeilen löschen
04.07.2005 09:51:31
dmoser
Erstmal danke, ging aber wunderbar so wie ich es bekommen hatte.
hatte Fehler Step 1
04.07.2005 09:58:51
Rocky
hab noch mal getestet! hatte nen fehler drin! hätte heißen müssen
mein code nur mit step 1 statt stepp 2
Gruß Rocky
AW: Zeilen löschen
04.07.2005 10:03:25
Rocky
Würde nicht von hinten kommen! ich denke das die Daten ein unterschiedliches Ende haben werden! glaube es wäre übersichtlicher von forn zu beginnen und notfalls die anfangszeile von 1 uuf zwei (wenn nötig) zu verschieben! je nach dem ob gerade oder ungerade Zeilen gelöscht werden sollen!
oder?
Gruß Rocky
Anzeige
AW: Zeilen löschen
04.07.2005 10:10:12
dmoser
Ih habe jetzt das neue ausprobiert geht auch sehr gut,danke tschau
AW: Zeilen löschen
04.07.2005 10:11:31
Peter
Servus Rocky,
Andreas hat schon recht. Wenn du das ganze mal logisch durchdenkst wirst du sehen, das deine Schleife gravierende Fehler produziert. Z.B. du fängst bei Zeile 1 an löscht diese als nächstes währe in der Schleife Zeile 2 dran. Die ist aber in wirklichkeit Zeile 3 da du ja Zeile 1 gelöscht hast und sich die Nummerierung von Excel um eine Zeile verschoben hat. Ist wohl in diesem Fall kein Problem, wenn es aber um Auswertung von Daten handelt, schwierig.
Teste mal einen Bereich von Zeile 1 bis 100 und schreibe 1 bis 100 rein. Und lass deine Schleife laufen und dann zum Vergleich die von Andreas ;).
MfG Peter
Anzeige
AW: Zeilen löschen
04.07.2005 10:19:18
Rocky
Verstehe das Problem!
glaub Ihr habt recht!
doch wenn ich meine so schreibe
Dim i As Long
Application.ScreenUpdating = False
Sheets("Tabelle1").Activate
For i = 1 To 100 Step 1
Rows(i).Delete Shift:=xlUp
Next i
Application.ScreenUpdating = True
und sie mit der von Andreas vergeiche
Dim i As Long
Application.ScreenUpdating = False
Sheets("Tabelle1").Activate
For i = 100 To 1 Step -2
Rows(i).Delete Shift:=xlUp
Next i
Application.ScreenUpdating = True
kommt am ende das gleich raus!
doch ich geb zu das ich meine aussage von vorhin überdenken sollte!
Danke Gruß rocky
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige