Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
800to804
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
800to804
800to804
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Schleife zum Löschen von Zeilen

Schleife zum Löschen von Zeilen
20.09.2006 10:13:39
Zeilen
Hey Leute,
irgendwie habe ich derzeit einem Denkfehler, wobei ich aber keine Idee habe, wie ich dieses Problem lösen könnte.
Mein Ziel: Ich möchte die ersten 6 Zeilen in einem Tabellenblatt löschen. Dazu habe ich folgenen VBA Code geschrieben:
Dim k As Integer
For k = 1 To 6
Rows(k).EntireRow.Delete
Debug.Print "Zeile " & k & " der Kopfdaten gelöscht"
Next k
Das Script funktioniert ja soweit, aber es löscht mir die erste Zeile und löscht dann logischerweise die zweite Zeile die ursprünglich die dritte war...
Mit anderen Worten überspringt er immer eine Zeile...
Ich hoffe es ist einigemaßen verständlich was ich meine und erreichen möchte...
Habt ihr da eine Idee, was ich machen könnte?
Danke fürs Feedback im voraus

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schleife zum Löschen von Zeilen
20.09.2006 10:17:05
Zeilen
Hallo
sowas macht man rückwärts
...
For k = 6 To 1 Step -1
...
Gruß UweD
(Rückmeldung wäre schön)
AW: Schleife zum Löschen von Zeilen
20.09.2006 11:51:13
Zeilen
Hey Uwe, danke für deine fixe Antwort...und die Idee ist super, aber leider führt er dann meine Schleife nicht aus...Da kann ich wild auf den 'sub ausführen' Button klicken und da rührt sich nichts...:(
Vielleicht täusche ich mich, aber wenn ich in dem gleichen Modul noch eine zweite Schleife habe, dann wird diese mit dem Fehler Anwendungs- oder objektdefinierterfehler angebrochen. Hast du vl. eine Idee in welchen Fällen diese Fehlermeldung zurückgegeben wird? - Nun ja, das scheint eine andere Baustelle zu sein....
Anzeige
AW: Schleife zum Löschen von Zeilen
20.09.2006 13:15:24
Zeilen
Hallo
also bei mir klappt es...

Sub tttt()
Dim k As Integer
For k = 6 To 1 Step -1
Rows(k).EntireRow.Delete
Debug.Print "Zeile " & k & " der Kopfdaten gelöscht"
Next k
End Sub

lade doch mal die Datei hoch..
Gruß UweD
(Rückmeldung wäre schön)
AW: Schleife zum Löschen von Zeilen
20.09.2006 14:10:01
Zeilen
Hier einmal mein Werk....
Letztlich soll mit diesem Makro eine Tabellenstruktur wiederhergestellt werden. Ursprünglich kommen die Daten aus SAP, die sich aber in einem unleserlichen Zustand befinden.
'Variablendefinition
Dim i As Integer 'Itterationsvar
Dim j As Integer
Dim k As Integer 'Variable für den Kopf
'Löscht den Kopfbereich
For k = 1 To 6 Step -1
Rows(k).EntireRow.Delete
Debug.Print "Zeile " & k & " der Kopfdaten gelöscht"
Next k
j = 20
'Schiebt zweiten Zeilenbereich in die erste Zeile
For i = 6 To j
If Cells(i, 2) = "" Then
Debug.Print "B" & i & " ist leer"
Range(Cells(i, 1), Cells(i, 1 + 18)).Select ' Selektiert den Bereich: A8 bis R8
Selection.Cut Destination:=Range(Cells(i - 1, 16), Cells(i - 1, 34)) ' Schneidet den Bereich aus und def. Ziel
Rows(i).EntireRow.Delete 'Löscht die Zeile
ElseIf Cells(i, 2) = "VkOrg" Then
Debug.Print "B" & i & " enthält VKORg"
Rows(i).EntireRow.Delete 'Löscht die Zeile
End If
Next i
Zeitweise bemängelt er mir diese Zeile mit der Fehlermeldung Anwendungs- oder objektdefinierterfehler:
Selection.Cut Destination:=Range(Cells(i - 1, 16), Cells(i - 1, 34))
Mir ist das schleierhaft....vielen Dank fürs Durschauen schon mal!
Gruss
Anzeige
AW: Schleife zum Löschen von Zeilen
20.09.2006 14:26:02
Zeilen
Hallo
1) For k = 6 To 1 Step -1 . . . . NICHT 1 to 6
2) Range(Cells(i, 1), Cells(i, 1 + 18)).Select ' Selektiert den Bereich: A8 bis R8
Selection.Cut Destination:=Range(Cells(i - 1, 16), Cells(i - 1, 34)) ' Schneidet den Bereich aus und def. Ziel

- 1+18 =19 also Spalte S
- auf select kann verzichtet werden...
sonst kann ich keine Fehler sehen
hier das geänderte Makro

Sub Test()
'Variablendefinition
Dim i As Integer 'Itterationsvar
Dim j As Integer
Dim k As Integer 'Variable für den Kopf
'Löscht den Kopfbereich
For k = 6 To 1 Step -1
Rows(k).EntireRow.Delete
Debug.Print "Zeile " & k & " der Kopfdaten gelöscht"
Next k
j = 20
'Schiebt zweiten Zeilenbereich in die erste Zeile
For i = 6 To j
If Cells(i, 2) = "" Then
Debug.Print "B" & i & " ist leer"
Range(Cells(i, 1), Cells(i, 18)).Cut _
Destination:=Range(Cells(i - 1, 16), Cells(i - 1, 34)) ' Schneidet den Bereich aus und def. Ziel
Rows(i).EntireRow.Delete 'Löscht die Zeile
ElseIf Cells(i, 2) = "VkOrg" Then
Debug.Print "B" & i & " enthält VKORg"
Rows(i).EntireRow.Delete 'Löscht die Zeile
End If
Next i
End Sub

Gruß UweD
(Rückmeldung wäre schön)
Anzeige
AW: Schleife zum Löschen von Zeilen
20.09.2006 18:31:44
Zeilen
Hey Uwe,
der Fehler Anwendungs- oder objektdefinierter Fehler tritt jetzt permanent auf und bezieht sich immmer wieder auf diese Zeile:
Selection.Cut Destination:=Range(Cells(i - 1, 16), Cells(i - 1, 34))
Vielleicht ist da wirklich etwas an dieser Syntax falsch? Das := schaut ja schon komisch aus....
Vielen Dank für Deine Antwort
Gruss
AW: Schleife zum Löschen von Zeilen
21.09.2006 08:33:57
Zeilen
Hallo
nimm doch mal den Code so wie ich ihn abgebildet habe.
Selection ist bei mir nicht zu finden..
Oder lade mal eine Datei hoch.
Gruß UweD
(Rückmeldung wäre schön)
AW: Schleife zum Löschen von Zeilen
21.09.2006 10:15:07
Zeilen
Juppiee!!!
Es funktioniert...endlich...*springtindieLuft*...;)
Ich danke dir Uwe!
Vielleicht kann ich dir bei Deinem nächsten Excelproblem helfen...*reusper* ;-)
Gruss
Anzeige
AW: Schleife zum Löschen von Zeilen
20.09.2006 12:05:47
Zeilen
Hallo,
schreibe Rows(1).EntireRow.Delete (löscht immer die erste Zeile, ggf. anpassen)
anstatt Rows(k).EntireRow.Delete
Ralph

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige