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

wie kann man das in VBA lösen

wie kann man das in VBA lösen
09.06.2016 14:32:04
Peter
Hallo Excel Formellisten,
ich soll in einem Tabellenblatt (mit 10 Spalten und 32 Zeilen) die Formeln
=SUMMENPRODUKT(--(REST(SPALTE(D:J);2)=0)*(D7:J7))
für diverse Spalten und Zeilen durch einen VBA Code ersetzen.
Ich verstehe als VBA Mensch die Formel schon nicht und habe im Hinterkopf, dass Summenprodukt unter VBA sowieso Probleme macht.
Auch [] bzw. Evaluate soll nicht unbedingt zur Anwendung kommen.
Wer hat hier eine Erklärung der Formel bzw. eine VBA Lösung für mich?
Danke schon einmal im Voraus
Peter

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: wie kann man das in VBA lösen
09.06.2016 14:44:48
Fennek
Hallo,
ich versuche es einmal:
rest(spalte(D:J);2) sind einfach die Zahlen 4 (spalte D) - 10 (Spalte J), jeweils Modulo 2. Man sollte sich das gut ansehen können, wenn man genau diese Zeichen in der Formel markiert und die Taste F9 drückt.
Dagegeb ist das Andere eher einfach:
(REST(SPALTE(D:J);2)=0) ist ein Wahrheitswert, der durch die vorangestellten -- in eine Zahl, also 0 oder 1 umgewandelt wird.
mfg
PS: es ist sicher möglich, das in "normalen" vba -Code umzuschreiben, aber das ist "Arbeit"

AW: wie kann man das in VBA lösen
09.06.2016 15:06:13
Michael
Hi zusammen,
sooo viel Arbeit ist das nicht, hoffe ich zumindest, aber ich würde das nur angehen wollen, wenn eine Beispieldatei vorliegt: "in einem Tabellenblatt die Formeln xxx ersetzen" ist etwas dürftig.
Weiterhin ergibt sich die Frage, WAS nun eigentlich erwünscht ist:
a) ein Makro, das alle WERTE errechnet und in bestimmte Zellen schreibt ODER
b) eine UDF, die die Funktion "kapseln" soll.
Im Grunde sorgt das Rest=0 dafür, daß nur gerade Werte multipliziert werden. Das geht in VBA mit "mod", wobei speziell bei "mod 2" (und anderen 2er-Potenzen) ein schnellerer Code verwendet werden kann, nämlich
wert AND 1
das überprüft, ob das rechteste Bit mit 1 gesetzt wird: wenn ja, ist die Zahl ungerade.
Schöne Grüße,
Michael
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige