VBA Code für Zuschläge

Bild

Betrifft: VBA Code für Zuschläge
von: Sebastian
Geschrieben am: 03.06.2015 09:20:11

Hallo,
ich besuche dieses Forum schon seit einiger Zeit als Gast um vor allem im VBA Bereich Tipps und Hilfestellungen für meine Makros zu bekommen. Allerdings habe ich nun ein Problem auf das ich seit 1 Stunde googlen immer noch keine akzeptable Lösung gefunden habe, dass hat mich dazu bewegt mich hier anzumelden und ein eigenes Thema zu erstellen^^
Im Grunde geht es darum das ich Zuschläge berechnen will.
Es gibt also ein Feld "A1" welches beim Öffnen der Tabelle leer sein sollte.
In "A1" wird nun eine Zahl eingegeben welche auf den Wert von "B1" addiert wird.
Beispiel:

Private Sub Worksheet_Change(ByVal Target As Range)
        If Target.Address = "$A1" Then
        Range("B1").Value = Range("B1").Value + Target.Value
    End If
End Sub
Mein Problem ist aber, sobald ich "A1" ändere wird immer wieder auf den bereits vorher berechneten Wert addiert, dass würde ich gerne umgehen.
Nehme ich z.B an "A1" = 5, "B2" = 100, müsste logischerweise durch das Makro
"B2" = 105 ergeben, wenn ich "A1" jetzt ändere muss "B2" erst wieder 100 sein und dann der neue Zuschlag drauf gerechnet werden.
Ich würde mich über jegliche Hilfe bezüglich dieses Problems freuen!^^
Mfg
Sebastian

Bild

Betrifft: AW: VBA Code für Zuschläge
von: UweD
Geschrieben am: 03.06.2015 09:26:19
Hallo
Warum Makro??

Tabelle2

 AB
110110

verwendete Formeln
Zelle Formel Bereich N/A
B1=100+A1  
http://excel-inn.de/dateien/vba_beispiele/tabellenanzeige_in_html_addin.zip
http://Hajo-Excel.de/tools.htm
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
Add-In-Version 19.03 einschl. 64 Bit


Gruß UweD

Bild

Betrifft: AW: VBA Code für Zuschläge
von: Sebastian
Geschrieben am: 03.06.2015 09:46:48
Ich war wieder nicht präzise genug, entschuldige.
"B1" ist ein Durchmesser einer Kurbelwelle, dieser muss manuell eingegeben werden, das Feld darf also keine Formel enthalten.
"A1" ist der Zuschlag der auf den Wert von B1 addiert werden muss. A1 darf immer nur auf den manuell eingegeben Wert addiert werden, nicht auf den erhöhten Grundwert, heißt:
Beispiel:
"A1" = 5
"B1" = 100
durch Makro ergibt sich "B1" = "B1" + "A1" = 105
Änderung des Wertes in "A1"
"A1" (neu) = 10
"B1" = 105 das darf nicht passieren, hier das Makro auch wieder mit 100 rechnen sonst wird
bei erneuten Eingaben immer weiter addiert was leider falsch ist.

Bild

Betrifft: AW: VBA Code für Zuschläge
von: Klexy
Geschrieben am: 03.06.2015 09:55:29
Dann so:

Range("B1").Value = 100 + Target.Value


Bild

Betrifft: AW: VBA Code für Zuschläge
von: Sebastian
Geschrieben am: 03.06.2015 10:01:26
Vielen Dank,
das ist genau was ich suchte, wusste nicht das man auch einfach Zahlen zur Berechnung in VBA eingeben kann, dachte die müsste man vorher als irgendetwas definieren...^^

Bild

Betrifft: AW: VBA Code für Zuschläge
von: Klexy
Geschrieben am: 03.06.2015 10:09:23
Du kannst die Zahl auch in einer Variablen definieren. Wenn du aber immer 100 als Ausgangswert hast, ist das überflüssige Eleganz.

Bild

Betrifft: AW: VBA Code für Zuschläge
von: Rudi Maintaire
Geschrieben am: 03.06.2015 09:59:54
Hallo,
versuchs mal damit:

Private Sub Worksheet_Change(ByVal Target As Range)
  Static x As Integer
  On Error GoTo ERREXIT
  Application.EnableEvents = False
  Select Case Target.Address
    Case "$A$1"
      If x = 0 Then x = Range("B1")
      Range("B1").Value = x + Target.Value
    Case "$B$1"
      x = Target
  End Select
ERREXIT:
  Application.EnableEvents = True
End Sub

Gruß
Rudi

Bild

Betrifft: AW: VBA Code für Zuschläge
von: Sebastian
Geschrieben am: 03.06.2015 10:03:28
Der Lösungsansatz sieht auch nicht schlecht aus, vielen Dank dafür, dass kann ich verwenden sobald ich die Kalkulation an der ich arbeite ausweite und sie komplexer wird!

 Bild

Beiträge aus den Excel-Beispielen zum Thema "VBA Code für Zuschläge"