Clever-Excel-Forum

Normale Version: Automatische Berechnung nach eingabe
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

Könnt Ihr mir vielleicht helfen.... [img]
Dateiupload bitte im Forum! So geht es: Klick mich!
]

Und zwar hab ich Excel 2010 und will dort in einem Feld eine automatische Berechnung auslösen wenn mann eine Zahl eingibt.

Zb. wenn ich in Zelle A1 150 eingebe dass er automatisch 150*10/100+150 berechnet und eben dann die 150 durch 165 in A1 ersetzt

Vielen lieben dank für eure Hilfe
Hallo,

wenn das Ergebnis tatsächlich in der gleichen Zelle wie in der Eingabezelle stehen soll, ist das nur über VBA lösbar.
Hi,

warum muss das denn in der selben Zelle passieren? Das wäre nur mit einem Makro lösbar. Wäre es nicht sinnvoller, die Berechnung in irgendeiner Nachbarzelle vorzunehmen?
Hallöchen,

nach den Antworten, was so alles anders geht, hier mal eine Lösung, wie es anders geht   :100:
Der Code gehört in das Codemodul vom Tabellenblatt der Zelle, wo er wirken soll. Wie das geht, weißt Du?

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
'Events deaktivieren
Application.EnableEvents = False
 'Wenn die Adresse $A$1 ist, dann
 If Target.Address = "$A$1" Then
   'Gehe bei Fehler zur Sprungmarke
   On Error GoTo errorhandler
   Target.Value = Target.Value / 10 + Target.Value
 'Wenn die Adresse $A$1 ist, dann
 End If
errorhandler:
'Events aktivieren
Application.EnableEvents = True
End Sub
@Andre: war bewusst ohne Lösung, da VBA ja häufig nicht erwünscht ist  :05:
@Berni,

ja, klar. In meine Antwort hätte vielleicht noch ein Satz / Hinweis dazu gepasst, dass man ja nicht umsonst antworten will, wenn das nicht gewünscht ist ... Smile Für mich war das hier nur das Naheliegende :92: Mal sehn, ob noch eine Reaktion kommt ...
Hi Hallo,

Vielen lieben Dank super hat geklappt doch kann ich noch fragen wie ich dieses VBA auf die Spalten A, C, E, G übertrage?

Mfg
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
'Events deaktivieren
Application.EnableEvents = False
'Wenn die Adresse $A$1 ist, dann
If Target.Column <= 7 And Not Target.Column Mod 2 = 0 Then
  'Gehe bei Fehler zur Sprungmarke
  On Error GoTo errorhandler
  Target.Value = Target.Value / 10 + Target.Value
'Wenn die Adresse $A$1 ist, dann
End If
errorhandler:
'Events aktivieren
Application.EnableEvents = True
End Sub