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

Zeile verschieben (copy/paste)

Zeile verschieben (copy/paste)
04.05.2021 08:25:05
Sascha
Hallo Zusammen,
ich weiß dass mein Problem hier bestimmt schon ein ausgelutschtes Thema ist, allerdings
konnte ich aus den Beiträgen nicht alle Bausteine rausarbeiten die ich für meine Anwendung brauche.
Folgendes:
Bei einem Worksheet_Change Aktion (Spalte A9-A700) ändert sich der Wert auf „beendet“.
Ist das der Fall soll die ganze Zeile in der dieser Wert nun drinsteht ausgeschnitten werden und auf eine neue Seite eingefügt werden.
Besonderheit: Die Zeile die ausgeschnitten werden soll, soll quasi danach gelöscht werden, sodass alle darunterliegenden Zeilen hochrutschen.
Auf dem neuen Blatt soll die nächste freie Zeile ermittelt werden in der die ausgeschnittene Zeile eingefügt wird.
In der Theorie hab ich verstanden wie der Code aufgebaut werden müsste. Doch praktisch schaff ich das nicht.
Könnte mir jemand einen Beispielcode schreiben? Das wäre super nett. Danke schon mal im Vorraus.
LG Sascha

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

Betreff
Datum
Anwender
Anzeige
AW: Zeile verschieben (copy/paste)
04.05.2021 08:46:12
Werner
Hallo,
und warum zeigst du dein Worksheet_Change Makro nicht - das du ja wohl schon hast?
Gruß Werner
AW: Zeile verschieben (copy/paste)
04.05.2021 09:16:01
Sascha
Hallo Werner,
das meinte ich mit theoretisch.
Option Explicit

Sub ActiveWorksheet_Change (by Target Val)
If Range("A9:A700").Value = "beendet"
Select.EntireRow
Selection.CutCopy
ActiveWorksheet("Beendete Aufgaben").Cells(Count, 1).End(xlUP) = Cells(Count + 1)
PasteSpecial = PasteAll
End Sub
So round about muss der Code wohl aussehen. Aber wie er im Detail auszusehen hat, das weiß ich nicht. Deshalb frage ich hier.
Hast du da ne Idee wie ich das umsetze?
LG Sascha
Anzeige
AW: Zeile verschieben (copy/paste)
04.05.2021 09:17:31
GerdL
Moin Sascha,
beachte, dass diese Event-Prozedur nicht durch Formeln ausgelöst wird.
Die Freihandzeichnung ns Modul der Tabelle kopieren.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zelle As Range
If Not Intersect(Target, Range("A9:A700")) Is Nothing Then
Application.EnableEvents = False
For Each Zelle In Intersect(Target, Range("A9:A700"))
If Zelle.Value = "beendet" Then
Zelle.EntireRow.Cut Tabelle2.Cells(Tabelle2.Rows.Count, 1).Offset(1).EntireRow
Application.CutCopyMode = False
End If
Next
Application.EnableEvents = True
End If
End Sub
Gruß Gerd
Anzeige
AW: Zeile verschieben (copy/paste)
04.05.2021 09:35:24
Werner
Hallo Gerd,
das hier

Bei einem Worksheet_Change Aktion (Spalte A9-A700) ändert sich der Wert auf „beendet“.
macht mich "nervös".
So wie das geschrieben ist würde ich davon ausgehen, dass es schon ein Change Event gibt, deshalb auch meine Nachfrage an den TE.
Gruß Werner
AW: Zeile verschieben (copy/paste)
04.05.2021 09:43:28
Sascha
@ Werner:

Sub Neue_Aufgabe()
'   Ersteller:      Sascha Nollenberger
'   Erstelldatum:   03.05.2021
'   Dieses Makro kopiert die versteckte Zeile 8 (welche vorkonfiguiert ist) und sucht sich die erste freie Zeile darunter und fügt dort eine
'   neue Zeile hinzu.
'   Mapkey:         Strg + n
Dim Zeile As Long
Rows("8:8").Select
Selection.EntireRow.Hidden = False
Selection.Copy
Rows("9:9").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Selection.PasteSpecial Paste:=xlPasteAll
ThisWorkbook.Sheets("Neue Aufgaben").Range("E9").Value = Date
ThisWorkbook.Sheets("Neue Aufgaben").Range("F9").Value = Environ("Username")
Rows("8:8").Select
Application.CutCopyMode = False
Selection.EntireRow.Hidden = True
End Sub
Das ist der einzige Code der aktuell in meiner Liste ist. Ansonsten gibt es keinen weiteren.
@Gerd,
1. Was genau meinst du die Aktion wird nicht durch Formel aus gelöst, und Freihandzeichnung ns Modul der Tabelle Kopieren.
2. Ich habe in der Zeile Tabelle2.Cells ... die Benennung auf Tabelle3.Cells geändert da das die Destination ist wo die Zeile hinsoll.
Allerdings kommt jetzt eine Laufzeitfehler 1004,
3. Ich habe deinen Code auf das Tabellenblatt kopiert in der die Aktion starten soll.
Ich bin etwas überfordert.
LG Sascha
Anzeige
AW: Zeile verschieben (copy/paste)
04.05.2021 12:25:30
GerdL
Moin Sascha,
da war noch ein Wurm drin.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zelle As Range
If Not Intersect(Target, Range("A9:A700")) Is Nothing Then
Application.EnableEvents = False
For Each Zelle In Intersect(Target, Range("A9:A700"))
If Zelle.Value = "beendet" Then
Zelle.EntireRow.Cut Tabelle3.Cells(Tabelle3.Rows.Count, 1).End(xlUp).Offset(1).EntireRow
Application.CutCopyMode = False
End If
Next
Application.EnableEvents = True
End If
End Sub
Gruß Gerd
AW: Zeile verschieben (copy/paste)
04.05.2021 12:52:57
Sascha
Hallo Gerd,
der Code funktioniert jetzt beinahe einwandfrei.
Nur die Funktion, dass die Zeile aus der der Eintrag entfernt wurde weiterhin bestehen, bleiblt.
Allerdings möchte ich, dass die Zeile gelöscht wird.
Hast du dafür auch noch einen Lösungsvorschlag?
LG Sascha ( Danke für deine große Hilfe.)
Anzeige
AW: Zeile verschieben (copy/paste)
04.05.2021 13:53:10
GerdL
Ok, dann sorum.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zelle As Range
If Not Intersect(Target, Range("A9:A700")) Is Nothing Then
Application.EnableEvents = False
For Each Zelle In Intersect(Target, Range("A9:A700"))
If Zelle.Value = "beendet" Then
Zelle.EntireRow.Copy Tabelle3.Cells(Tabelle3.Rows.Count, 1).End(xlUp).Offset(1).EntireRow
Zelle.EntireRow.Delete
Application.CutCopyMode = False
End If
Next
Application.EnableEvents = True
End If
End Sub
Gruß Gerd
AW: Zeile verschieben (copy/paste)
04.05.2021 14:17:39
Sascha
Super Vielen lieben Dank.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige