Wo liegt der Fehler, beim Speichern daten löschen und in andere Zeile übertragen
#1
Hallo VBA Experten,

wo ist beim mir der Fehler, ich möchte das ich nach den Speicher die Zeilen gelöscht werden und gleichzeitig die Daten in eine andere Zeilen kopiert werden

Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)

Worksheets("Tabelle1").Range("U16:U15000").Copy
Destination = Worksheets("Tabelle1").Range("BD16:BD15000").Paste
Worksheets("Tabelle1").Range("U16:U15000, V16:V15000").ClearContents

End Sub
Danke
Top
#2
Hi,

Zitat:wo ist bei mir der Fehler...

Code:
Worksheets("Tabelle1").Range("U16:U15000").Copy Destination:=Worksheets("Tabelle1").Range("BD16:BD15000")
Worksheets("Tabelle1").Range("U16:U15000, V16:V15000").ClearContents
[-] Folgende(r) 1 Nutzer sagt Danke an Mase für diesen Beitrag:
  • Pirat2015
Top
#3
Hi Mase,

Erstmals vielen Dank,

kann man auch noch so machen das er nur einmal die Zelle anschauet, weil wenn ich das zweite mal Speicher dann ist ja in Zelle U16 kein wert mehr und dann wird quasi die 0 in die BD16 übertragen. Ich möchte aber das der wert der vorher in U16 war auch dann für immer in BD16 verbleibt.

Vielen Dank
Top
#4
Dazu müssen wir eine Bedingung/mehrere Bedingungen definieren und vor dem speichern einfach abprüfen.

Beispiel:
Prüfe vor dem Speichern, ob in BD16 bereits ein Wert steht.
Wenn nein, dann speichern -> erstes Mal speichern
Wenn ja, dann nicht speichern -> zweites Mal
Aber in beiden Fällen, lösche Inhalte U16:15000, V16:V15000

Schreibe dafür:
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
  If IsEmpty(Worksheets("Tabelle1").Range("BD16")) Then
   Worksheets("Tabelle1").Range("U16:U15000").Copy Destination:=Worksheets("Tabelle1").Range("BD16:BD15000")
  End If
Worksheets("Tabelle1").Range("U16:U15000, V16:V15000").ClearContents
End Sub
[-] Folgende(r) 1 Nutzer sagt Danke an Mase für diesen Beitrag:
  • Pirat2015
Top
#5
Perfekt Vielen Dank
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste