Anzeige
Archiv - Navigation
1848to1852
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

max. Zeichenanzahl String/Formel

max. Zeichenanzahl String/Formel
20.09.2021 10:55:15
Martin
Hallo zusammen,
ich glaube meine Frage zielt auf die Datentypen ab...
In einem Programm geniere ich eine Summenformel ( =Sum(...) ) mittels For-Schleife. Dabei können sehr viele Zellen berücksichtigt werden. Beispiele mit 92 Zellen funktionieren. Bei 368 Zellen habe ich allerdings die Fehlermeldung "Run-Time Error: '1004': Application-defined or object-defined error" bekommen.
Könnt Ihr mir sagen, ob ich den String einfach zu voll packe, oder einen anderen Fehler mache?

Dim Formel As String
Formel = "=SUM("						'Formel zur Aufsummierung der Kosten initialisieren
For j To Zeilenanzahl
Formel = Formel & "R" & j & "C,"			'Summenformel um eine Zelle erweitern
Next j
Formel = Left(Formel, Len(Formel) - 1) & ")"			'das letzte "," abschneiden und ")" anhängen
Worksheets(„Tabelle1“).Cells(i, 19).FormulaR1C1 = Formel	'Summenformel einfügen
Bei dem Fall mit 368 Zellen zeigt mir der Editor unter "Waches" auch nur den folgenden String an. Was ich auch komisch finde, zumal am Ende ja noch das Komma steht.

"=SUM(R9817C,R9818C,R9819C,R9820C,R9821C,R9822C,R9823C,R9824C,R9825C,R9826C,R9827C,R9828C,R9829C,R9830C,R9831C,R9832C,R9833C,R9834C,R9835C,R9836C,R9837C,R9838C,R9839C,R9840C,R9841C,R9842C,R9843C,R9844C,R9845C,R9846C,R9847C,R9848C,R9849C,R9850C,R9851C,
Vielen Dank und viele Grüße
Martin

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: max. Zeichenanzahl String/Formel
20.09.2021 11:21:02
Rolf
Hallo Martin,
ganz ohne Schleife, einfach nur
Formel = "=SUM(R" & j & "C:R" & Zeilenzahl & "C)"
Gruß Rolf
AW: max. Zeichenanzahl String/Formel
20.09.2021 11:24:57
UweD
Hallo
Du willst einen Zusammenhängenden Bereich addieren.
Warum die Zellen einzeln benennen?
Es fehlt die Zuordnung "Zeilenanzahl" außerdem welchen Wert hat "i"?
For J= 1 to auch fehlerhaft
Warum nicht so?

Dim Formel As String
Zeilenanzahl = 36
i = Zeilenanzahl + 2
Formel = "=SUM(R1C:R" & Zeilenanzahl & "C)"
Worksheets("Tabelle1").Cells(i, 19).FormulaR1C1 = Formel      'Summenformel einfügen
LG UweD
Anzeige
AW: max. Zeichenanzahl String/Formel
20.09.2021 12:00:04
GerdL
Moin

Sub Unit()
Dim Formel As String, i As Long, j As Long, Zeilenanzahl As Long
i = 370
j = 1
Zeilenanzahl = 368
Formel = "=SUM(R" & j & "C:R" & (j + Zeilenanzahl - 1) & "C)"                    'Formel zur Aufsummierung der Kosten initialisieren
Tabelle1.Cells(i, 19).FormulaR1C1 = Formel    'Summenformel einfügen
End Sub
Gruß Gerd
AW: max. Zeichenanzahl String/Formel
20.09.2021 14:13:24
Martin
Hallo UweD,
der dargestellte Code ist ein Ausschnitt aus dem gesamten Code. Ich füge nicht jede Zeile der Summenformel hinzu, von daher suche ich keine Lösung in Form von "Summe von A1 bis A100".
Zeilenanzahl wird in meinem Code natürlich definiert...hatte ich hier vergessen zuzuschreiben.
Die Frage bleibt, ob der String irgendwann voll ist ...
Ich habe es mit diesem Code ausprobiert und festgestellt, dass der String bei Zeilenanzahl=256 (was 1429 Zeichen entspricht) voll ist:

Sub Summieren()
Dim Formel As String
Dim j As Integer
Dim Zeilenanzahl As Integer
Zeilenanzahl = 256
'Formel zur Aufsummierung der Kosten initialisieren
Formel = "=SUM("
For j = 2 To Zeilenanzahl
Formel = Formel & "R" & j & "C,"            'Summenformel um eine Zelle erweitern
Next j
'das letzte "," abschneiden und ")" anhängen
Formel = Left(Formel, Len(Formel) - 1) & ")"
'Summenformel einfügen
Cells(1, 1).FormulaR1C1 = Formel
End Sub
Hast Du oder jemand anderes eine Idee, wie ich mehr Zeichen in den String bzw. die Formel länger machen kann?
Vielen Dank und viele Grüße
Martin
Anzeige
AW: max. Zeichenanzahl String/Formel
20.09.2021 15:33:56
Martin
Hatte vergessen das Häkchen bei "offene Frage" zu setzen...
AW: max. Zeichenanzahl String/Formel
20.09.2021 18:21:34
Daniel
Wie Uwe schon schrieb:
mehr als 255 Argumente kannst du der Summenfunktion nicht mitgeben.
mögliche Lösungen für dein Problem:
a) mitzählen, wieviele Parameter du schon in der Summe hast und wenn die 255 erreicht sind, die Summe beenden und eine neue Summe hinzuaddieren
also =Summe(A2;...;A256)+Summe(A257;...;A513)+Summe(A514;....)
b) wenn es tatsächlich um Summen geht, addiere doch einfach die Werte statt die Summenfunktion zu verwenden. Operatoren kannst du beliebig der Formel hinzufügen, solange bis die maximale Anzahl Zeichen in der Formel erreicht ist (siehe Link von Uwe)
=A2+A3+A4.....
c) warum musst du überhaupt jede Zelle einzeln auflisten und kannst nicht die Summe über den Zellbereich ziehen, was ist deine Ausschussbedingung?
Texte braucht man nicht ausschließen, die werden von Summe ignoriert.
Fehlerwerte kann man ignorieren lassen, wenn man statt Summe(A:A) die Funktion Aggregat(9;6;A:A) verwendet.
Wenns von anderen Zellwerten abhängig ist, könnte man auch mit SummeWenns oder Summenprdukt arbeiten, ggf unter zu Hilfenahme einer zusätzlichen Spalte.
Alles was du machst dürfte besser sein, als solche Monsterformeln zu erzeugen.
Gruß Daniel
Anzeige
AW: max. Zeichenanzahl String/Formel
21.09.2021 12:59:33
Martin
Hallo UweD, hallo Daniel,
das mit 255 Argumente ist genau das Problem, ja. Danke, das hilft mir schon viel weiter.
@Daniel: kurze Erklärung: Ich baue eine Stückliste ähnlich wie der Ordnerstruktur im WinExplorer auf. Hinter jedem Einzelteil stehen Kosten. Nun möchte ich die Kosten je Baugruppe ermitteln. Natürlich darf ich aber nicht die Kosten der Einzelteile innerhalb einer Unterbaugruppe mitaddieren. Dann hätte ich diese doppelt drin. Natürlich geht das mittels Summewenns, das wäre aber etwas unübersichtlich, da auch die Einzelteile in den Unterbaugruppen markiert sind.
Warum ich die Funktion "=Summe()" verwende? Keine Ahnung. Ja, natürlich kann ich die Zellen auch einfach addieren. Das klappt mit dem folgenden Code:

Sub Summieren()
Dim Formel As String
Dim j As Integer
Dim Zeilenanzahl As Integer
Zeilenanzahl = 258
'Formel zur Aufsummierung der Kosten initialisieren
Formel = "="
For j = 2 To Zeilenanzahl
Formel = Formel & "R" & j & "C+"            'Summenformel um eine Zelle erweitern
Next j
'das letzte "," abschneiden und ")" anhängen
Formel = Left(Formel, Len(Formel) - 1)
'Summenformel einfügen
Cells(1, 1).FormulaR1C1 = Formel
End Sub
Jetzt habe ich aber noch eine Frage. Ab Zeilenanzahl = 258 (ca. 1400 Zeichen in einer Zelle) werden beim Editieren der Zellen die Bezugzellen nicht mehr farblich markiert, wobei die Rechnung noch funktioniert. Ist das mathematisch ok und "stabil"?
Viele Grüße
Martin
Anzeige
AW: max. Zeichenanzahl String/Formel
21.09.2021 13:24:52
UweD
Hallo
du kannst die Summe auch direkt ausrechnen ohne den Umweg über eine Formel

Sub Summieren()
Dim Summe As Double
Dim j As Integer
Dim Zeilenanzahl As Integer
Zeilenanzahl = 258
For j = 2 To Zeilenanzahl
Summe = Summe + Cells(j, 1)
Next j
'Summen einfügen
Cells(1, 1) = Summe
End Sub
LG UweD
AW: max. Zeichenanzahl String/Formel
21.09.2021 13:41:53
Martin
Hallo UweD,
nein, wie gesagt, möchte ich, dass die Formel da drin steht, sodass der Anwender sieht wie es berechnet wird.
Die Frage ist nun, ob ab Zeilenanzahl = 258 noch richtig gerechnet wird, da es nicht mehr farblich markiert wird. Ich denke ja, wollte nur fragen, ob jemand damit Erfahrungen hat.
Viele Grüße
Martin
Anzeige

312 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige