Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1868to1872
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
Inhaltsverzeichnis

Kopierte zeilen löschen

Kopierte zeilen löschen
16.02.2022 15:25:49
Juli
Hallo!
Aus einem Thema was eigentlich schon gelöst war:
Wie lösche ich die Zeilen, die aus folgender Routine in die nächste Tabelle kopiert wurden?

Sub ZeilenÜbertragenPMA()
Dim lngZeile As Long
Dim rngBereich As Range
Application.ScreenUpdating = False
With Tabelle1
For lngZeile = 3 To .Cells(Rows.Count, 1).End(xlUp).Row
If .Cells(lngZeile, 8).Value = "Ja" And .Cells(lngZeile, 9).Value = "Nein" Then
.Rows(lngZeile).Copy Destination:=Tabelle6.Cells(Rows.Count, 1).End(xlUp).Offset(1)
End If
Next lngZeile
End With
Application.ScreenUpdating = True
End Sub

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kopierte zeilen löschen
16.02.2022 16:16:35
Oberschlumpf
Hi
unterhalb von
.Rows(lngZeile).Copy ...
schreib mal diesen Code:

.Rows(lngZeile).Value = ""
oder versuch

.Rows(lngZeile).ClearContent
Hilfts?
Wenn nicht, zeig bitte eine Bsp-Datei per Upload.
Ciao
Thorsten
AW: Kopierte zeilen löschen
17.02.2022 09:30:09
Juli
Hi!
Der erste punkt löscht nur den Inhalt der Zeile, nicht die komplette Zeile, der zweite geht gar nicht.
Leider überschreitet die datei die 300KB und ich kan sie grad nicht hochladen. muss aml versuchen sie etwas einzukürzen
AW: Kopierte zeilen löschen
17.02.2022 09:47:22
Juli
Habs einfach mit

.Rows(lngZeile).Delete
gelöst
Danke!
Anzeige
AW: Kopierte zeilen löschen
17.02.2022 09:48:43
Oberschlumpf
genau DAS wollt ich dir gerade vorschlagen ;-)
AW: Kopierte zeilen löschen
17.02.2022 11:47:50
Juli
Leider funktioniert es doch nicht, zumindest nicht fehlefrei...
Kann das an der Größe der Datei liegen? Er hat sich ziemlich "totgerödelt" und auch alle kopiert aber dann nicht alle gelöscht ....
sind halt einige Zeilen die da zu bearbeiten sind, mit SVERWEISen drin etc.
In einer Testdatei funktioniert es
AW: Kopierte zeilen löschen
17.02.2022 12:06:36
Oberschlumpf
na, dann "bau" doch mal ne Testdatei, in der es - nicht - funktioniert; also zu den Fehlern kommt, die weiterhin vorhanden sind.
und diese Testdatei zeigst du dann hier per Upload
oder aber....
fang mit deiner For/Next-Schleife von unten an
mach aus...

For lngZeile = 3 To .Cells(Rows.Count, 1).End(xlUp).Row
...das hier...

For lngZeile = .Cells(Rows.Count, 1).End(xlUp).Row To 3 Step -1
Jetzt beginnt also die Schleife in der letzten, benutzten Zeile in Spalte A und arbeitet sich bis Zeile 3 hoch (weil Step -1 bedeutet, dass lngZeile immer einen Wert kleiner wird)
Hintergrund:
Eigentlich wunderte mich, dass der Code - auch, oder obwohl! - mit Rows...Delete fehlerfrei funktioniert - denn...
(ich hatte darauf nich geantwortet, weil ich mir den Roman sparen wollte, der nun doch folgt/folgen muss^^ :-) )
Nun stell dir das hier vor:
Anzahl Zeilen = 100
jetzt kommt For/Next
in Zeile 7 ist dein IF = WAHR, und es kommt zu
Rows...Delete = DIESE Zeile 7 wird gelöscht
JETZT sind es aber nicht mehr 100 Zeilen, sondern nur noch 99!
UND die eigentlich nächste Zeile 8 "rutscht" an Stelle von Zeile 7! - weil Zeile 7 wurde ja gelöscht - somit kommt es ja nicht mehr zur Kontrolle für alte Zeile 8, weil diese eine Zeile höher gerutscht ist
weiter gehts....
jetzt ist in Zeile 23 dein IF = WAHR, und es kommt wieder zu
Rows...Delete = Zeile 23 wird gelöscht, alte Zeile 24 rutscht an Stelle von Zeile 23 und es sind nicht mehr 99 Zeilen, sondern nur noch 98 Zeilen!
...usw...usw...
Wenn du aber mit For/Next in der letzten Zeile beginnst und dich dann hocharbeitest, ist es egal, wieviele Zeilen gelöscht werden, weil davon ja die nächst höhere Zeile immer unberührt bleibt.
So, wenns aber nun auch mit For/Next von letzter bis oberster Zeile auch nich geht - dann, siehe oben, zeig per Upload ne Bsp-Datei, mit der man testen kann.
Ohne Bsp-Datei is das fast immer wie "Stochern im Nebel", wie du ja vllt auch schon festgestellt hast...
Anzeige
AW: Kopierte zeilen löschen
17.02.2022 12:36:26
GerdL
Moin Juli,
den SVerweis wirst du in Tabelle6 bestimmt nicht brauchen.

Sub Unit()
Dim Rng As Range
With Tabelle1
For lngZeile = 3 To .Cells(Rows.Count, 1).End(xlUp).Row
If .Cells(lngZeile, 8).Value = "Ja" And .Cells(lngZeile, 9).Value = "Nein" Then
If Rng Is Nothing Then
Set Rng = .Rows(lngZeile)
Else
Set Rng = Union(Rng, .Rows(lngZeile))
End If
End If
Next lngZeile
End With
If Not Rng Is Nothing Then
Rng.Copy
Tabelle6.Cells(Tabelle6.Rows.Count, 1).End(xlUp).Offset(1).PasteSpecial xlPasteValues
Application.CutCopyMode = False
Rng.Delete
Set Rng = Nothing
End If
End Sub
Gruß Gerd
Anzeige

285 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige