Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Formel mit VBA in Zelle schreiben "Syntax-Probleme"
#1
Hallo liebe Gemeinede,

ich habe folgendes Problem.

Ich schreibe mithilfe von VBA, Formeln in definierte Zellen.
Der Anwendungsfall gibt mir nun leider vor, das die gesamte Rechenlogik auf der Exceloberfläche zu liegen hat. Daher auch die Probleme bei der Umsetzung bzw. diese "riesiege" Formel...

Die Formel habe ich auf der Excel Oberfläche aufgebaut, getestet und sie funktioniert. Wink Bei der Umsetzung in VBA hakt es jetzt allerdings.

Die Formel soll mir einen Wert einer Matrix wiedergeben, welche in abhängigkeit von den drei Variablen "Ueber, Drunter, Summe_Tab & Zeile" stehen. 
Die Variablen werden für jede Zelle angepasst und im vorderen Teil der Schleife bestimmt, mein Problem liegt anscheinend in zwei Bereichen.

Zum einen übergebe ich in der Originalformel die Adresse der Matrix, welche verwendet werden soll mittels indirect an den SVERWEIS, des weiteren gebe ich der Range auch noch einen Bezug auf das entsprechende Blatt mit 'STEUERUNG'! mit.    

Zum anderen scheine ich ein Problem mit der erzeugung eben dieser Range zu haben. Einzeln lassen sich die "eckpunkte" der Range erzeugen allerdings kann ich die zusammenführung mittels : anscheinend so nicht in VBA abbilden.
Ich hab da schon die diversen Varianten " & ":" & " I ':' I ; etc. versucht, allerdings ohne erfolg. Es kommt immer der Fehler "Laufzeitfehler '1004': Anwendungs- oder objektdefinierter Fehler"

Cells(I, lastcolumn1 + F).Formula = "=vlookup(hlookup(" & Ueber & "," & Summen_Tab & "," & Zeile & "-4,false),indirect('Steuerung'!&address(vlookup(" & Ueber & ",'Steuerung'!$B$40:$C$57,2,false)+39,hlookup(" & Drunter & ",'Steuerung'!$D$38:$I$39,2,false)+3):address(vlookup(" & Ueber & ",'Steuerung'!$B$40:$C$57,2,false)+41,hlookup(" & Drunter & ",'Steuerung'!$D$38:$I$39,2,false)+4)),2,true)"

Habt Ihr ne Idee?
Gruß
Hunibol
Antworten Top
#2
Hallo,

wie sieht denn die Formel in VBA aus, wenn Du sie in der Tabellen hast (ohne jetzt die Variablen)

Im Direktfenster

PHP-Code:
?ActiveCell.Formula 

eingeben und Return drücken.
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#3
Hallo,

wie wäre es, wenn Du zumindest die Originalformel vorstellen würdest?
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#4
(09.06.2016, 11:42)BoskoBiati schrieb: Hallo,

wie wäre es, wenn Du zumindest die Originalformel vorstellen würdest?

Hallo BoskoBiati,

die Originalformel sieht so aus:
=WENN(Mat_Ove_Con="x";SVERWEIS(WVERWEIS(M$1;$DF$5:$DS$34;ZEILE(L11)-4;FALSCH);INDIREKT("Steuerung!"&ADRESSE(SVERWEIS(M$1;Steuerung!$B$40:$C$57;2;FALSCH)+39;WVERWEIS(M$6;Steuerung!$D$38:$I$39;2;FALSCH)+3)&":"&ADRESSE(SVERWEIS(M$1;Steuerung!$B$40:$C$57;2;FALSCH)+41;WVERWEIS(M$6;Steuerung!$D$38:$I$39;2;FALSCH)+4));2;WAHR);SVERWEIS(WVERWEIS(M$1;$DF$5:$DS$34;ZEILE(L11)-4;FALSCH);INDIREKT("Steuerung!"&ADRESSE(SVERWEIS(M$1;Steuerung!$B$40:$C$57;2;FALSCH)+39;WVERWEIS(M$6;Steuerung!$D$38:$I$39;2;FALSCH)+3)&":"&ADRESSE(SVERWEIS(M$1;Steuerung!$B$40:$C$57;2;FALSCH)+41;WVERWEIS(M$6;Steuerung!$D$38:$I$39;2;FALSCH)+4));2;WAHR))


Das Problem mit dem : hab ich schon gelöst. & "":"" & ich hatte die "&-Zeichen" vergessen und den : muss ich in doppelte Hochkommata stellen.



Gruß
Hunibol
Antworten Top
#5
Hallo,

was mir bei der Formel auffällt:

1. war im falschen Beitrag
2. Eine Formel mit Adresse ist für meine Begriffe fast immer falsch aufgebaut, weil man mit vernünftigen INDEX-Formeln das lösen kann.
3. Ein Konstrukt aus WVERWEIS/SVERWEIS ist genauso seltsam, wenn nicht Nonsens.
4. Sehe ich hier keine Notwendigkeit für INDIREKT.
5. Sind Dann- und Sonst-Teil identische Formeln!

In Unkenntnis der Tabelle läßt sich da allerdings nichts verbessern, nachvollziehen läßt sich dann sowieso nichts.

Als Ansatz:


Code:
=WENN(Mat_Ove_Con="x";SVERWEIS(WVERWEIS(M$1;$DF$5:$DS$34;ZEILE(A7);0);INDEX(Steuerung!$D$39:$S$123;SVERWEIS(M$1;Steuerung!$B$40:$C$57;2;0);WVERWEIS(M$6;Steuerung!$D$38:$I$39;2;0)):INDEX(Steuerung!$D$39:$S$123;SVERWEIS(M$1;Steuerung!$B$40:$C$57;2;0)+1;WVERWEIS(M$6;Steuerung!$D$38:$I$39;2;0)+2);2;1);SVERWEIS(WVERWEIS(M$1;$DF$5:$DS$34;ZEILE(A7);0);INDEX(Steuerung!$D$39:$S$123;SVERWEIS(M$1;Steuerung!$B$40:$C$57;2;0);WVERWEIS(M$6;Steuerung!$D$38:$I$39;2;0)):INDEX(Steuerung!$D$39:$S$123;SVERWEIS(M$1;Steuerung!$B$40:$C$57;2;0)+1;WVERWEIS(M$6;Steuerung!$D$38:$I$39;2;0)+2);2;1))
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste