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

Summe / Wert erhöhen

Summe / Wert erhöhen
02.02.2016 22:15:24
Stefan
Hallo,
ich habe folgendes Macro, um eine Summe immer um einen Wert zuerhöhen und die Zelle für die Werteingabe wieder auf Null setzt:
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
[a2] = [A1] + [a2]
[A1] = 0
End Sub
gefunden hatte ich dies in diesem Beitrag:
https://www.herber.de/forum/archiv/124to128/126873_Summe_Wert_erhoehen.html
Nun meine frage, wie muss das makro heißen damit ich dies auf ca 100 Zeilen anwenden kann?
Theoretisch könnte man ja für jede Zeile das Makro schreiben, aber sicherlich geht das auch einfacher oder?
Danke schonmal für die Hilfe.
Grüße
Stefan

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Summe / Wert erhöhen
02.02.2016 22:40:23
Daniel
Hi
mit Kopiern und Inhalte Einfügen mit dem Vorgang "Addieren"
als Makro:
Range(...).Copy
Range(...).PasteSpecial xlpastevalues, operation:=xladd
Gruß Daniel

AW: Summe / Wert erhöhen
02.02.2016 23:36:51
Stefan
Hallo Daniel,
danke für die Antwort, nur wie sieht das ganze Makro dann aus? Ich komme da gerade nicht hinter.
Grüße
Stefan

AW: Summe / Wert erhöhen
03.02.2016 00:11:18
Daniel
wie sieht die konkrete Aufgabenstellung aus?
Gruß Daniel

AW: Summe / Wert erhöhen
03.02.2016 07:13:45
Stefan
Hallo,
ich möchte das Makro:
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
[a2] = [A1] + [a2]
[A1] = 0
End Sub
nicht nur auf die Zeile 1 anwenden sondern auch auf 2,3,4,5,...
Grüße Stefan

Anzeige
AW: Summe / Wert erhöhen
03.02.2016 09:02:35
Daniel
Wenn ich den Code auf alle Zeilen anwenden, steht am Schluss in det allerletzten Zeile die Summe der Spalte A und in allen darüberliegenden Zellen steht die 0.
Bist du sicher dass du das willst?
Mir erscheint es nicht sinnvoll.
Gruß Daniel

AW: Summe / Wert erhöhen
03.02.2016 10:56:52
Stefan
Nein,
wenn ich das Makro für vier Zeilen haben möchte würde dies ja dann so aussehen:
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
[B3] = [B3] + [C3]
[C3] = 0
[B4] = [B4] + [C4]
[C4] = 0
[B5] = [B5] + [C5]
[C5] = 0
[B6] = [B6] + [C6]
[C6] = 0
End Sub
und da ist eben meine frage wie ich das vereinfachen kann, denn bei über 100 Zeilen ist es recht aufwändig dies zuschreiben.
Grüße
Stefan
https://www.herber.de/bbs/user/103253.xlsm

Anzeige
AW: Summe / Wert erhöhen
03.02.2016 12:37:48
Daniel
OK, das ist jetzt deutlicher und auch ein bisschen was anderes als das was du in deiner ersten Anfrage beschrieben hast.
Probieren mal
Applications.enableevents = false
Columns(3).Copy
Columns(2).pastespecial xlpastevalues,, Operation:=xladd
Columns(3).clearcontents
Applications.enableevents = true
Gruß Daniel

AW: Summe / Wert erhöhen
03.02.2016 12:51:05
Stefan
Hast du es bei der Tabelle mal ausprobiert die im Anhang enthalten ist?
Wie muss ich dein Makro mit einpflegen?
Grüße Stefan

AW: Summe / Wert erhöhen
03.02.2016 13:37:28
Daniel
Nein, nicht getestet, bin grad nicht am Rechner
Prinzipiell ist meine Idee, die Spalte C zu kopieren und in die Spalte B mit dem Vorgang "Addieren" einzufügen.
Gruß Daniel

Anzeige
AW: Summe / Wert erhöhen
03.02.2016 14:57:14
Stefan
Gibt es keine Möglichkeit einfach mein Makro auf andere Zeilen zukopieren bzw. im zu sagen das er dies bei den anderen Zeilen auch so machen soll?

AW: Summe / Wert erhöhen
03.02.2016 15:55:53
Daniel
Hi
es wäre gut, wenn du nicht einfach nur Codes präsentierst, sondern auch beschreibst, was du machen willst. Denn bei "VBA nein" ist die Wahrscheinlichkeit hoch, dass die optimale Lösung für dein Problem etwas anders aussieht, als du dir das vorstellst wie es vielleicht gehen könnte.
das fängt schonmal damit an, dass das von dir gewählte Event (SelectionChange) für diese Aufgabe nicht das beste ist.
probier mal folgenden Code anstelle deines alten.
Bei eingabe eines Wertes in Spalte C wird dieser nach eingabe zum Wert in Spalte B hinzuaddiert.
Dies jedesmal auszuführen wenn du den Cursor auf dem Tabellenblatt verschiebst ist Unsinn.
Wenn du aber nur den Code zeigst ohne zu beschreiben was du machen willst, muss ich diesen Unsinn übernehmen.
probiere mal folgenden Code (deinen alten kannst du löschen)
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zelle As Range
Dim EingabeBereich As Range
Set EingabeBereich = Intersect(Target, Columns(3))
If EingabeBereich Is Nothing Then Exit Sub
If WorksheetFunction.Count(EingabeBereich) = 0 Then Exit Sub
Application.EnableEvents = False
For Each Zelle In EingabeBereich
If VarType(Zelle.Value) = vbDouble Then
Zelle.Offset(0, -1).Value = Zelle.Offset(0, -1).Value + Zelle.Value
Zelle.ClearContents
End If
Next
Application.EnableEvents = True
End Sub
Gruß Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige