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

zweite Zeile löschen

zweite Zeile löschen
06.03.2007 07:52:03
Erich
Hallo EXCEL-Freunde,
möchte jede 2. Zeile löschen lassen und habe folgendes Muster:
For X = 100 to 2 Step -2
Rows(X).Delete
Next X
Wie könnte ich das umstellen:
1. Ich markiere Zeile 20 gesamt oder Zelle A20
2. dann sollte jede 2. Zeile gelöscht werden
3. die Anzahl der Löschungen soll variabel sein (10 Zeilen, 20 Zeilen o.ä.)
Falls es nur rückwärts geht, könnte ich natürlich auch die letzte zu löschende Zeile markieren.
Besten Dank für eine Hilfe!
mfg
Erich
Private Tippgemeinschaft für Lotto oder Keno: http://www.kenostrategen.de

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

Betreff
Datum
Anwender
Anzeige
AW: zweite Zeile löschen
06.03.2007 08:05:00
Erich
Hallo Namensvetter,
die Aufgabe ist mir noch nicht so recht klar.
Wenn du (mindestens) eine Zelle in Zeile 23 markierst, welche Zeilen sollen dann gelöscht werden?
3,5,7,9,11,13,15,17,19,21,23
oder
23,25,27,29,... bis zur letzten nichtleeren Zeile
oder (bei mit z. B. 5 vorgegebener Anzahl zu löschender Zeilen):
3,5,7,9,11
oder
23,25,27,29,31
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
AW: zweite Zeile löschen
06.03.2007 14:25:00
Martin
Hallo Erich,
so funktioniert's:
erst angeben, wie viele Zeilen stehen bleiben sollen, dann wieviele gelöscht werden. Das Muster geht so lange weiter bis eine Zelle keinen Eintrag mehr hat. Sollen auch leere Zeilen (Zellen) gelöscht werden, dann statt Do While Cells(i, k).Value "" Do While i
Sub Zeilen_löschen()
Dim i, j, k, l, anz_lösch, anz_stehen As Integer
Dim term As String
Dim Mldg, Titel, Voreinstellung
Mldg = "Wie viele Zeilen sollen stehen bleiben?"  ' Aufforderung festlegen.
Titel = "ZEILE LÖSCHEN" ' Titel festlegen.
Voreinstellung = "1"    ' Voreinstellung festlegen.
' Meldung, Titel und Standardwert anzeigen.
term = InputBox(Mldg, Titel, Voreinstellung)
anz_stehen = term
Mldg = "Wie viele Zeilen sollen gelöscht werden?"  ' Aufforderung festlegen.
Titel = "ZEILE LÖSCHEN" ' Titel festlegen.
Voreinstellung = "1"    ' Voreinstellung festlegen.
' Meldung, Titel und Standardwert anzeigen.
term = InputBox(Mldg, Titel, Voreinstellung)
anz_lösch = term
i = ActiveCell.Row
k = ActiveCell.Column
j = i
Application.ScreenUpdating = False
Do While Cells(i, k).Value <> ""
For l = 1 To anz_stehen
i = i + 1
Next l
For l = 1 To anz_lösch
Rows(i).Select
Selection.Delete Shift:=xlUp
Next l
Loop
Cells(j, k).Select
Application.ScreenUpdating = True
End Sub

Gruß Martin
Anzeige
AW: zweite Zeile löschen
06.03.2007 17:33:33
Erich
Hallo Martin,
vermutlich kann Erich (also Erich M.) mit der Routine erreichen, was er möchte.
Ich hab sie etwas gekürzt, die hier tut wohl das Gleiche:
Sub Zeilen_löschen2()
Dim i As Integer, j As Integer, k As Integer, l As Integer
Dim anz_lösch As Integer, anz_stehen As Integer
anz_stehen = InputBox("Wie viele Zeilen sollen stehen bleiben?", "ZEILE LÖSCHEN", "1")
anz_lösch = InputBox("Wie viele Zeilen sollen gelöscht werden?", "ZEILE LÖSCHEN", "1")
j = ActiveCell.Row
k = ActiveCell.Column
i = j
Application.ScreenUpdating = False
Do While Cells(i, k) <> ""
i = i + anz_stehen
Range(Rows(i), Rows(i + anz_lösch - 1)).Delete Shift:=xlUp
Loop
Cells(j, k).Select
Application.ScreenUpdating = True
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
Zeile löschen
07.03.2007 06:28:00
Erich
Hallo zusammen,
also leider geht bei mir in beiden Fällen gar nichts?
Weiß nicht was ich falsch mache. Egal ob ich die erste Zeile oder die Zelle der Spalte A in der
ersten Zeile markiere - ich werde zwar abgefragt wieviele Zeilen gelöscht und stehen bleiben sollen
und das Makro läuft durch - aber es ist alles wie vorher?
Besten Dank nochmal!
mfg
Erich
Private Tippgemeinschaft für Lotto oder Keno: http://www.kenostrategen.de
AW: Zeile löschen
07.03.2007 06:57:00
Erich
Hi Erich,
zwei Vorschläge:
a)
Kommentier bitte mal die Zeile Application.ScreenUpdating = False aus und
geh dann mit F8 schrittweise durch das Makro.
Wenn du den Cursor über eine Variable stellst, wird deren aktueller Wert angezeigt.
Dann siehst du, was wie oft passiert.
Zwischendurch kannst du auch kurz zu Excel gehen und nachsehen, ob sie das Tabellenblatt geändert hat.
b)
Antwortest du mir noch auf meinen ersten Beitrag auf die Frage,
welche Zeilen genau gelöscht werden sollen?
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Zeile löschen
07.03.2007 07:10:00
Erich
Hallo Erich,
also mit F8 komme ich zu dem Ergebnis, wenn ich die Zelle A35 markiere, dass angezeigt wird:
j = ActiveCell.Row = 35
k = ActiveCell.Column = 1
i = 0 ?
Do While Cells(i, k): i = 0; k = 0 ?
liegt hier der Fehler?
bei Cells und Rows wird dann auch "Anwendungs- oder objektdefinierter Fehler angezeigt.
zur Frage:
Wenn du (mindestens) eine Zelle in Zeile 23 markierst, welche Zeilen sollen dann gelöscht werden?
Löschung jede 2.: 24,24,28,30,32 usw
Besten Dank!
mfg
Erich
AW: Zeile löschen
07.03.2007 09:13:00
Erich
Hallo Erich,
i ist natürlich Null, bis die Zeile "i = j" abgearbeitet ist,
und dann wird auch bei Cells und Rows kein Fehler mehr angezeigt.
Dass das Makro bei dir keine Wirkung auf die Tabelle hat, dürfte daran liegen,
dass in der Spalte unterhalb der markierten Zelle nicht genügend viele Zellen belegt sind.
(Die letzte Zelle wird für diese Spalte bestimmt.)
Das Makro löscht die Zeilen 24,26,28,30,32,34,36,
wenn du A23 selektierst, du bei beiden Inputs 1 eingibst
und die Zellen in Spalte A, Zeilen 23,25,27,29,31,33,35 nicht leer sind.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Zeile löschen
07.03.2007 07:06:00
Erich
Hallo nochmal,
ich habe gerade gesehen, dass meine Frage zu b) falsch gestellt war. Also noch mal:
Wenn du (mindestens) eine Zelle in Zeile 23 markierst, welche Zeilen sollen dann gelöscht werden?
3,5,7,9,11,13,15,17,19,21,23
oder
23,25,27,29,... bis zur letzten nichtleeren Zeile
oder (bei mit z. B. 5 vorgegebener Anzahl zu löschender Zeilen):
15,17,19,21,23
oder
23,25,27,29,31
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
AW: Zeile löschen
07.03.2007 07:11:23
Erich
...Antworten haben sich gerade überschnitten!
AW: zweite Zeile löschen
07.03.2007 06:37:27
Hans
... eine Bitte: Keine mehr oder weniger private Links dieser Art einfügen.
Danke
Gruss hans
Anzeige
AW: zweite Zeile löschen
07.03.2007 06:39:23
Erich
ok - wird entnommen.
mfg
Erich
AW: zweite Zeile löschen
07.03.2007 09:43:15
Erich
Hallo Erich,
probier mal diese beiden Prozeduren:
Option Explicit
Sub Zeilen_löschen4()
Dim rng As Range, lngZ As Long, lngA As Long, lngL As Long, zz As Long
Set rng = Cells.Find("*", Cells(1, 1), xlValues, , xlByRows, xlPrevious)
If rng Is Nothing Then lngZ = 1 Else lngZ = rng.Row
lngA = ActiveCell.Row
lngL = InputBox("Wie viele Zeilen maximal sollen gelöscht werden?", "ZEILE LÖSCHEN", "10")
Application.ScreenUpdating = False
For zz = Application.Min(lngA - 1 + 2 * lngL, lngZ - lngA Mod 2) To lngA + 1 Step -2
Rows(zz).Delete
Next zz
Application.ScreenUpdating = True
End Sub
Sub Zeilen_löschen3()
Dim rng As Range, lngZ As Long, zz As Long
Set rng = Cells.Find("*", Cells(1, 1), xlValues, , xlByRows, xlPrevious)
If rng Is Nothing Then lngZ = 1 Else lngZ = rng.Row
Application.ScreenUpdating = False
For zz = lngZ - ActiveCell.Row Mod 2 To ActiveCell.Row + 1 Step -2
Rows(zz).Delete
Next zz
Application.ScreenUpdating = True
End Sub
Die erste fragt nach der Anzahl zu löschender Zeilen, die zweite löscht bis zum Ende der Tabelle.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: zweite Zeile löschen
09.03.2007 06:27:00
Erich
Hallo Erich,
die zweite Variante ist die Super-Lösung!
Besten Dank!
mfg
Erich
Danke für Rückmeldung - Gerne! (oT)
09.03.2007 08:27:00
Erich

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige