PDA

Vollständige Version anzeigen : Makros mit Enter starten


ba_ha
28.03.2012, 15:13
Hallo,

Vorerst mal zur Info ich bin VBA Anfängerin.

in H23 wird ein Wert eingegeben, der für die weitere Berechnugn ausschlaggebend ist.

Ich habe es geschafft, wenn ich auf einen Button klicke den ich eingefügt habe, die gewünschte Berechnung zu starten. Das funktioniert ganz gut.
Es wäre aber viel benutzerfreundlicher wenn man einfach den gewünschten Wert in H23 eingibt, mit Enter bestätigt und somit das bereits vorhandene Makro aktiviert.

Folgeder Code ist im Makro hinterlegt:

Sub neuberechnen()
'
' neuberechnen Makro
' Makro am 28.03.2012 von bar aufgezeichnet
'

'
Range("H21").Select
ActiveCell.FormulaR1C1 = "=R[2]C/(100-RC[-1])*RC[-1]"
Range("H21").Select
ActiveCell.FormulaR1C1 = "=-R[2]C/(100-RC[-1])*RC[-1]"
Range("H20").Select
ActiveCell.FormulaR1C1 = "=R[2]C-R[1]C"
Range("H20").Select
ActiveCell.FormulaR1C1 = "=R[3]C-R[1]C"
Range("H19").Select
ActiveCell.FormulaR1C1 = "=R[1]C/(100+RC[-1])*RC[-1]"
Range("H18").Select
ActiveCell.FormulaR1C1 = "=R[2]C-R[1]C"
Range("H17").Select
ActiveCell.FormulaR1C1 = "=R[-1]C-R[1]C"
Range("G17").Select
ActiveCell.FormulaR1C1 = "=100/R[-1]C[1]*RC[1]"
Range("G17").Select
Selection.NumberFormat = "0.0"" %"""
Selection.NumberFormat = "0.00"" %"""
Selection.NumberFormat = "0.000"" %"""
End Sub

Ich hoffe ich habe mich verständlich ausgedrückt.

Danke im Voraus
barbara

ba_ha
28.03.2012, 15:17
http://C:\Dokumente und Einstellungen\auer\Desktop\Unbekannt-1 Kopie.jpg

leider klappt es nicht mit einem Bild

mücke
28.03.2012, 15:22
Moin Barbara,

für die Berechnung brauchst Du doch kein Makro, trage die Formeln einfach in die entsprechenden Zellen ein und bei Eingabe in H23 werden diese doch automatisch NEU berechnet ;)
... warum also ein Makro?

ba_ha
29.03.2012, 05:50
Weil in den Zellen die neu berechnet werden sollen schon eine andere Berechnung hinterlegt ist und die Makro ist dazu da, dass die Berechnung auf ein anderes Schema umgestellt werden soll, wenn man es betätigt.

hary
29.03.2012, 06:49
Hallo
Code kommt in den Code unter das Tabellenblatt.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Address = "$H$23" Then neuberechnen
End Sub
gruss hary

mücke
29.03.2012, 07:48
Moin Barbara,

OK, dann evtl. so:
Code kommt in den Code des Tabellenblatts.

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Address = "$H$23" Then
Range("G17").Formula = "=100/H16*H17"
Range("H17").Formula = "=H16-H18"
Range("H18").Formula = "=H20-H19"
Range("H19").Formula = "=H20/(100+G19)*G19"
Range("H20").Formula = "=H23-H21"
Range("H21").Formula = "=-H23/(100-G21)*G21"
End If
End Sub

ba_ha
29.03.2012, 13:31
danke ihr seid einfach toll

eine kleine sache ist da jetzt noch.

kann ich noch hinterlege, dass der code nur dann gilt wenn der wert in H23 mindestens 0,01 beträgt?

hary
29.03.2012, 13:37
Hallo
If Target.Address = "$H$23" and Target >= 0.01
sollte es tun.
gruss hary

ba_ha
30.03.2012, 07:55
danke für eure Hilfe :)