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

Zurückkopieren einer Zeile in das Ursprungsblatt

Zurückkopieren einer Zeile in das Ursprungsblatt
09.08.2017 15:07:02
Paul
Hallo Excel-Freunde,
ich stehe derzeit vor einem Problem, das für euch sicherlich keins darstellen sollte. Ich habe im Tabellenblatt X folgenden Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim loLetzte1 As Long
With Worksheets("Abgeschlossene Aufgaben")
loLetzte1 = .Cells(.Rows.Count, 2).End(xlUp).Row + 1
End With
If Target.Count > 1 Then Exit Sub
If Target.Column = 5 Then
If Target.Row > 1 Then
If Target.Value = "Erledigt" Then
If Target.Offset(, 1) = "" Then
MsgBox "Wann erledigt?"
Target = ""
Target.Offset(, 1).Select
Else
Target.EntireRow.Copy Worksheets("Abgeschlossene Aufgaben").Rows(loLetzte1)
Target.EntireRow.Delete shift:=xlUp
Worksheets("Abgeschlossene Aufgaben").Cells(loLetzte1, 7) = ActiveSheet.Name
Worksheets("Abgeschlossene Aufgaben").Cells(loLetzte1, 4).Copy
Worksheets("Abgeschlossene Aufgaben").Cells(loLetzte1, 7).PasteSpecial  _
xlFormats
Application.CutCopyMode = False
End If
End If
End If
End If
End Sub
Sobald ich in Spalte 5 "Erledigt" reinschreibe und in Spalte 6 das Datum, wann es erledigt wurde, drin steht, wird die komplette Zeile in das Arbeitsblatt "Abgeschlossene Aufgaben" kopiert.
Im Arbeitsblatt "Abgeschlossene Aufgaben" wird in Spalte 7 der Name des Arbeitsblattes angezeigt, aus dem die gesamte Zeile kopiert wurde. Außerdem ist dort folgender Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim loLetzte As Long
Dim strBlattname As String
If Target.Count > 1 Then Exit Sub
If Target.Column = 5 Then
If Target.Row > 1 Then
If Target.Value "Erledigt" Then
strBlattname = Worksheets("Abgeschlossene Aufgaben").Cells(Target.Row, 7)
loLetzte = Worksheets(strBlattname).Cells(Rows.Count, 1).End(xlUp).Row + 1
Target.EntireRow.Copy Worksheets(strBlattname).Rows(loLetzte)
Worksheets(strBlattname).Cells(loLetzte, 5).ClearContents
Worksheets(strBlattname).Cells(loLetzte, 6).ClearContents
Worksheets(strBlattname).Cells(loLetzte, 7).Delete
Target.EntireRow.Delete shift:=xlUp
End If
End If
End If
End Sub
Sobald ich das "Erledigt" in Spalte 5 lösche, kopiert er die Zeile in das Ursprungsblatt zurück. Das funktioniert soweit gut, jedoch habe ich Schwierigkeiten, die zurückkopierte Zeile in dem Ursprungsblatt zu finden.´Gibt es eine Möglichkeit, dass beim Zurückkopieren der Zeile aus "Abgeschlossene Aufgabe", diese in dem Ursprungsblatt kenntlich gemacht wird? Zum Beispiel, dass der Cursor automatisch in der Zeile landet, wohin die Zeile kopiert wurde, oder die ganze Zeile gelb markiert wird?
Vielen Dank für eure Hilfe.
Gruß
Paul

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

Betreff
Datum
Anwender
Anzeige
AW: Zurückkopieren einer Zeile in das Ursprungsblatt
09.08.2017 15:20:48
Robert
Hallo Paul,
versuche mal folgende zwei Zeilen am Schluss des Codes in Arbeitsblatt "Abgeschlossene Aufgaben" einzufügen:
Worksheets(strBlattname).Activate
Worksheets(strBlattname).Cells(oLetzte, 1).Select

Der Cursor müsste dann in Spalte A in der eingefügten Zeile stehen.
Mit
Worksheets(strBlattname).Rows(loLetzte).Interior.Color = 65535

erhält die eingefügte Zeile einen gelben Hintergrund.
Gruß
Robert
AW: Kopieren einer Zeile in das Ursprungsblatt
09.08.2017 15:36:04
Paul
Hallo Robert,
wow, danke! Vielen Dank für die simplen Lösungen, funktionieren beide. Mir ist gerade beim Testen eine weitere Sache aufgefallen, bei der Du mir vlt. behilflich sein könntest.
Ich habe folgendes Code unter "DieseArbeitsmappe" untergebracht:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
benutzer = Application.UserName
Datum = Format(Now, "dd.mm.yyyy")
Uhrzeit = Format(Now, "HH:MM")
If Not ActiveWorkbook.Saved Then
Range("H2").Value = "Zuletzt geändert von: " & benutzer
Range("H3").Value = "am: " & Datum
Range("H4").Value = "um: " & Uhrzeit & " Uhr"
End If
End Sub
Zeigt mir an, wann und welcher Benutzer gespeichert hat. Wenn ich nun in meinen Arbeitsblättern die Zeilen kopiere, dann kopiert er logischerweise gem.
Target.EntireRow.Copy Worksheets("Abgeschlossene Aufgaben").Rows(loLetzte1)
Target.EntireRow.Delete shift:=xlUp
die komplette Zeile in das Arbeitsblatt "Abgeschlossene Aufgaben" nebst der Spalten H, wo das Datum und der Benutzer drin stehen. Das soll er natürlich nicht machen und ich habe den Code nun dahingehend geändert:
Target.EntireRow.Range("A1:F1").Copy Worksheets("Abgeschlossene Aufgaben").Rows(loLetzte1)
Target.EntireRow.Range("A1:F1").Delete shift:=xlUp
Dies scheint soweit zu funktionieren, aber wie muss ich es in "Abgeschlossene Aufgaben" ändern, damit er dort auch nur die von A bis F zurückkopiert? Also hier:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim loLetzte As Long
Dim strBlattname As String
If Target.Count > 1 Then Exit Sub
If Target.Column = 5 Then
If Target.Row > 1 Then
If Target.Value  "Erledigt" Then
strBlattname = Worksheets("Abgeschlossene Aufgaben").Cells(Target.Row, 7)
loLetzte = Worksheets(strBlattname).Cells(Rows.Count, 1).End(xlUp).Row + 1
Target.EntireRow.Copy Worksheets(strBlattname).Rows(loLetzte)
Worksheets(strBlattname).Cells(loLetzte, 5).ClearContents
Worksheets(strBlattname).Cells(loLetzte, 6).ClearContents
Worksheets(strBlattname).Cells(loLetzte, 7).Delete
Worksheets(strBlattname).Rows(loLetzte).Interior.Color = 65535
Target.EntireRow.Delete shift:=xlUp
End If
End If
End If
End Sub
Danke im Voraus.
Gruß
Paul
Anzeige
AW: Kopieren einer Zeile in das Ursprungsblatt
09.08.2017 15:55:21
Robert
Hallo Paul,
ändere die Zeile mit dem Code zum kopieren wie folgt
Range("A" & Target.Row & ":F" & Target.Row).Copy Worksheets(strBlattname).Range("A" & loLetzte)
Gruß
Robert
AW: Kopieren einer Zeile in das Ursprungsblatt
09.08.2017 16:05:41
Paul
Hallo Robert,
vielen lieben Dank!
Gruß
Paul

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige