Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1648to1652
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 Event

Worksheet-Change Event
10.10.2018 09:08:57
JohnM.
Hallo liebe Community,
am 21.09. habe ich schon einmal dieses Thema aufgemacht. Leider kann ich im ursprünglichen Thread gerade nichts ergänzen. Deshalb leider der neue Thread:
Damals habe ich folgenden Sachverhalt beschrieben:
"In den Zellen A1 bis A10 können jeweils Kontonummern eingetragen werden und die dazugehörigen Geldbeträge werden dann von A11 bis A21 wiedergegeben. Ich möchte nun erreichen, dass sobald eine Kontonummer eingegeben wird, im unteren Bereich ab A11 der Wert zunächst auf "0" gesetzt wird, da der Wert im Anschluss geändert werden soll. Sprich wenn ich in A1 eine Kontonummer eingebe, soll in A11 "0" erscheinen und wenn in A2 eine Kontonummer eingegeben wird, soll in A12 "0" erscheinen und so weiter.
Im Anschluss soll der Benutzer in der Lage sein, die "0" problemlos zu ändern, ohne dass dabei ein Loop entsteht."

Hiebei habe ich folgende Code implementiert, der auch super geholfen hat:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rCell As Range
If Not Intersect(Target, Range("A1:A10")) Is Nothing Then
Application.EnableEvents = False
For Each rCell In Intersect(Target, Range("A1:A10"))
rCell.Offset(10) = 0
Next rCell
Application.EnableEvents = True
End If
End Sub
-> Jetzt müsste jedoch noch eine Kleinigkeit ergänzt werden. Und zwar kann es vorkommen, dass Benutzer erst Beträge in die Zellen ab A11 eingeben und dann die dazugehörigen Kontonummern ab A1 eingeben. Im Falle der Eingabe der Kontonummer springt der Geldbetrag logischerweise aufgrund des Change_Events wieder auf 0, obwohl der Nutzer den richtigen Betrag eingegeben hat.
Gibt es eventuell eine Möglichkeit, dass in den Fällen, bei denen erst der Geldbetrag eingegeben wird und dann die Kontonummer, der Geldbetrag nicht auf Null springt, sondern den eingegebenen Geldbetrag beibehält?
Vielen lieben Dank im Voraus für eure Mühe!
Liebe Grüße
John

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Worksheet-Change Event
10.10.2018 09:40:22
hary
Moin
Eine Moeglichkeit.
'--wenn Zelle ist leer dann Null sonst Wert der Zelle
rCell.Offset(10) = IIf(rCell.Offset(10) = "", 0, rCell.Offset(10))

gruss hary
AW: Worksheet-Change Event
10.10.2018 11:00:17
JohnM.
Hallo!
Vielen Dank,
aber wo genau würde ich die Code-Passe im Code einfügen?
Liebe Grüße
AW: Worksheet-Change Event
10.10.2018 11:18:34
hary
Moin
In deinem Code diese Zeile:
 rCell.Offset(10) = 0

ersetzen durch:
rCell.Offset(10) = IIf(rCell.Offset(10) = "", 0, rCell.Offset(10))

gruss hary
AW: Worksheet-Change Event
10.10.2018 11:38:26
JohnM.
Hallo!
Es klappt wunderbar, herzlichen Dank, dass du das so schnell lösen konntest, Respekt!
:)
Liebe Grüße
Anzeige
AW: Worksheet-Change Event
16.10.2018 20:55:53
John
Hallo liebe Community :)
Nur noch ne kleine Ergänzungsfrage:
Der Code funktioniert mit offset prima.
Nun habe ich aber auch den Fall, bei dem nur eine Kontonummer (C1) und nur ein dazugehöriger Betrag (C2) einzugeben ist. Hier besteht dann auch das Problem, dass wenn der User erst den Betrag eingibt und dann die Kontonummer, der Betrag wieder auf Null springt.
Hier ist meine aktuelle Code-Passage:
If Not Intersect(Target, Range("C1")) Is Nothing Then
Application.EnableEvents=False
For Each rcell In Intersect(Target, Range("C1"))
Range("C2").Select
Range("C2").Value = 0
Next rcell
Application.EnableEvents = True
Exit Sub

Diese Code-Passage würde ich gerne so anpassen, dass auch erst der Betrag eingegeben werden kann und dann die Kontonummer, ohne dass der Betrag wieder auf Null springt.
Vielen Dank im Voraus!
Liebe Grüße
John
Anzeige
AW: Worksheet-Change Event
16.10.2018 23:18:34
Gerd
Moi John!
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C1:C2")) Is Nothing Then
If Target.Address(0, 0, xlA1) = "C1" Then
If IsEmpty(Range("C2")) Then Range("C2").Select
ElseIf Target.Address(0, 0, xlA1) = "C2" Then
If IsEmpty(Range("C1")) Then Range("C1").Select
End If
End If
End Sub

Gruß Gerd
AW: Worksheet-Change Event
17.10.2018 20:12:37
John
Hallo Gerd!
1A, vielen herzlichen Dank!

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige