Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1216to1220
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

Werte in Spalte zu Werten anderer Spalte addieren

Werte in Spalte zu Werten anderer Spalte addieren
Dietmar
Hallo zusammen,
mit nachfolgendem Code, den ich hier in der Sammlung gefunden habe, kann ich den Wert einer _ Zelle dem bestehenden Werte einer anderen Zelle hinzurechnen.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address  "$B$1" Then Exit Sub
Application.EnableEvents = False
On Error GoTo ERRORHANDLER
Range("A1").Value = Range("A1").Value + Target.Value
ERRORHANDLER:
Application.EnableEvents = True
End Sub

Das läuft bestens.
Meine Frage:
Wie müsste ich den Code umschreiben, so dass diese Berechnung auf alle Zellen einer Spalte zutrifft.
Es sollen also die Eintragungen in einem Bereich, sagen wie B1:B10 berücksichtigt werden und den JEWEILIGN Werten in dem Bereich A1:A10 hinzugerechnet werden.
Wenn ich also in B5 einen Wert eintrage, soll der Wert der Zelle A5 um diesen Wert erhöht werden.
Vielen Dank vorab!
Viele Grüße
Dietmar aus Aachen
AW: Werte in Spalte zu Werten anderer Spalte addieren
14.06.2011 09:41:26
Rudi
Hallo,
Private Sub Worksheet_Change(ByVal Target As Range)
If Application.Intersect(Target, Range("B1:B10")) Is Nothing Then Exit Sub
Application.EnableEvents = False
On Error GoTo ERRORHANDLER
Target.Offset(, -1) = Target.Offset(, -1) + Target
ERRORHANDLER:
Application.EnableEvents = True
End Sub

Gruß
Rudi
JA!, noch eine Kleinigkeit
14.06.2011 10:51:59
Dietmar
Hallo Rudi,
wie immer: PERFEKT, DANKE.
ByVal funktioniert prima.
Ergänzungsfrage:
Was ist noch zu tun, damit der Befehl erst nach Klicken auf eine Schaltfläche ausgeführt wird?
Wie ich feststellen durfte: die erste Zeile einfach ändern, geht (natürlich) nicht.
und wieder: Herzlichen Dank vorab!
Viele Grüße
Dietmar
Anzeige
AW: JA!, noch eine Kleinigkeit
14.06.2011 11:09:14
Rudi
Hallo,
Was ist noch zu tun, damit der Befehl erst nach Klicken auf eine Schaltfläche ausgeführt wird?

Einen Commandbutton einfügen und das per Click-Prozedur ausführen anstatt Worksheet_Change.
Private Sub CommandButton1_Click()
With ActiveCell
If .Column = 2 Then
.Offset(, -1) = .Offset(, -1) + .Value
End If
End With
End Sub
Gruß
Rudi
Danke, aber unabhängig von aktiver Zelle
14.06.2011 11:19:44
aktiver
Hallo Rudi,
Vielen Dank, aber ganz so sollte es nicht sein.
Ich möchte zunächst in Spalte B der Reihe nach Werte eintragen können und dann unabhängig von der aktiven Zelle die Berechnungen in einem Rutsch durchführen lassen. Also unabhängig von der Active Cell.
Viele Grüße
Dietmar
Anzeige
For Each ...
14.06.2011 11:38:35
Matthias
Hallo
hier eine Variante mit For Each (für kleinen Zellbereich geeignet)
erst Eintragen, dann per Klick auf Button ne Schleife ...
Private Sub CommandButton1_Click()
Dim C As Range
For Each C In Range("B1:B10") 'Bereich bitte anpassen
With C
.Offset(, -1).Value = .Offset(, -1).Value + .Value
End With
Next
End Sub

Userbild
AW: Danke, aber unabhängig von aktiver Zelle
14.06.2011 11:39:18
aktiver
Hallo,
so?
Private Sub CommandButton1_Click()
Dim rngC As Range
For Each rngC In Columns(2).SpecialCells(xlCellTypeConstants)
With rngC
.Offset(, -1) = .Offset(, -1) + .Value
End With
Next
End Sub

Gruß
Rudi
Anzeige
So gut, aber Fehlermeldung wenn o. Werte
14.06.2011 12:15:47
Dietmar
Hallo Rudi,
ja besten Dank!
Habe mir den Code wie folgt umgeschrieben (hoffe das ist so ok), weil ich nur einen Bereich benötige.
Sub Addition_RudiM()
Dim rngC As Range
For Each rngC In Range("B1:B10").SpecialCells(xlCellTypeConstants)
With rngC
.Offset(, -1) = .Offset(, -1) + .Value
End With
Next
End Sub
Außerhalb des Bereichs sind in Spalte B Daten, die nicht berücksichtigt werden dürfen. Zur Kenntnis. damit Du weißt warum: Ich benötige den Code beispielhaft, da ich mehrere verschiedene Bereiche auf dem Sheet so behandeln möchte, daher das Erfordernis der Bereichsbegrenzung.
Aber ...
... leider erhalte ich eine Fehlermeldung, wenn im Bereich B1:B10 keine Werte eingetragen wurden.
Hier bräuchte ich also noch eine Bedingung, die den Umstand berücksichtigt, wie zu verfahren ist, wenn in B1:B10 kein Wert eingetragen wurde. (Der Code arbeitet in der Endfassung dann noch andere Bereiche ab, in denen aber Werte stehen könnten).
1000 Dank!
Viele Grüße
Dietmar
Anzeige
AW: So gut, aber Fehlermeldung wenn o. Werte
14.06.2011 12:40:49
Rudi
Hallo,
Sub Addition_RudiM()
Dim rngC As Range
If Application.Count(Range("B1:B10")) > 0 Then
For Each rngC In Range("B1:B10").SpecialCells(xlCellTypeConstants)
With rngC
.Offset(, -1) = .Offset(, -1) + .Value
End With
Next
End If
End Sub

Gruß
Rudi
Yess, that's it! Danke
14.06.2011 13:50:36
Dietmar
Hallo Rudi,
vielen Dank! So kann ich es gut gebrauchen.
Liebe Grüße
Dietmar
If .Value <> "" Then ... oT
14.06.2011 12:41:34
Matthias
Danke ...
14.06.2011 13:52:06
Dietmar
Hallo Matthias,
vielen Dank auch für Deine Hilfe. Mit der Ergänzung von Rudi komme ich aber bestens klar.
Viele Grüße
Dietmar

339 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige