Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1836to1840
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

"Worksheet_Change" nicht immer ausführen

"Worksheet_Change" nicht immer ausführen
27.06.2021 22:31:29
swammcrusher
Guten Abend Excel und VBA Profis,
mit Hilfe des Internets und ein bisschen rumprobieren, habe ich mir ein "Worksheet_Change" Code zusammengebastelt. Kurz zusammengefasst, wird der Wert der aktiven Zelle im Bereich von C2:C8 nach Eingabe um 8000000 erhöht. Die Funktion funktioniert schon einwandfrei, sobald der Wert in der Zelle >0 ist wird die "Addition" durchgeführt.
Wenn ich aber einen Wert per Copy und Paste in diese Zellen kopiere, wird dieser auch mit meinem Wert "X" addiert. Das ist ja soweit richtig, dafür ist ja das "Worksheet_Change" da.
Gibt es aber eine Möglichkeit, wie ich dieses "Worksheet_Change" für Copy und Paste Sachen unterbinden kann?
>> Sprich wenn Werte über Copy und Paste in die Zellen eingefügt werden, soll nicht Addiert werden. Bzw. wenn "manuell" ein Wert eingetippt wird dann soll es schon geschehen
Ich hoffe ich konnte mein anliegen einigermaßen verständlich beschreiben. Ich würde mich freuen wenn jemand von euch einen Idee hat, wie ich diese "Ausnahme" oder "Funktion" da mit unterbekommen könnte. :)
Anbei den Code den ich bisher habe.

Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo CleanExit
Dim SX_03 As Range
Set SX_03 = Range("C2:C8")
Application.EnableEvents = True
If Not Application.Intersect(SX_03, Range(Target.Address)) Is Nothing Then
If Range(Target.Address).Value = 0 Then
GoTo CleanExit
Else
Application.EnableEvents = False
Range(Target.Address).Value = Range(Target.Address).Value + 8000000
Application.EnableEvents = True
End If
End If
CleanExit:
Application.EnableEvents = True
On Error GoTo 0
End Sub

Vorab schonmal vielen Dank!
Mit freundlichen Grüßen
Marco

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: "Worksheet_Change" nicht immer ausführen
28.06.2021 05:49:19
Hajo_Zi
Hallo Marco,

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim SX_03 As Range
Set SX_03 = Range("C2:C8")
Application.EnableEvents = True
If Application.CutCopyMode = False Then
If Not Application.Intersect(SX_03, Range(Target.Address)) Is Nothing Then
If Range(Target.Address).Value  0 Then
Application.EnableEvents = False
Target = Target + 8000000
Application.EnableEvents = True
End If
End If
End If
Application.EnableEvents = True
End Sub
GrußformelHomepage
Anzeige
AW: "Worksheet_Change" nicht immer ausführen
28.06.2021 05:59:24
Hajo_Zi
noch paar bereinigungen

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim SX_03 As Range
Set SX_03 = Range("C2:C8")
If Application.CutCopyMode = False Then
If Not Application.Intersect(SX_03, Target) Is Nothing Then
If Range(Target.Address).Value  0 Then
Application.EnableEvents = False
Target = Target + 8000000
Application.EnableEvents = True
End If
End If
End If
End Sub
Gruß Hajo
AW: "Worksheet_Change" nicht immer ausführen
28.06.2021 20:34:10
swammcrusher
Hallo Hjao,
vielen Dank für deine schnelle Hilfe! Deine Optimierung und Ergänzung funktioniert einwandfrei. Das muss ich mir merken, dass ich den .CutCopyMode für sowas verwenden kann.
Danke!!
Mit freundlichen Grüßen
Marco
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige