Microsoft Excel

Herbers Excel/VBA-Archiv

Array Formel eintragen | Herbers Excel-Forum


Betrifft: Array Formel eintragen von: Peter
Geschrieben am: 14.01.2012 21:46:47

Guten Abend

Ich habe in der Datei "Simulation_Ziel" im Bereich N5:S7 eine komplizierte Matrixformel (immer die gleiche), die mir aus der Datei "Simulation_Quelle" Daten abfragt.
Damit das funktioniert, müssen die hochgeladenen Dateien mit "Simulation_Quelle.xlsm" resp. mit "Simulation_Ziel.xlsm" benannt werden. Zudem muss in der Datei "Simulation_Ziel" in Zelle O14 der Name [Simulation_Quelle.xlsm] in eckigen Klammern stehen.

Nun möchte ich diese Formeln mittels VBA (testweise im Bereich N9:S11) einfügen. Der Code habe ich in einem Modul eingetragen und er könnte mit Anklicken des blauen Textfeldes aufgerufen werden. Nur funktioniert mein Code nicht und ich weiss nicht was ich ändern muss.

Danke für eure Hilfe.

Gruss, Peter

Dateiname "Simulation_Quelle.xlsm": https://www.herber.de/bbs/user/78449.xlsm
Dateiname "Simulation_Ziel.xlsm": https://www.herber.de/bbs/user/78450.xlsm


  

Betrifft: AW: Array Formel eintragen von: Hajo_Zi
Geschrieben am: 15.01.2012 10:01:48

Hallo Peter,

ich sehen keinen Grund diese aufwemndigen Sachen mit den Dateien zu machen. Du hast in VBA die Formel schon in englisch eingetragen, das muss bei Array Formeln sein.

GrußformelHomepage


  

Betrifft: AW: Array Formel eintragen von: Peter
Geschrieben am: 15.01.2012 14:36:44

Hallo Hajo
ich habe folgendes gemacht:

1. Array-Formel in Tabelle eingetragen
2. in Direktbereich ?activecell.FormulaArray eingegeben
3. mit VBA-Code with Range : .FormulaArray = "" End With (innerhalb der "" das Ergebnis aus 2. eingetragen, wobei, die " verdoppelt wurden)

Das Vorgehen habe ich in meinem ersten Eintrag im Detail aufgezeigt und die entsprechenden Dateien hochgeladen.

Weshalb funktioniert das nicht?

Kann mir da jemand weiterhelfen?

Danke und Gruss, Peter

Sub testArray()
With Range("TestEintrag")
.FormulaArray = "=IF($M7="""","""",INDEX(INDIRECT("" '""&OpenEx&$D7&""'!""&nurtext(N$2)&""2:""& _
nurtext(N$2)&""12""),MAX(IF((INDIRECT(""'""&OpenEx&$D7&""'!E2:E12"")<=NAVDATE)*(INDIRECT(""'""&OpenEx&$D7&""'!C2:C12"")=MAX(IF(INDIRECT(""'""&OpenEx&$D7&""'!E2:E12"")<=NAVDATE,INDIRECT(""'""&OpenEx&$D7&""'!C2:C12"")))),ROW($1:$11)))))"
End With
End Sub



  

Betrifft: AW: Array Formel eintragen von: Hajo_Zi
Geschrieben am: 15.01.2012 14:52:43

Hallo Peter,

aus Deinem Code ist nicht ersichtlich was OpenEx ist vielleicht Variable dann ist diese Schreibweise OpenEx&$D7 falsch.

Gruß Hajo


  

Betrifft: AW: Array Formel eintragen von: Peter
Geschrieben am: 15.01.2012 15:08:36

Hallo Hajo
OpenEx ist eine benannte Zelle und bezieht sich auf =Eintrag!$O$14
In dieser Zelle steht [Simulation_Quelle.xlsm] - also der Dateiname der Quelldatei.

Gruss, Peter


  

Betrifft: AW: Array Formel eintragen von: Hajo_Zi
Geschrieben am: 15.01.2012 15:13:26

Hallo Peter,

dann wäre es doch Range("openEx") oder sehe ich das falsch. aber die verbindung mit $D7 ist mir da auch nicht klar.
Vielleicht solltest Du mal die korekte Formel posten.
Da noch mehr Sachen unklar sind z.b. was ist nurtext(N$2)

Gruß Hajo


  

Betrifft: AW: Array Formel eintragen von: Peter
Geschrieben am: 15.01.2012 15:46:40

Hallo Hajo
Die korrekte Formel steht in der Datei "Simulation_Ziel", die ich hochgeladen habe (vgl. erster Eintrag) und zwar in allen Zellen des Bereiches N9:S11. "nurText" ist eine Funktion, die aus einem String alle Zahlen eliminiert. Aus E2 wird dann E und aus AE2 wird dann AE.

Gruss, Peter


  

Betrifft: AW: Array Formel eintragen von: Peter
Geschrieben am: 15.01.2012 17:36:40

Hallo Hajo
Bin jetzt mit der VBA-Hilfe schlauer geworden. Die Formel kann in VBA nur in der R1C1 - Bezugsart übergeben werden. Zudem darf die Formel nicht mehr als 255 Zeichen beinhalten.
Wenn das gegeben ist, kann ich eine Formel mittels VBA tatsächlich eintragen.
Jetzt ist ein anderes Problem aufgetaucht, doch das stelle ich in einen weiteren Thread, sonst wird das ganze unübersichtlich.

Gruss, Peter


  

Betrifft: AW: Array Formel eintragen von: Hajo_Zi
Geschrieben am: 15.01.2012 17:39:09

Hallo Peter,

das mit R1C1 steht in der Hilfe ich habe es vor kurzem getestet mit der A1 schreibweise und es ging.

Gruß Hajo


  

Betrifft: AW: Array Formel eintragen von: Peter
Geschrieben am: 15.01.2012 20:15:08

Hallo Hajo
Danke für den Hinweis. Dann bin ich bei meiner ursprünglichen Version daran gescheitert, dass die Formel mehr Zeichen als 255 hatte.

Gruss, Peter


Beiträge aus den Excel-Beispielen zum Thema "Array Formel eintragen"