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

Formel Problem

Formel Problem
24.10.2023 15:46:23
Juergen Geier
Hallo zusammen,
hänge gerade an einer Formel "SUMMEWENNS"
die Formel funktioniert rein tadellos, sobald ich sie ins VBA mache und eine Variable dazu mache geht nix mehr, komme nicht auf den Fehler.

Standard: geht

=SUMMEWENNS(Rohdaten!$H:$H;Rohdaten!$AZ:$AZ;Kunden!$A2;Rohdaten!$AY:$AY;Kunden!$C$1;Rohdaten!$C:$C;">="&$G$14;Rohdaten!$C:$C;"="&$I$14)


Angepasst im VBA: geht
    Thisbook.Worksheets("Kunden").Range("C2:C" & letztez).FormulaLocal = "=SUMMEWENNS(Rohdaten!$H:$H;Rohdaten!$AZ:$AZ;Kunden!$A2;Rohdaten!$AY:$AY;Kunden!$C$1;Rohdaten!$C:$C;"">=""&$G$14;Rohdaten!$C:$C;""=""&$I$14)"


Wenn ich aber eine Variable einfügen will, geht nix mehr, setze irgendwo die Anführungsstriche falsch vermutlich
der Plan wäre die beiden Variablen zu verwenden.

    Dim zvon, zbis As Date

zvon = Thisbook.Worksheets("Kunden").Range("G14").Value
zbis = Thisbook.Worksheets("Kunden").Range("I14").Value

Thisbook.Worksheets("Kunden").Range("C2:C" & letztez).FormulaLocal = "=SUMMEWENNS(Rohdaten!$H:$H;Rohdaten!$AZ:$AZ;Kunden!$A2;Rohdaten!$AY:$AY;Kunden!$C$1;Rohdaten!$C:$C;"">=""&" & zvon &";Rohdaten!$C:$C;""=""&" & zbis & ")"


zvon sollte $G$14 ersetzen
zbis sollte $I$14 ersetzen

Habt Ihr eine Idee?

Danke und Gruss
Jürgen

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formel Problem
24.10.2023 16:02:44
daniel
Hi
ich mach das immer so:
1. Formel erstmal funktionsfähig in einer Excelzelle erstellen und dann für den Code mit gedoppelten Anführungszeichen kopieren.
2. im Code die Formel zunächst einer Variablen zuweisen: FO ="=Summe(A1:A99)
3. bei dieser Zuweisung die Zeile, die durch Variablen gebildet werden sollen, durch einen Dummy-Text , der so in der Formel nicht vorkommt, ersetzen, also die Zeile nicht wie unter gezeigt, sondern so: FO = "=Summe(Axxx:Ayyy)"
4. in der Folge dann mit Replace die Dummy-Texte durch den Variablenwert ersetzen und dann erst die Formel in die Zelle schreiben:
von = 1

bis = 99
FO = "Summe(Axxx:Ayyy)"
FO = Replace(FO, "xxx", von)
FO = Replace(FO, "yyy", bis)
Cells(1, 1).FormulaLocal = FO


sind zwar ein paar mehr Zeilen, aber bei komplexeren Formeln wird dadurch das einbringen von Variablen in den Formeltext deutlich einfacher und man verhaspelt sich nicht mit den Anführungszeichen.

zum konkreten Fall:
1. Dim zvon, zbis As Date deklariert nur zbis als Date, zbis wird Variant, weil du keinen speziellen Datentyp zuweist
2. ich würde hier für beide Datentypen LONG verwenden, Date ist kritisch, weil er Formatierung mit Wert mischt.
solltest du hier mit Datumswerten arbeiten wollen, ist das zwar prinzipell möglich, wird aber aufgrund der Problematik: "Datum als Text im amerikanischen oder deutschen Format" schnell unübersichtlich. Ich würde daher hier bei Zahlen bleiben.

Gruß Daniel
Anzeige
AW: Formel Problem
24.10.2023 16:23:41
daniel
Hi
nochmal grundsätzlich:
was soll denn in der Variable stehen?
der Datumswert?
die Zelladresse der Zelle, aus der das Datum gelesen werden soll?

im ersten Fall (Datum), müsste das so aussehen, denn dann findet die Verkettung in VBA statt und nicht in der Formel
.FormulaLocal = "=....;""=" & zbis & """)"

wenn die Variable die Zelladresse sein soll, muss die Verkettung auch in der Formel stattfinden und in VBA:
.FormulaLocal = "=....;""=""&" & zbis & ")"


aber wie gesagt, bei komplexen Formeln lieber so wie von mir im ersten Beitrag gezeigt, das ist übersichlicher.

Gruß Daniel
Anzeige
AW: Formel Problem
24.10.2023 17:22:26
Juergen Geier
Servus Daniel,

Danke für die schnelle Antwort, werd ich grad probieren.

Gruss
Jürgen
AW: Formel Problem
25.10.2023 20:00:13
Juergen Geier
Hallo zusammen,
ich bekomme es nicht auf die Reihe, habe jetzt beide Varianten die vorgeschlagen wurden probiert.
Weis echt nicht, was ich falsch mache.

Könnt Ihr mir da nochmal einen Vorschlag machen?
Hab hier noch ein Beispielmappe dazu gemacht.

https://www.herber.de/bbs/user/163741.xlsm

Gruss
Jürgen
AW: Formel Problem
29.10.2023 22:32:57
onur
Sorry, aber dein Code ist Müll. Das Problem mit der Formel ist dein kleinstes Problem.
Wozu wird z.B.
euspalt = euspalt + 1 

ZWEIMAL pro Schleifendurchlauf ausgeführt?
Was soll das hier:
 G = G + 1

Next G

Weisst du denn nicht, dass der Befehl "Next" automatisch G schon erhöht ?
Da ich NICHT durch deinen Code durchblicke: WAS soll der Code überhaupt machen ?
Anzeige
AW: Formel Problem
31.10.2023 09:28:26
Juergen
Servus Onur,

doch das weis ich aber ich muss jeweils nur die 2t nächste Zeile bearbeiten, bei der Spalte (EU = euspalt) habe ich auch jeweils was dazwischen, (Aufbau der Darstellung ist FIX, kommt nicht von mir)
euspalt = sollte immer die 2t nächste Spalte ansprechen
G = klar (aber nicht die nächste sondern die 2t nächste somit G+1)

Mein Problem ist wirklich die Formel.
Der Code mag vielleicht nicht allen Richtlinien eines erfahrenen Programmierers entsprechen, aber er tut bis auf diese eine Formel was er soll.

Hat jemand eine Idee?

Gruss
Jürgen
Anzeige
AW: Formel Problem
31.10.2023 11:41:23
onur
"=SUMMEWENNS(Rohdaten!H:H;Rohdaten!C:C;""=" & monvon & "" & """;Rohdaten!C:C;""=" & monbis & "" & """;Rohdaten!AZ:AZ;Kunden!AH4;Rohdaten!AY:AY; " & """" & regio & """" & ")"

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige