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

Daten auto. kopieren u. löschen

Daten auto. kopieren u. löschen
15.06.2021 09:58:29
Petersen
Hallo,
ich hatte hier schon einmal zu diesem ähnlichen Thema eine Anfrage. Da wurde mir auch sehr gut geholfen. Bin wirklich froh darüber.
Jetzt ist es so, nach dem Umsetzen der Aufgabe, habe ich gemerkt, das ich da etwas vergessen habe.
Hier der Auszug meiner ersten Anfrage:
Hallo,
ich bin Excel Neuling.
Ich möchte die Spalten G bis W ab Zelle 23 bis 500 automatisch mit allem Inhalten kopieren.
Es soll aber nur automatisch kopiert werden, wenn in Spalte I von Zelle 9 bis 524 ein Ja steht.
Die alles soll in eine neues Register ab Spalte A bis Q und von Zelle 3 bis 504 geschehen.
Es sollen aber alle schon kopierten Daten nicht überschrieben werden, sondern nur im leeren Spalten und Zellen Bereich.
Meine Frage: Ist dies überhaupt möglich und wenn ja, wie?
Über Hilfe würde ich mich freuen.
Das ist das Makro, was ich bekommen habe und funktioniert

Sub Unit()
Dim ZeileTab1 As Long
Dim ZeileTab2 As Long
ZeileTab2 = Worksheets("Tabelle2").Cells(Worksheets("Tabelle2").Rows.Count, 1).End(xlUp).Row + 1
If ZeileTab2 
Nun ist es so, wenn die Daten aus der Spalten I23 bis I524 mit der Abfrage Ja kopiert wurden, würde ich gerne diese Daten von Spalte G bis W nach dem kopieren automatisch löschen. Spalte R ist geschützt, da dort Formeln hinterlegt sind.
Jetzt ist es aber dann auch noch so, das die Abfrage Nein in der Spalte I mit den Daten ja bleiben sollen. Diese sind dann immer von einer oder mehreren Leerzeilen getrennt. Ich würde gern dies Daten immer nach oben in die leeren Spalten und Zeilen verschieben wollen, damit diese Daten wieder untereinander stehen. Also alle Daten nach dem Kopieren und Löschen, die mit der Abfrage Nein erhalten bleiben, sollen dann in die leeren Spalten und Zellen nach oben verschoben werden.
Ich hoffe ich konnte mich klar ausdrücken, was ich machen möchte.
Gibt es dafür eine Lösung? Wenn ja, kann mir da einer Helfen?
Würde mich sehr über eine Lösung freuen
VG

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten auto. kopieren u. löschen
16.06.2021 23:41:32
Yal
Hallo Petersen,
Du meinst sicher "leeren" anstatt löschen, oder? Also löschen vom Inhalt. Ein Löschen von Zellen führt zu Verschiebungen, wenn man nicht die ganze Zeile/Spalte löscht.
Um die Wiederholung zu vermeiden, kann eine "With" verwenden: alles was nach dem With steht, gilt vor dem Punkt. Also in dem Fall vor .Copy und .Clearcontents
Dei Gültigkeitsende eines With wird mit End With vermerkt.

Sub Unit()
Dim ZeileTab1 As Long
Dim ZeileTab2 As Long
ZeileTab2 = Worksheets("Tabelle2").Cells(Worksheets("Tabelle2").Rows.Count, 1).End(xlUp).Row + 1
If ZeileTab2 
VG
Yal
Anzeige
AW: Daten auto. kopieren u. löschen
21.06.2021 10:46:59
Petersen
Ich habe noch etwas ausprobiert. Mit folgender Änderung, kopiert er mir alles richtig und leert die Zellen.
Leider werden die Daten mit der Abfrage in I 9 bis I 524 mit "Nein" (Bereich G bis W) nicht nach oben in die freien Spalten und Zellen verschoben.
Hier, was ich versucht habe:

Sub Unit()
Dim ZeileTab1 As Long
Dim ZeileTab2 As Long
ZeileTab2 = Worksheets("Tabelle2").Cells(Worksheets("Tabelle2").Rows.Count, 1).End(xlUp).Row + 1
If ZeileTab2 
Ich hoffe ihr könnt damit etwas anfangen.
VG
Frage offen?
21.06.2021 11:55:51
Yal
Hallo Petersen,
Ich kann die Frage, die offen sein soll, in deine Rückmeldung nicht richtig entdecken. Warum "noch offen"?
Wenn es darum geht, "Ja" und "Nein" auseinander zu halten, wäre eine Sortierung sinnvoll.
Ansonten klingt es wie eine Abfrage auf eine Excel-Liste. Dafür wäre Power Query (PQ) prädestiniert. Siehe folgende motivierende PQ-Tutorial:
Excel Hero Power Query Playlist
https://www.youtube.com/playlist?list=PLy5TtUB84yrN2VVRzp8Tif8bxQKJD_2bo
VG
Yal
Anzeige
AW: Frage offen?
21.06.2021 13:47:30
Petersen
Ich denke, ich drücke mich ein bisschen unglücklich aus.
Hier ein Makro, das ich hier aus dem Forum mal bekommen habe.
Hier sortiert er mir die Daten, so wie ich es gerne möchte. "Nein" oben ab G - W 24 bis 525. "Ja" darunter.
Nur überschreibt mir alle Zellen und Spalten ab A - W 9 bis 525. Alle Daten die in diesem Bereich nicht überschrieben werden dürfen, liegen jetzt unten.
Wie kann ich dies verhindern?

Sub Sortieren()
With ActiveSheet
.Unprotect
.EnableAutoFilter = True
.Range("G24:W525").Activate
Application.Dialogs(xlDialogSort).Show
.Protect userinterfaceonly:=True
End With
End Sub
Ich hoffe es ist jetzt verständlicher. Ich habe leider wenig Ahnung von Makros. Bekomme gerade einmal die Filter Funktion hin und wie man bestimmte Bereiche sperrt.
VG
Anzeige
AW: Frage offen?
21.06.2021 16:47:58
Yal
Hallo Petersen,
eine Bitte: wenn sowohl Code als auch Formeln G24:W525 verwenden, bitte nicht eine eigene Schreibweise "G - W 24 bis 525" einführen. So müssen jede potenzielle Helfer zuerst nachdenken ;-)
Ich habe den Makro-Rekorder angestossen, einen Code daraus bekommen und angepasst.
Wenn ich es richtig verstanden, stehen die Ja/Nein in der Spalte I (9te Spalte). Es sollte daher für dein Bedarf ungefähr wie folgt aussehen:

Sub Sortieren()
With ActiveWorkbook.Worksheets("Tabelle1")
.Unprotect
.Sort.SortFields.Clear
.Sort.SortFields.Add Key:=Range("I24:I525"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.Sort.SetRange Range("G24:W525")
.Sort.Header = xlGuess
.Sort.MatchCase = False
.Sort.Orientation = xlTopToBottom
.Sort.SortMethod = xlPinYin
.Sort.Apply
.Protect userinterfaceonly:=True
End With
End Sub
Die Elemente Header, MatchCase, Orientation sind nichts anderes als die Optionen, die Du sonst per Hand einstellen müsstest. Eventuell muss Du diesen zu deinem Bedarf anpassen.
VG
Yal
Anzeige
AW: Frage offen?
22.06.2021 11:17:08
Petersen
Hallo Yal,
total super. Es funktioniert. Vielen Dank.
Eins habe ich leider noch, er sollte von Z nach A sortieren, also "Nein" immer nach oben.
Was müsste ich den im Code noch ändern?
Deine Hilfe ist echt super.
VG
AW: Frage offen?
22.06.2021 14:16:35
Petersen
Hallo Yal,
ich habe mal im Internet nachgeschaut, was der Befehl Order:=xlAscending bedeutet.
Dadurch habe ich herausgefunden, das ich den Befehl durch Descending ersetzen muss.
Jetzt sortiert er mir alles mit "Nein" nach oben.
Danke für deine Hilfe, habe viel gelernt.
VG
AW: Frage offen?
25.06.2021 10:07:10
Petersen
Hallo,
leider muss ich noch einmal um Hilfe bitten.
Ich habe die beiden Makros, die ich hier bekommen habe und etwas angepasst habe eingesetzt, dafür noch einmal vielen Dank.
Nun möchte ich, das die von R24:R524 Daten bzw. die Formel nicht nach dem Abschluss des Sortierens und Kopieren, gelöscht werden.
Kann man diese Zellen im Makro so einbinden, das dies so gemacht wird?
Es geht nur um das Löschen. Die Daten müssen wie im Makro gesamt ( mit der Ja Abfrage) kopiert werden.
Hier das benutzte Makro, wie geschrieben, macht es das was es soll, aber löscht die Formel.

Sub Sortieren()
With ActiveWorkbook.Worksheets("Nullmeldung")
.Unprotect
.Sort.SortFields.Clear
.Sort.SortFields.Add Key:=Range("I24:I525"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
.Sort.SetRange Range("G24:W525")
.Sort.Header = xlGuess
.Sort.MatchCase = False
.Sort.Orientation = xlTopToBottom
.Sort.SortMethod = xlPinYin
.Sort.Apply
.Protect UserInterfaceOnly:=True
End With
Dim ZeileTab1 As Long
Dim ZeileTab2 As Long
ZeileTab2 = Worksheets("Tabelle2").Cells(Worksheets("Tabelle2t").Rows.Count, 1).End(xlUp).Row + 1
If ZeileTab2 
Schon einmal Danke für die Mühe
VG
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige