Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1408to1412
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: alter Zellinhalt

Worksheet_Change: alter Zellinhalt
26.02.2015 15:28:01
Paul
Moin!
Ich habe folgendes Grundproblem:
Bei der Änderung des Wertes einer Zelle, soll automatisch ein Makro ausgefführt werden (Worksheet_Change). Brauche aber das Verhâltnis aus alten und neuem Wert, der in der Targetzelle steht um mit dem Verhâltnis dann andere Wert anzupassen.
zum Beispiel:
https://www.herber.de/bbs/user/96016.xlsx
TargetZelle: C2
Wenn ich den Wert zum Beispiel verdoppele auf 60% soll sich automatisch auch der Wert fûr Mar psy (Zelle C5) von 15% auf 30% verdoppeln.
Danke fûr die Hilfe.
lg Paul

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Worksheet_Change: alter Zellinhalt
26.02.2015 15:38:15
EtoPHG
Hallo Paul,
Das ins Tabellenblatt:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim tmp
Dim Neu As Double, Alt As Double
If Target.Address(0, 0) = "C2" Then
Application.EnableEvents = False
Neu = Val(Target)
Application.Undo
Alt = Val(Target)
Range("C5") = Val(Range("C5")) * (Neu / Alt)
Target = Neu
Application.EnableEvents = True
End If
End Sub
Gruess Hansueli

AW: Worksheet_Change: alter Zellinhalt
26.02.2015 16:06:12
Paul
Danke, beinhaltet allerdings noch einen Fehler.
Irgendwas passt nicht bei Zeile "Range("C5") = Val(Range("C5")) * (Neu / Alt)"
Da kommt immer einer Fehlermeldung.
bitte um hilfe

Anzeige
AW: Worksheet_Change: alter Zellinhalt
26.02.2015 16:37:52
hary
Moin
Versuch's mal so.
 Dim tmp
Dim Neu As Double, Alt As Double
If Target.Address(0, 0) = "C2" Then
Application.EnableEvents = False
Neu = Target
Application.Undo
Alt = Target
Range("C5") = Range("C5") * (Neu / Alt)
Target = Neu
Application.EnableEvents = True
End If

gruss hary

AW: Worksheet_Change: alter Zellinhalt
27.02.2015 09:06:00
EtoPHG
Hallo Paul,
Meinen Code habe ich an deinem Beispiel ohne Fehlermeldungen getestet.
Bemerkungen wie : Da kommt immer einer Fehlermeldung. sind absolut sinnfrei, da sie keinerlei Hinweise auf den Typ des Fehlers geben. Also sag in Zukunft, wie die Meldung lautet.
Hier eine Version, die überprüft ob Quelle und Ziel numerisch sind:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Neu As Double, Alt As Double
If Target.Address(0, 0) = "C2" Then
If Not IsNumeric(Target) Then
MsgBox "Ziel ist nicht numerisch!", vbCritical, "Abbruch"
Exit Sub
End If
Application.EnableEvents = False
Neu = Target
Application.Undo
If Not IsNumeric(Target) Then
MsgBox "Quelle ist nicht numerisch!", vbCritical, "Abbruch"
Application.EnableEvents = True
Exit Sub
End If
Alt = Target
Range("C5") = Val(Range("C5")) * (Neu / Alt)
Target = Neu
Application.EnableEvents = True
End If
End Sub
Gruess Hansueli

Anzeige
AW: Fehlemeldung im anderen Code
27.02.2015 10:51:53
hary
Moin
Da kommt:
LfzFehler 6
Überlauf
gruss hary

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige