Registriert seit: 08.07.2016
Version(en): 2016
15.03.2017, 17:17
hey,
eine Formel so mit VBA zu erstellen, als wenn man sie eingetippt hätte, gehet ja so:
Code:
Range("Tabelle1!A1:A40").FormulaLocal = "=" & Range("Tabelle2!C1").Value & "Tabellle2!$D1"
Kann man aber auch direkt ein ganzes Array angeben? So geht es nicht:
Code:
Range("Tabelle1!A1:B40").FormulaLocal = "=" & Range("Tabelle2!C1").Value & Range("Tabellle2!$A1:B40").Value
Klar könnte ich das in 2 Schritten machen, wie bei dem oberen Code, welcher ja funktioniert. Doch bei größeren Arrays wäre es wesentlich einfacher & übersichtlicher, wenn das mit Angabe eines Arrays gehen würde.
Das ist ja auch nicht wirklich passend dazu:
https://msdn.microsoft.com/de-de/library...37104.aspxlieben Dank
Julia :)
Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo Julia,
was sollen die Formel eigentlich machen? Was ist das denn für eine Range-Angabe?
Gruß Stefan
Win 10 / Office 2016
Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:1 Nutzer sagt Danke an Steffl für diesen Beitrag 28
• o0Julia0o
Registriert seit: 08.07.2016
Version(en): 2016
die Formel soll dann folgendes machen:
Code:
Range("Tabelle1!A1:A40").FormulaLocal = "=" & Range("Tabelle2!C1").Value & "Tabellle2!$A1"
Code:
Range("Tabelle1!B1:B40").FormulaLocal = "=" & Range("Tabelle2!C1").Value & "Tabellle2!$B1"
Also in Tabelle A1 bis A40 soll die Formel welche in Tabelle2C1 steht kombiniert mit Tabelle2!A1-A40 eingfügt werden. Und das gleiche für B1 bis B40. Jedoch hier ist der 2. Teil der Formel dann neben TAblle2!C1 Tabelle2!$B1-B40.
In einer Fomel geht das aber ja leider nicht so:
Code:
Range("Tabelle1!A1:B40").FormulaLocal = "=" & Range("Tabelle2!C1").Value & Range("Tabellle2!$A1:$B1").Value
Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo Julia,
es gibt die FormulaArray-Eigenschaft. Lies mal
hier. Bei deiner Range-Angabe kommt es bei mir zu einem Fehler wenn Sie in einem Tabellenmodul steht, verwende lieber die bessere Variante.
Code:
Worksheets(.....).Range(.....)
Gruß Stefan
Win 10 / Office 2016
Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:1 Nutzer sagt Danke an Steffl für diesen Beitrag 28
• o0Julia0o
Registriert seit: 08.07.2016
Version(en): 2016
16.03.2017, 10:57
(Dieser Beitrag wurde zuletzt bearbeitet: 16.03.2017, 10:57 von o0Julia0o.)
Danke, klappt nicht: Typen unverträglich erhalte ich, wenn ich es so mache:
Code:
Range("Tabelle1!A1:B40").FormulaLocal = "=" & Range("Tabelle2!C1").Value & Worksheets("Tabelle2").Range("$A1:$B1").Value
Die Zeile wird gelb markiert.
Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo,
das mit dem Range hast Du falsch verstanden. Mit der FormulaArray hast Du auch nicht berücksichtigt.
Code:
Sub prcX()
Worksheets("Tabelle1").Range("A1:B40").FormulaArray = "=" & Worksheets("Tabelle2").Range("C1").Value & "Tabelle2!$A1:$A40"
End Sub
Gruß Stefan
Win 10 / Office 2016
Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:1 Nutzer sagt Danke an Steffl für diesen Beitrag 28
• o0Julia0o
Registriert seit: 08.07.2016
Version(en): 2016
20.03.2017, 18:51
(Dieser Beitrag wurde zuletzt bearbeitet: 20.03.2017, 18:51 von o0Julia0o.)
danke Steffl! Muss es nicht so lauten?
->
Code:
Worksheets("Tabelle1").Range("A1:B40").FormulaArray = "=" & Worksheets("Tabelle2").Range("C1").Value & "Tabelle2!$A1:$B40"
Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo Julia,
ja, muss es.
Gruß Stefan
Win 10 / Office 2016
Registriert seit: 08.07.2016
Version(en): 2016
wenn ich dann ein Feld editieren möchte, erhalte ich: "Teile einer Matrix können nicht geändert werden". Was ja ungünstig ist. Aber anders geht es wohl nicht, oder?
Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo Julia,
vielleicht so?
Code:
Sub prcFormel()
'Worksheets("Tabelle1").Range("A1:B40").FormulaArray = "=" & Worksheets("Tabelle2").Range("C1").Value & "Tabelle2!$A1:$B40"
Worksheets("Tabelle1").Range("A1:B40").Formula = "=" & Worksheets("Tabelle2").Range("C1").Value & "Tabelle2!A1"
End Sub
Habe eh nicht verstanden, warum Du hier ein Array brauchst.
Gruß Stefan
Win 10 / Office 2016