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

Fehler beim Füllen eines Strings

Fehler beim Füllen eines Strings
16.08.2023 13:31:56
OFV_Tigier
Guten Tag,
aktuell verzweifle ich mal wieder. :)

ich möchte in einen String eine Formel schreiben (so wie ich es schon oft getan habe).
Leider bekomme ich einen "Anwendungs- oder objektorientierter Fehler" 1004.



Dim arrFmla(1 To 2) As String
arrFmla(1) = "=COUNTIFS(" & Cells(5, 5).Address(False, False) & ":" & Cells(4, 5).Address(False, False) & ";""" & varScht & "*"";" _
& Cells(5, 3).Address(False, False) & ":" & Cells(5, 3).Address(False, False) & ";""*R*"")&"" ""&"


Viele Anführungszeichen, I know, aber später möchte ich diese Formel natürlich in eine Zelle schreiben:
Das ich die Cells(5, 5).Address(False, False) berechne hat natürlich den Hintergrund das ich diese mittels meines Scriptes errechne, jedoch wollte ich nicht zuviel Code, der mit dem Fehler nichts zu tun hat, posten.

strFmla = arrFmla(1) & "&ZEICHEN(10)&" & arrFmla(2) & """ """


With Range(Cells(7, 10).Address(False, False))

'Insert Formula
.Formula = strFmla

'Ensure calculation happens
.Calculate

'Convert Formula to Value
.Value2 = .Value2

End With


Ich hoffe jemand hat eine Idee, wo ich den Fehler eingebaut habe. :)

Vielen Dank schon einmal.

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fehler beim Füllen eines Strings
16.08.2023 13:46:31
Der Steuerfuzzi
Hallo,

ich vermute mal, der hintere Teil der Formel ist überflüssig:
"=COUNTIFS(" & Cells(5, 5).Address(False, False) & ":" & Cells(4, 5).Address(False, False) & ";""" & varScht & "*"";" & Cells(5, 3).Address(False, False) & ":" & Cells(5, 3).Address(False, False) & ";""*R*"")"


Gruß
Michael
Fehler beim Füllen eines Strings
16.08.2023 13:57:00
Rudi Maintaire
Hallo,
CHAR(10) statt ZEICHEN(10)

Und
With Range(Cells(7, 10).Address(False, False))

ist von hinten durch die Brust ins Auge.

With Cells(7, 10)

...
End With

Gruß
Rudi
Anzeige
Fehler beim Füllen eines Strings
16.08.2023 14:01:47
UweD
Hallo

war das nur ein fiktives Beispiel oder ist es immer Cells(5, 5)... Cells(4, 5)?
Wenn das fix ist, dann kannst du doch direkt anstelle
"=COUNTIFS(" & Cells(5, 5).Address(False, False) & ":" & Cells(4, 5).Address(False, False) & ";""" & 


"=COUNTIFS("E4:E5;"...
nehmen


Auch brauchst du das nicht so kompliziert zu machen

With Range(Cells(7, 10).Address(False, False))


With Cells(7, 10)
reicht

LG UweD
Anzeige
Fehler beim Füllen eines Strings
16.08.2023 14:05:01
OFV_Tigier
Hallo Uwe! :)

Ja, das Beispiel hätte ich im Original lassen sollen:

arrFmla(1) = "=COUNTIFS(" & Cells(5, intTag + 5).Address(False, False) & ":" & Cells(strZeile, intTag + 5).Address(False, False) & ";""" & varScht & "*"";" _

& Cells(5, 3).Address(False, False) & ":" & Cells(strZeile, 3).Address(False, False) & ";""*R*"")&"" ""&"


Damit wird es wahrscheinlich deutlicher, ich arbeite mit Variablen und Scheifen, da ich hier eine Menge Daten durchgehen möchte.


Das mit dem With ist Rudi auch schon aufgefallen.
Manchmal mache ich mir das Leben kompliziert.... :D
Anzeige
Fehler beim Füllen eines Strings
16.08.2023 14:06:55
UweD
Welchen Wert hat denn varScht ?


LG Uwe
Fehler beim Füllen eines Strings
16.08.2023 14:12:24
OFV_Tigier
Die Variable strZeile ist eine intZeile - strZeile war somit undefiniert....

Vielen Dank für die Hilfe!
Fehler beim Füllen eines Strings
16.08.2023 14:08:02
Der Steuerfuzzi
Noch ein Versuch mit der Original-Formel:
arrFmla(1) = "=COUNTIFS(" & Cells(5, intTag + 5).Address(False, False) & ":" & Cells(strZeile, intTag + 5).Address(False, False) & ";""" & varScht & "*"";" _

& Cells(5, 3).Address(False, False) & ":" & Cells(strZeile, 3).Address(False, False) & ";""*R*"")"
Fehler beim Füllen eines Strings
16.08.2023 14:14:32
onur
Warum nicht die Formel noch länger aufbauen?
=COUNTIFS(" & Cells(5*sqr(100*751)^0, intTag*1871/1871 +1*(1155-1155)^0+ 5*17547^0)..........
Anzeige
:-)
16.08.2023 14:20:13
UweD
Daumen hoch
Fehler beim Füllen eines Strings
16.08.2023 14:13:42
OFV_Tigier
Der Fehler war in einer undefinierten Variable strZeile.

Kaum macht man es richtig:
arrFmla(1) = "=COUNTIFS(" & Cells(5, intTag + 5).Address(False, False) & ":" & Cells(lngZeile, intTag + 5).Address(False, False) & ";""" & varScht & "*"";" _

& Cells(5, 3).Address(False, False) & ":" & Cells(lngZeile, 3).Address(False, False) & ";""*R*"")&"" ""&"
Fehler beim Füllen eines Strings
16.08.2023 13:59:09
OFV_Tigier
Hallo Rudi,

vielen Dank für die Verbesserung meines Codes. :)

Hast Du auch eine Idee bezüglich meines Strings?
Anzeige
Fehler beim Füllen eines Strings
16.08.2023 14:30:22
Rudi Maintaire
Hast Du auch eine Idee bezüglich meines Strings?
hab ich doch geschrieben:
CHAR(10) statt ZEICHEN(10)

mit .Formula versuchst du eine englische Formel in die Zelle zu schreiben. Und Zeichen(10) ist nun mal deutsch.

Gruß
Rudi
noch ein Tipp
16.08.2023 14:47:33
Rudi Maintaire
Hallo,
ich würde die Formel in mehreren Steps aufbauen.
z.B.
varScht = varScht & "*"

a1 = Range(Cells(5, intTag + 5), Cells(lngZeile, intTag + 5)).Address(False, False)
a2 = Range(Cells(5, 3), Cells(lngZeile, 3)).Address(False, False)

arrFmla(1) = "=COUNTIFS(" & a1 & ";""" & varScht & ";" & a2 & ";""*R*"")"


Gruß
Rudi
Anzeige
AW: Fehler beim Füllen eines Strings
16.08.2023 13:47:20
Der Steuerfuzzi
Ergänzung:
Die Bereiche in der Formel sollten schon über die gleiche Anzahl von Zeilen gehen ;)
Fehler beim Füllen eines Strings
16.08.2023 13:55:29
OFV_Tigier
Hi,

in meinem Beispiel ist der hintere Teil der Formel tatsächlich überflüssig, jedoch bringt das weglassen keine Lösung, der Fehler bleibt. :)

Und, ja, die Zeilenanzahl ist in meinem tatsächlichen Code selbstverständlich gleich - sonst macht es natürlich keinen sinn.. :)

arrFmla(1) = "=COUNTIFS(" & Cells(5, intTag + 5).Address(False, False) & ":" & Cells(strZeile, intTag + 5).Address(False, False) & ";""" & varScht & "*"";" _

& Cells(5, 3).Address(False, False) & ":" & Cells(strZeile, 3).Address(False, False) & ";""*R*"")&"" ""&"
Anzeige
Fehler beim Füllen eines Strings
16.08.2023 14:02:16
Der Steuerfuzzi
Der Fehler deutet mW darauf hin, dass die Formel einen syntaktischen Fehler hat. Wäre gut zu wissen, welchen Wert der String zum Zeitpunkt des Fehlers hat.
Fehler beim Füllen eines Strings
16.08.2023 14:10:51
OFV_Tigier
Liefere ich gerne:

intTag ist gleich 1 (Integer)

varScht ist gleich "X" (String), ich suche in der Zelle, ob ein X vorhanden ist.

strZeile wurde ermittelt 78 : lngZeile = Range("A65536").End(xlUp).Row


HEUREKA! Das war mein Fehler!!!

strZeile existiert nicht es handelt sich um einen Integer .. intZeile macht sinn und dann funktioniert es auch schon.


Manchmal sieht man den Integer vor Strings nicht.... :D

so wird ein String daraus:
arrFmla(1) = "=COUNTIFS(" & Cells(5, intTag + 5).Address(False, False) & ":" & Cells(lngZeile, intTag + 5).Address(False, False) & ";""" & varScht & "*"";" _

& Cells(5, 3).Address(False, False) & ":" & Cells(lngZeile, 3).Address(False, False) & ";""*R*"")&"" ""&"

Anzeige
Fehler beim Füllen eines Strings
16.08.2023 14:40:32
daniel
Hi
mein Tipp: schreibe die Formel mit R1C1-Adresse und schreibe dann in .FormulaR1C1 = Formeltext
das vereinfacht dir die Eingabe der berechneten Spalten, weil du bei R1C1 Spaltennummern einsetzen kannst:

sollte das Trennzeichen in der Formel nicht das Komma sein?
Semikolon brauchst du für die Deutsche Formel (.FormulaLocal)

noch ein Tip: ich würde Variablen und berechnete Werte zunächst mit Platzhalten (Zeichenfolgen, die in der Formel regulär nicht vorkommen) im Formeltext berücksichtigen und dann austauschen:


arrFmla(1) = "=COUNTIFS(R5C#sp#:R#ze#C#sp#,""#varScht#*"",R5C3:R#ze#C3,""*R*"")"

arrFmla(1) = Replace(arrFmla(1), "#sp#", intTag + 5)
arrFmla(1) = Replace(arrFmla(1), "#ze#", lngZeile)
arrFmla(1) = Replace(arrFmla(1), "#varSht#", varScht)


das sind zwar ein paar Zeilen mehr, aber insbesondere der Formeltext wird viel übersichtlicher.

Gruß Daniel
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige