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

VBA-Problem - FormulaLocal

VBA-Problem - FormulaLocal
21.05.2014 10:51:07
kimbo
Guten Morgen,
ich habe im Forum leider nichts gefunden, so richtig weiß ich mein Problem auch nicht zu suchen. _ Und zwar hab ich folgendes Problem. Die folgende Zeile funktioniert problemlos:

Cells(4, 13).FormulaLocal = "" & formel_mk & """MK: " & max_mk & """)))"

Allerdings wenn ich im gleichen Sub, oder in einem neuen Sub die folgende benutze:

Cells(4, 12).FormulaLocal = "" & formel_pk & """PK: " & max_pk & """)))"

gibt er mir "Laufzeitfehler '1004': Anwendungs- oder objektdefinierter Fehler"
Bitte um Hilfe, bin etwas ratlos :(
Gruß
kimbo

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA-Problem - FormulaLocal
21.05.2014 11:02:36
Daniel
Hi
es muss natürlich eine Sinnvolle Formel in deutscher Schreibweise mit A1-Zellbezügen herauskommen.
im ersten Fall verwendest du die Variablen formel_mk und max_mk
im zweiten Fall verwendest du die Variablen formel_pk und max_pk
da du hier unterschiedliche Variablen verwendet (_mk und _pk) würde ich an deiner Stelle erst mal die Variablen überprüfen und auf Unterschiede zwischen der Funktionierenden und der nicht funktionierenden Version untersuchen.
Gruß Daniel

AW: VBA-Problem - FormulaLocal
21.05.2014 11:15:20
kimbo
Hi Daniel,
danke erstmal für deine Antwort. Das habe ich schon versucht, ich poste hier mal beide Codes, vielleicht macht das mein Problem etwas verständlicher.

Worksheets("Ausführelement").Select
max_mk = Range("I1").Value
Dim formin() As Variant
ReDim formin(max_mk)
formel_mk = "=WENN([@[Gesamtmenge]]
Das ist der Code der problemlos läuft.

Worksheets("Ausführelement").Select
max_pk = Range("I2").Value
Dim formout() As Variant
ReDim formout(max_pk)
formel_pk = "=WENN([@[Ø-VK-Preis]]
der letztere leider in besagter Zeile nicht.
Ziel der ganzen Übung war/ist eigentlich, dass ich eine Tabelle habe in der man Cluster eintragen lassen können soll, sprich Mengencluster von-bis, Preiscluster von-bis etc. In den Zellen I1 und I2 sind die Anzahl der eingetragenen Cluster, da diese beliebig erweiterbar sein sollen. Über die Schleife und das Array stellt er dann die Formel zusammen.
Für mich sieht aber beides genau gleich aus...
Gruß
kimbo

Anzeige
AW: VBA-Problem - FormulaLocal
21.05.2014 12:01:58
Daniel
wie sehen denn die Formeln konkret aus?
lass sie dir mal als Text in die Zellen schreiben, dann kannst du sie dir in Ruhe anschauen und auf Fehler überprüfen.
hierzu einfach ein "x" vor das "=" stellen.
um den Text dann zur Formel zu machen, einfach das "x" in der Zelle entfernen, bei dieser "Handeingabe" der Formel bekommst du vielleicht einen konkretern Hinweis auf die Fehlerursache.
formel_pk = "x=WENN([@[Ø-VK-Preis]]

Gruß Daniel

AW: VBA-Problem - FormulaLocal
21.05.2014 12:25:31
kimbo
Danke!
die Formel sah an und für sich richtig aus, für die erste Formel hatte ich insgesamt 4 solcher Cluster,
für die zweite allerdings 6. Hab nicht berücksichtigt, dass sich die Abschlussklammern von der Anzahl her auch verändern. Hab's jetzt über eine extra Schleife mit eingebunden.
Besten Dank, Daniel!

Anzeige
AW: warum extra Schleife?
21.05.2014 13:28:06
Daniel
die Anzahl der WENN-Blöcke in der Formel und damit die Anzahl der erforderlichen Abschlussklammern hängt doch von der Variablen max_mk bzw max_pk ab.
daher kannst du auch die Anzahl der benötigten abschlussklammern berechnen und über die STRING-Funktion direkt anfügen:
Cells(4, 12).FormulaLocal = "" & formel_pk & """PK: " & max_pk & """" & String(max_pk -2 , ")")
Gruß Daniel

AW: warum extra Schleife?
21.05.2014 15:17:57
kimbo
das war das erst beste was mir dazu eingefallen ist.
ich addiere über eine zusätzliche schleife

'k = ")"
'For p = 2 To max_pk - 1
'k = k & ")"
'Next p
ähnlich wie davor die Klammern und hab sie dann so eingearbeitet
Cells(4, 12).FormulaLocal = "" & formel_pk & """PK: " & max_pk & """" & k & ""

Dein Vorschlag habe ich versucht, da bekam ich allerdings wieder einen Laufzeitfehler, anpassen habe ich versucht, aber mir war bis dato die String-Funktion so gar nicht bekannt.
Gruß
kimbo
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige