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.

FormulaLocal -> Array angebbar?
#1
Question 
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.aspx

lieben Dank

Julia :)
Antworten Top
#2
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:
  • o0Julia0o
Antworten Top
#3
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
Antworten Top
#4
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:
  • o0Julia0o
Antworten Top
#5
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.
Antworten Top
#6
Hallo,

das mit dem Range hast Du falsch verstanden. Mit der FormulaArray hast Du auch nicht berücksichtigt. Undecided

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:
  • o0Julia0o
Antworten Top
#7
danke Steffl! Muss es nicht so lauten?
->
Code:
Worksheets("Tabelle1").Range("A1:B40").FormulaArray = "=" & Worksheets("Tabelle2").Range("C1").Value & "Tabelle2!$A1:$B40"
Antworten Top
#8
Hallo Julia,

ja, muss es.
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#9
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?
Antworten Top
#10
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
Antworten Top


Gehe zu:


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