AW: upsups
24.05.2018 08:35:55
Werner
Hallo,
geht natürlich auch, dafür würde ich aber das "Doppelklick-Ereignis" verwenden. Sprich bei Doppelklick im Blatt "Kontoplan" Spalte G geht der angeklickte Datensatz wieder zurück nach "Brutto-Kontoplan".
Die Frage bzgl. dem If Not Target... hat keine Relevanz, ist nur überflüssig.
Hier nochmal beide Codes. Beide gehören natürlich ins Codemodul des jeweiligen Blattes.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim loLetzte As Long, wsZiel As Worksheet
Set wsZiel = ThisWorkbook.Worksheets("Kontoplan")
With wsZiel
loLetzte = .Cells(.Rows.Count, 3).End(xlUp).Offset(16, 0).Row
If .Cells(100, 3) = "" Then loLetzte = 100
End With
If Target.Column = 5 Then
If Target.Row > 1 Then
If Target.Count = 1 Then
If UCase(Target.Value) = "X" Then
Range(Cells(Target.Row, 1), Cells(Target.Row, 5)).Copy
wsZiel.Cells(loLetzte, 3).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Range(Cells(Target.Row, 1), Cells(Target.Row, 5)).Delete shift:=xlUp
End If
Else
MsgBox "Keine Mehrfachauswahl."
End If
End If
End If
Set wsZiel = Nothing
End Sub
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim loLetzte As Long, wsZiel As Worksheet
Set wsZiel = Worksheets("Brutto-Kontoplan")
With wsZiel
loLetzte = .Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0).Row
End With
If Target.Column = 7 Then
If Target.Row >= 100 Then
Cancel = True
Target.ClearContents
Range(Cells(Target.Row, 3), Cells(Target.Row, 7)).Copy
wsZiel.Cells(loLetzte, 1).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Range(Cells(Target.Row, 3), Cells(Target.Row, 7)).Delete shift:=xlUp
End If
End If
Set wsZiel = Nothing
End Sub
Direkt kannst du solche Makros nicht mit F8 durchsteppen. Dazu mußt du im Makro einen Haltepunkt setzen. Klick mal im Makroeditor in einer Zeile im Code in die schmale Spalte direkt links vom Codefenster. Dort erscheint dann ein brauner Punkt und die entsprechende Codezeile wird braun eingefärbt. Damit hast du in dieser Zeile einen Haltepunkt gesetzt.
Jetzt mußt du im entsprechenden Blatt das Makro durch die entsprechende Aktion starten. Es wird automatisch ins Codefenster gewechselt und das Makro bleibt an deinem Haltepunkt stehen. Jetzt kannst du den weiteren Makrolauf mit F8 durchsteppen. Anschließend den Haltepunkt wieder entfernen.
Gruß Werner