Fester Wert abziehen
#1
Hallo zusammen,

ich möchte in einer Spalte einen Wert eintragen. Dieser Wert soll dann direkt mit einer anderen Zahl subtrahiert werden. Wie funktioniert das am besten??

Beispiel: Ich gebe in Spalte F12 2000 ein und dieser Wert wird direkt minus 116 gerechnet. Sprich wenn ich in der Spalte 2000 eingebe erscheint in der Spalte direkt 1884
Top
#2
Hi,

das wird wohl, wenn überhaupt, nur mit einem Makro zu lösen sein.

Aber wieso trägst du dann nicht gleich den richtigen Wert ein?
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Top
#3
Das war ja wie gesagt nur ein Beispiel.

Ich möchte nicht extra jedesmal rechnen, desewegen die Frage. Ich könnte das zwar auch lösen indem ich in einer extra Spalte sage "F12= Zahl-116" aber ich dachte man kann das auch direkt eingeben.
Top
#4
Das solltest du auch tun. Nur so könntest du eventuelle Tippfehler per se feststellen.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Top
#5
Hallo,

keine Ahnung wo ich diesen Code gefunden habe.

Der Code gehört in das Modul des entsprechenden Tabellenblatts.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)

'Hier den Bereich anpassen
    Set Target = Application.Intersect(Target, Range("A1:C10"))

    'Wenn nicht innerhalb des Bereiches wird die Prozedur verlassen
    If Target Is Nothing Then Exit Sub

    'Errorhandling aktivieren, um im Falle eines Fehlers die Ereignisse
    'am Ende wieder zu aktivieren
    On Error GoTo ErrorHandler

    'Ereignisse ausschalten, um das Change-Ereignis nicht erneut auszulösen
    Application.EnableEvents = False

    'Eine Range-Variable deklarieren
    Dim rngZelle As Range

    'jede Zelle innerhalb des Target-Bereiches durchlaufen
    For Each rngZelle In Target

  
    'Dein Code zur Bearbeitung der Zelle
    Target.Value = Target.Value - 0.3

    Next rngZelle
ErrorHandler:
    Application.EnableEvents = True   'Ereignisse wieder einschalten
End Sub

Der Code überwacht den Bereich von A1 bis C10 und zieht, in diesem Fall, immer den Wert von 0,3 ab.

Diese Werte müsstest du entsprechend anpassen.

Du kannst aber, wie bereits angemerkt, nicht so einfach die gemachten Eingaben nachvollziehen und man könnte Tippfehler schnell übersehen.
Gruß
Peter
Top
#6
Erst mal danke für die Hilfe aber leider funktioniert das nicht!!??

Muss ich beim speichern etc. noch auf irgendetwas achten??
Top
#7
Hallo,

doch, das funktioniert wie du an der angehängten Beispielsdatei sehen kannst.

Ich habe jetzt den Bereich der überwacht wird auf A1 bis A100 eingegrenzt und den von der gewünschten Betrag der abgezogen werden soll (116) berücksichtigt.


Angehängte Dateien
.xlsm   CEF_1.xlsm (Größe: 16,37 KB / Downloads: 2)
Gruß
Peter
Top
#8
Hat geklappt, vielen vielen Dank!!!

Ich hab aber direkt das nächste Problem Huh . Wenn ich für eine andere Spalte neue Abziehmasse eintrage bzw. ein Neues Makro erstellen möchte. Ich hab jetzt probiert das vorhandene zu kopieren und einfach Spalte und Maß abgeändert. Funktioniert aber nicht. Was kann ich da denn machen???
Top
#9
Hallöchen,

Worksheet_Change gibt es pro Blatt nur 1x. Einfach kopieren wird da also für ein Blatt nix. Entweder Du kopierst es auf ein anderes Blatt, oder der Code braucht eine Fallunterscheidung. Das könnte man unter Beibehaltung des Funktionsprinzips in etwa so lösen:

Code:
...
    Set Target = Application.Intersect(Target, Range("A1:C10"))

    'Wenn nicht innerhalb des Bereiches wird die Prozedur verlassen
    '--> noch nicht - erst mal in den anderen Bereich schauen! 
   If Target Is Nothing Then
            Set Target = Application.Intersect(Target, Range("D1:F10"))
            'und wenn im anderen Bereich auch nichts ist, dann verlassen
            If Target Is Nothing Then  Exit Sub
            '... Code für D1:F10
     Else
            '... Code für A1:C10
    End IF
...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste