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.

Excel Matrixformel durch VBA erstellen
#1
Hallo Zusammen

ich möchte per VBA Befehl eine Matrixformel in eine Zelle schreiben lassen.
Ich habe die Formel erst in Excel aufgebaut und getestet, hier funktioniert sie einwandfrei.

Nun möchte ich sie in VBA Sprache übersetzen und hier sitzt das Problem. 
Ich weiss ich muss für eine Matrixformel in VBA mit FormularArray arbeiten und ausserdem Englische Formelbezeichnungen sowei "," statt ";" verwenden. 
Habe ich auch so umgesetzt, allerdings bekomme ich mit meiner bisherigen "Übersetzung" ich immer den Fehler "Laufzeitfehler '9': Index ausserhalb des gültigen Bereichs"

Formel in Excel
=INDEX(Projekte[[Projektbezeichnung]:[Projektnummer]];AGGREGAT(15;6;(ZEILE([Projektbezeichnung])-1)/(--(SUCHEN(Overview!$O$12;[Projektbezeichnung])>0));ZEILE()-1);1)

Formel in VBA
Sheets("Projects1000").Cells(4, 4).FormulaArray = "=INDEX(Projekte][[Projektbezeichnung]:[Projektnummer]],AGGREGATE(15,6,(ROW([Projektbezeichnung])-1)/(--(SEARCH(Overview!$O$12,[Projektbezeichnung])>0)),ROW()-1),1)"

Ich vermute mal es liegt an einer verkehrten Schreibweise, eventuell mit den eckigen Klammern der Bereichsnamen?


Es wäre super wenn jemand die Lösung weiss
Antworten Top
#2
Hallo d...,

Ein Fehler ist die schliessende eckige Klammer hinter "Projekte".
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





Antworten Top
#3
Hallo Ego

danke für deine Antwort. 

Stimmt die Klammer gehörte da nicht hin - leider habe ich noch immer die gleiche Fehlermeldung  Undecided
Antworten Top
#4
Verwende ein Array in VBA statt Matrix-Formel.

In VBA kann man auch kalkulieren.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#5
Hi,

warum überhaupt FormulaArray? M.E. reicht da Formula. Außerdem kann niemand ohne Tabellenmuster feststellen, warum Du außerhalb des Bereichs landest. Ich tippe mal, dass die Suchfunktion hier falsche Ergebnisse liefert.
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#6
Hallo d...,
Zitat:"Laufzeitfehler '9': Index ausserhalb des gültigen Bereichs"

bedeutet: Das Arbeitsblatt "Projects1000" ist nicht vorhanden. Blush
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





Antworten Top
#7
Hallo Helmut

ohje.. ich war so fixiert auf die korrekten Klammern und Formelübersetzungen, dass ich dieses Detail nicht bemerkt habe.
Es hat tatsächlich ein Leerzeichen im Sheetname gefehlt...  :33: :33: 


Vielen Dank für eure Hilfe !
Antworten Top


Gehe zu:


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