Anzeige
Archiv - Navigation
1752to1756
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

Ergebnis statt Formel

Ergebnis statt Formel
18.04.2020 08:30:43
Luschi

Hallo zusammen,
ich habe folgenden Code

Private Sub Worksheet_Change(ByVal Target As Range)
Dim a As Variant
Dim b As Variant
Dim c As Variant
If Not Intersect(Target, Range("To")) Is Nothing Then
a = Target.Value                 'Zelle die geändert wurde (To)
b = Target.Offset(0, -1).Value   'Zelle links neben a (From)
c = Target.Offset(0, -2).Value   'Zelle links neben b (Day)
If b = "" Then
Target.Offset(0, -2).Value = ""
Else
If c = "" Then Target.Offset(0, -2).Formula = "=(RC[2]-RC[1])*24"   'Zelle (Day)
End If
End If
End Sub
Gehen wir einfach davon aus ich habe drei zellen A1 B1 und C1
wenn ich C1 (Range"To") eine Änderung mache und in B1 steht etwas drin dann würde ich gern das Ergebniss und nicht die Formel in A1 schreiben wollen.
Kann mir jemand verraten wie ich diesen Teil
If c = "" Then Target.Offset(0, -2).Formula = "=(RC[2]-RC[1])*24" 

abändern muss das ich das Ergebnis in A1 angezeigt bekomme
Danke und Gruß
Sven

Betrifft: AW: Ergebnis statt Formel
Hallo Sven,
Target.Offset(0, -2) = Range("A1")

Betrifft: AW: Ergebnis statt Formel

Hallo Hajo,
wenn ich das Richtig verstehe würde da jetzt in A1 nichts drin stehen oder ?
Denn ich schreibe jetzt

Target.Offset(0, -2) = Range("A1")
in A1 den Wert von A1 richtig?
 If c = "" Then Target.Offset(0, -2).Formula = "=(RC[2]-RC[1])*24" 
Excel schreibt mir wenn A1 leer ist die Formel =(C1-B1)*24 in A1 ich würde dort aber gern das Ergebnis dieser Formel anzeigen lassen.
Ich späteren Worksheet habe ich einen Namesbereich von "To"
Wenn sich in "To" ein Zelle geändert hat wird geschaut ob die Zelle links nicht leer ist und eine Zelle weiter links soll dann das Ergebniss aus der (geänderten Zelle - die Zelle links daneben )* 24 drin stehen.
Hoffe es ist so verständlicher.
Danke und Gruß
Sven
Betrifft: AW: Ergebnis statt Formel

bei mir wir der Inhalt von A1 angezeigt.
Zu Deiner Datei kann ich nichts schreiben, was wohl daran liegt das ich nicht auf fremde Rechner schaue.Ich baue keine Datei nach.
Sollte die Datei verlinkt werden?
Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, kannst du diese Daten
http://www.ms-office-forum.de/forum/showthread.php?t=322895
änderrn.
Das ist nur meine Meinung zu dem Thema.

Betrifft: AW: Ergebnis statt Formel
Moin
   Else
If c = "" Then
Target.Offset(0, -2).Formula = "=(RC[2]-RC[1])*24"   'Zelle (Day)
Target.Offset(0, -2) = Target.Offset(0, -2).Value '--wandelt Formel in Wert
End If
End If

gruss hary
Betrifft: AW: Ergebnis statt Formel
Hallo Sven,
ich würde das so machen:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim a As Variant, b As Variant, c As Variant
If Not Intersect(Target, Range("To")) Is Nothing Then
a = Target.Value                 'Zelle die ge?ndert wurde (To)
b = Target.Offset(0, -1).Value   'Zelle links neben a (From)
c = Target.Offset(0, -2).Value   'Zelle links neben b (Day)
Application.EnableEvents0false
If b = "" Then
Target.Offset(0, -2).Value = ""
Else
If c = "" Then
With Target.Offset(0, -2)
'Formel in Zelle eintragen
.Formula = "=(RC[2]-RC[1])*24"   'Zelle (Day)
'Formel ln Zelle berechnen
.Calculate
'Formel gegen Formelwert ersetzen
.Value = .Value
End If
End If
Application.EnableEvents = True
End If
End Sub
Gruß von Luschi
aus klein-Paris

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

Betreff
Datum
Anwender
Anzeige
AW: Ergebnis statt Formel
18.04.2020 08:30:43
Luschi
Hallo Sven,
Target.Offset(0, -2) = Range("A1")

Betrifft: AW: Ergebnis statt Formel

Hallo Hajo,
wenn ich das Richtig verstehe würde da jetzt in A1 nichts drin stehen oder ?
Denn ich schreibe jetzt

Target.Offset(0, -2) = Range("A1")
in A1 den Wert von A1 richtig?
 If c = "" Then Target.Offset(0, -2).Formula = "=(RC[2]-RC[1])*24" 
Excel schreibt mir wenn A1 leer ist die Formel =(C1-B1)*24 in A1 ich würde dort aber gern das Ergebnis dieser Formel anzeigen lassen.
Ich späteren Worksheet habe ich einen Namesbereich von "To"
Wenn sich in "To" ein Zelle geändert hat wird geschaut ob die Zelle links nicht leer ist und eine Zelle weiter links soll dann das Ergebniss aus der (geänderten Zelle - die Zelle links daneben )* 24 drin stehen.
Hoffe es ist so verständlicher.
Danke und Gruß
Sven
Betrifft: AW: Ergebnis statt Formel

bei mir wir der Inhalt von A1 angezeigt.
Zu Deiner Datei kann ich nichts schreiben, was wohl daran liegt das ich nicht auf fremde Rechner schaue.Ich baue keine Datei nach.
Sollte die Datei verlinkt werden?
Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, kannst du diese Daten
http://www.ms-office-forum.de/forum/showthread.php?t=322895
änderrn.
Das ist nur meine Meinung zu dem Thema.

Betrifft: AW: Ergebnis statt Formel
Moin
   Else
If c = "" Then
Target.Offset(0, -2).Formula = "=(RC[2]-RC[1])*24"   'Zelle (Day)
Target.Offset(0, -2) = Target.Offset(0, -2).Value '--wandelt Formel in Wert
End If
End If

gruss hary
Betrifft: AW: Ergebnis statt Formel
Hallo Sven,
ich würde das so machen:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim a As Variant, b As Variant, c As Variant
If Not Intersect(Target, Range("To")) Is Nothing Then
a = Target.Value                 'Zelle die ge?ndert wurde (To)
b = Target.Offset(0, -1).Value   'Zelle links neben a (From)
c = Target.Offset(0, -2).Value   'Zelle links neben b (Day)
Application.EnableEvents0false
If b = "" Then
Target.Offset(0, -2).Value = ""
Else
If c = "" Then
With Target.Offset(0, -2)
'Formel in Zelle eintragen
.Formula = "=(RC[2]-RC[1])*24"   'Zelle (Day)
'Formel ln Zelle berechnen
.Calculate
'Formel gegen Formelwert ersetzen
.Value = .Value
End If
End If
Application.EnableEvents = True
End If
End Sub
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Ergebnis statt Formel
18.04.2020 08:30:43
Luschi
Hallo Hajo,
wenn ich das Richtig verstehe würde da jetzt in A1 nichts drin stehen oder ?
Denn ich schreibe jetzt

Target.Offset(0, -2) = Range("A1")
in A1 den Wert von A1 richtig?
 If c = "" Then Target.Offset(0, -2).Formula = "=(RC[2]-RC[1])*24" 
Excel schreibt mir wenn A1 leer ist die Formel =(C1-B1)*24 in A1 ich würde dort aber gern das Ergebnis dieser Formel anzeigen lassen.
Ich späteren Worksheet habe ich einen Namesbereich von "To"
Wenn sich in "To" ein Zelle geändert hat wird geschaut ob die Zelle links nicht leer ist und eine Zelle weiter links soll dann das Ergebniss aus der (geänderten Zelle - die Zelle links daneben )* 24 drin stehen.
Hoffe es ist so verständlicher.
Danke und Gruß
Sven
Betrifft: AW: Ergebnis statt Formel

bei mir wir der Inhalt von A1 angezeigt.
Zu Deiner Datei kann ich nichts schreiben, was wohl daran liegt das ich nicht auf fremde Rechner schaue.Ich baue keine Datei nach.
Sollte die Datei verlinkt werden?
Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, kannst du diese Daten
http://www.ms-office-forum.de/forum/showthread.php?t=322895
änderrn.
Das ist nur meine Meinung zu dem Thema.

Betrifft: AW: Ergebnis statt Formel
Moin
   Else
If c = "" Then
Target.Offset(0, -2).Formula = "=(RC[2]-RC[1])*24"   'Zelle (Day)
Target.Offset(0, -2) = Target.Offset(0, -2).Value '--wandelt Formel in Wert
End If
End If

gruss hary
Betrifft: AW: Ergebnis statt Formel
Hallo Sven,
ich würde das so machen:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim a As Variant, b As Variant, c As Variant
If Not Intersect(Target, Range("To")) Is Nothing Then
a = Target.Value                 'Zelle die ge?ndert wurde (To)
b = Target.Offset(0, -1).Value   'Zelle links neben a (From)
c = Target.Offset(0, -2).Value   'Zelle links neben b (Day)
Application.EnableEvents0false
If b = "" Then
Target.Offset(0, -2).Value = ""
Else
If c = "" Then
With Target.Offset(0, -2)
'Formel in Zelle eintragen
.Formula = "=(RC[2]-RC[1])*24"   'Zelle (Day)
'Formel ln Zelle berechnen
.Calculate
'Formel gegen Formelwert ersetzen
.Value = .Value
End If
End If
Application.EnableEvents = True
End If
End Sub
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Ergebnis statt Formel
18.04.2020 08:30:43
Luschi
bei mir wir der Inhalt von A1 angezeigt.
Zu Deiner Datei kann ich nichts schreiben, was wohl daran liegt das ich nicht auf fremde Rechner schaue.Ich baue keine Datei nach.
Sollte die Datei verlinkt werden?
Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, kannst du diese Daten
http://www.ms-office-forum.de/forum/showthread.php?t=322895
änderrn.
Das ist nur meine Meinung zu dem Thema.

Betrifft: AW: Ergebnis statt Formel
Moin
   Else
If c = "" Then
Target.Offset(0, -2).Formula = "=(RC[2]-RC[1])*24"   'Zelle (Day)
Target.Offset(0, -2) = Target.Offset(0, -2).Value '--wandelt Formel in Wert
End If
End If

gruss hary
Betrifft: AW: Ergebnis statt Formel
Hallo Sven,
ich würde das so machen:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim a As Variant, b As Variant, c As Variant
If Not Intersect(Target, Range("To")) Is Nothing Then
a = Target.Value                 'Zelle die ge?ndert wurde (To)
b = Target.Offset(0, -1).Value   'Zelle links neben a (From)
c = Target.Offset(0, -2).Value   'Zelle links neben b (Day)
Application.EnableEvents0false
If b = "" Then
Target.Offset(0, -2).Value = ""
Else
If c = "" Then
With Target.Offset(0, -2)
'Formel in Zelle eintragen
.Formula = "=(RC[2]-RC[1])*24"   'Zelle (Day)
'Formel ln Zelle berechnen
.Calculate
'Formel gegen Formelwert ersetzen
.Value = .Value
End If
End If
Application.EnableEvents = True
End If
End Sub
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Ergebnis statt Formel
18.04.2020 08:30:43
Luschi
Moin
   Else
If c = "" Then
Target.Offset(0, -2).Formula = "=(RC[2]-RC[1])*24"   'Zelle (Day)
Target.Offset(0, -2) = Target.Offset(0, -2).Value '--wandelt Formel in Wert
End If
End If

gruss hary
Betrifft: AW: Ergebnis statt Formel
Hallo Sven,
ich würde das so machen:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim a As Variant, b As Variant, c As Variant
If Not Intersect(Target, Range("To")) Is Nothing Then
a = Target.Value                 'Zelle die ge?ndert wurde (To)
b = Target.Offset(0, -1).Value   'Zelle links neben a (From)
c = Target.Offset(0, -2).Value   'Zelle links neben b (Day)
Application.EnableEvents0false
If b = "" Then
Target.Offset(0, -2).Value = ""
Else
If c = "" Then
With Target.Offset(0, -2)
'Formel in Zelle eintragen
.Formula = "=(RC[2]-RC[1])*24"   'Zelle (Day)
'Formel ln Zelle berechnen
.Calculate
'Formel gegen Formelwert ersetzen
.Value = .Value
End If
End If
Application.EnableEvents = True
End If
End Sub
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Ergebnis statt Formel
18.04.2020 08:30:43
Luschi
Hallo Sven,
ich würde das so machen:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim a As Variant, b As Variant, c As Variant
If Not Intersect(Target, Range("To")) Is Nothing Then
a = Target.Value                 'Zelle die ge?ndert wurde (To)
b = Target.Offset(0, -1).Value   'Zelle links neben a (From)
c = Target.Offset(0, -2).Value   'Zelle links neben b (Day)
Application.EnableEvents0false
If b = "" Then
Target.Offset(0, -2).Value = ""
Else
If c = "" Then
With Target.Offset(0, -2)
'Formel in Zelle eintragen
.Formula = "=(RC[2]-RC[1])*24"   'Zelle (Day)
'Formel ln Zelle berechnen
.Calculate
'Formel gegen Formelwert ersetzen
.Value = .Value
End If
End If
Application.EnableEvents = True
End If
End Sub
Gruß von Luschi
aus klein-Paris
Anzeige

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige