Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1784to1788
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

Zeilen ohne Inhalte kopieren und löschen

Zeilen ohne Inhalte kopieren und löschen
08.10.2020 15:56:08
Martina
Hallo zusammen,
ich weiß das es etwas "unschön" ist sich einen Code aus einem Forum zu benutzen und diesen für seine Zwecke anzupassen. Da ich aber sehr neu in der VBA Welt bin und da Ideen habe, wusste ich mir nicht aders zu helfen und benötigte bitte Hilfe.
Ich habe eine Excel-Liste in welcher ab Zeile 8 in jeder 2 Zeile von B - Q Namen teils über Dropdown eingetragen werden. Nach jeder Zeile sind die Makros um die darüberliegende Zeile zu speichern.
Nun können Zeilen welche ich nicht mehr benötige einzeln per Makro in eine Datenbank kopier werden, und diese Zeile wird dann geleert. (Formeln, Rahmen, Bedingte Formatierungen und Farben bleiben an Ort und stelle)
Nun sollten die unteren Zeilen automatisch nach oben rutschen, sodass ich keine leeren Zeilen mehr habe (sollte eine zwischen drin die Datenbank gewandert sein) und immer nach untenscrollen muss. Ich kommen hier mit Cut.Destination nicht ganz zurecht, da mir dieses ja die komplette Zeile ausschneidet.
Sub Schaltfl?che1_Klicken()
Dim WsZiel As Worksheet
Dim wsQuelle As Worksheet
Dim i As Long
Dim j As Long
Set wsQuelle = ThisWorkbook.Worksheets("Tabelle1")
Set WsZiel = wsQuelle.Parent.Worksheets("Tabelle1")
With wsQuelle
i = 6
Do While i 

Ich was das ich Quelle und Ziel entfernen könnt aber vielleicht wird dann alles noch umgebaut.
Vielen Lieben Dank .

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen ohne Inhalte kopieren und löschen
08.10.2020 16:23:37
Daniel
Hi
ich würde es so machen:
1. per formel die Zeilen kennzeichnen, die die bleiben mit der Zeilennummer und die die weg sollen, mit einem "x"
2. sortieren der Liste nach dieser Kennzeichnung, dann kannst du die Zellen in einem Rutsch "entfernen"
with wsQuelle.UsedRange
with .Columns(.Columns.Count + 1)
.formulaR1C1 = "=IF(RC2="""",""x"",Row())"
.Formula = .value
.EntireRow.Sort Key1:=.cells(1, 1), order1:=xlascending, Header:=xlno
if .Cells(.Cells.Count, 1) = "x" then
with  .SpecialCells(xlcelltypeconstants, 2).EntireRow
.Resize(10).Copy Destination:=wsZiel.Cells(2, 1)
.EntireRow.Clear
end with
end if
.clearContents
end with
end with
Gruß Daniel
Anzeige
AW: Zeilen ohne Inhalte kopieren und löschen
08.10.2020 16:33:01
Yal
"unschön, Code aus einem Forum zu benutzen und diesen für seine Zwecke anzupassen"
--> ganz im Gegenteil, dafür ist es gedacht. Wichtig ist das Gehirnschmalz, das man selber reinbringt, und nicht nach stumpften Copy-paste mekern "es tut nicht".
Dein Problem ist ein alte Bekannter: Zeile 7 verschwindet, Zeile 8 wird Zeile 7, 9 --> 8, nächste Zeile ist das alte "9", alte "8" wird ignoriert.
Anstatt einen While, verwende einen For und zwar vom Ende zu Anfang (Step -1)
LetzteZeile = wsQuelle.Cells("B100000").End(xlUp).Row
For i = LetzteZeile To 2 Step -1
If IsEmpty...
Next
Alternativ per Hand (ist mehr speed):
_ Hilfspalte einführen
_ Zeilennummer oder Reihe eintragen
_ sortieren, sodass leere Zeilen zusammen kommen (ev. Hilspalte dafür nötig)
_ leere Block löschen
_ nach Hilfspalte "originale Reihenfolge" sortieren
_ Hilfspalte löschen
Viel Erfolg
Yal
Anzeige
AW: Zeilen ohne Inhalte kopieren und löschen
08.10.2020 17:54:00
onur
"ich weiß das es etwas "unschön" ist sich einen Code aus einem Forum zu benutzen und diesen für seine Zwecke anzupassen" - wieso ? dafür siond Foren wie dieses schliesslich (unter Anderem) da.
Du brauchst doch nur nach dem Cut die ganze Zeile zu löschen, dann rutscht alles brav nach oben.

309 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige