Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zeile ausschneiden und verschieben

Zeile ausschneiden und verschieben
25.05.2016 16:21:57
Michael
Hallo Zusammen,
ich habe eine Statusliste (Zwei Tabellenblätter: Statusliste & Archiv). Sobald ein Status (eine Zeile) in der letzten Zelle (Spalte H) den Status erledigt erhält (trage ich ein oder Dropdown), dann soll diese Zeile ausgeschnitten werden und auf das Tabellenblatt Archiv übertragen und nach der letztbeschriebenen Zeile eingefügt werden. Die Zeile in der Statusliste soll nicht leer sein, sondern die anderen Zeilen einfach aufrutschen.
Ist sowas überhaupt möglich?
Gruß & dank
Michael

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeile ausschneiden und verschieben
25.05.2016 16:48:39
UweD
Hallo
das geht so...
- Rechtsclick auf den Tabellenblattreiter
- Code anzeigen
- Diesen Code dort reinkopieren

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Fehler
Dim TB1, TB2
Dim SP%, ZE&, LR&
ZE = 2 'wegen Überschrift
If Not Intersect(Range("H:H"), Target) Is Nothing _
And Target.Row >= ZE Then
Set TB1 = Sheets("Statusliste")
Set TB2 = Sheets("Archiv")
SP = 1 'Spalte A
If Target = "erledigt" Then
LR = TB2.Cells(Rows.Count, SP).End(xlUp).Row 'letzte Zeile der Spalte
TB1.Rows(Target.Row).Copy TB2.Rows(LR + 1)
Application.EnableEvents = False
TB1.Rows(Target.Row).Delete xlUp
End If
End If
Err.Clear
Fehler:
If Err.Number  0 Then MsgBox "Fehler: " & _
Err.Number & vbLf & Err.Description: Err.Clear
Application.EnableEvents = True
End Sub

Gruß UweD
Über Rückmeldungen würde ich mich freuen

Anzeige
AW: Zeile ausschneiden und verschieben
25.05.2016 16:50:16
Werner
Hallo Michael,
der Code gehört ins Change Ereignis des Blattes Statusleiste.
Rechts klick auf den Tabellenblattreiter - Code anzeigen - Code ins Codefenster Kopieren.
Ist nicht getestet.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim loLetzte As Long
If Target.Column = 8 Then
If Target.Value = "erledigt" Then
loLetzte = Sheets("Archiv").Cells(Rows.Count, 1).EndxlUp.Row + 1
Target.EntireRow.Copy Sheets("Archiv").Cells(loLetzte, 1)
Target.EntireRow.Delete
End If
End If
End Sub
Gruß Werner

Anzeige
AW: Zeile ausschneiden und verschieben
25.05.2016 17:09:09
Michael
Vielen Dank euch - werde beides morgen test.

AW: Zeile ausschneiden und verschieben
25.05.2016 19:59:05
Werner
Hallo Michael,
kleine Änderung, hatte das Cancel vergessen und vor allem aus Versehen .End(xlUp).Row vergessen zu klammern.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim loLetzte As Long
Cancel = True
If Target.Column = 8 Then
If Target.Value = "erledigt" Then
loLetzte = Sheets("Archiv").Cells(Rows.Count, 1).End(xlUp).Row + 1
Target.EntireRow.Copy Sheets("Archiv").Cells(loLetzte, 1)
Target.EntireRow.Delete
End If
End If
End Sub
Gruß Werner
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige