Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA - mehrere Zellwerte gleichzeitig auf- abwerten

VBA - mehrere Zellwerte gleichzeitig auf- abwerten
31.10.2018 10:23:13
udo
Guten Morgen Forum
benötige etwas Hilfe bei folgendem Problem.
wenn ich einen Zellwert aufwerte ( einzelne Zelle ) mache ich das bislang über
[A1] = [A1].Value +1 oder minus 1
wie sieht das für einen Zellverband aus, gibt es da eine ähnlich einfache Schreibweise für zB [A1:B10] wenn in jedem dieser Zellen unterschiedliche Zahlenwerte stehen, und ich jede Zelle für sich um eine Zahl auf oder abwerten möchte.
Hat Jemand soetwas schon mal realisiert ( Beispiel ).
Wäre euch sehr dankbar für eure Unterstützung
LG Udo
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - mehrere Zellwerte gleichzeitig auf- abwerten
31.10.2018 10:28:58
Hajo_Zi
Hallo Udo,
schreibe die Zahl in eine Zelle. C1 z.B. -1
Range("C1").Copy
Range("A1:A14").PasteSpecial Paste:=xlPasteAll, Operation:=xlAdd
Application.CutCopyMode = False

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
Anzeige
Ja prima - vielen Dank Hajo !
31.10.2018 10:36:11
udo
genau das was ich suchte ... Danke dir wiedermal sehr Hajo
;-)
LG Udo
AW: VBA - mehrere Zellwerte gleichzeitig auf- abwerten
31.10.2018 10:40:54
Daniel
Hi
direkt in VBA müsstest du jeden Zellwert einzeln ändern, dh mit einer Schleife über jede Zelle laufen und den Zellwert abändern.
in der einfachsten Version:
Dim Zelle as Range
for each Zelle in Range("A1:B10")
Zelle.Value = Zelle.Value + 1
Next

bei größeren Datenmengen kann es hilfreich sein, die Werte in ein Array einzulesen, dann das Array zu bearbeiten und am Ende das Array als ganzes in die Zellen zurückzuschreiben:
dim arr
dim z as Long, s as Long
with range("A1:B10")
arr = .value
for z = 1 to ubound(arr, 1)
for s = 1 to ubound(arr, 2)
arr(z, s) = arr(z, s) + 1
next s
next z
.value = arr
End with
wie du siehst, alles recht aufwendig.
noch besser und schneller ist das die von Hajo gezeigte Variante mit dem Copy-Paste.
das kann man übrigens auch ohne VBA von Hand ausführen, wenn den Delta-Wert in eine Zelle schreibt, kopiert und dann mit dem Zielbereich die Kontextmenüfunktion (Rechte Maustaste) Inhalte einfügen - Inhalte Einfügen - Werte, Vorgang: addieren
Gruß Daniel
Anzeige
Vielen lieben Dank auch an Dich Daniel ...
31.10.2018 14:32:41
udo
einen Ansatz deiner Art hatte ich ansatzweise im Kopf, hätte ich so nicht hinbekommen alleine.
Danke dir, werde eure beiden Codes mal mit einbauen zum Testen
Schönen Gruß
Udo
und Danke nochmal !
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige