Microsoft Excel

Herbers Excel/VBA-Archiv

"unabhängige" Matrixformeln sind nicht einzeln ... | Herbers Excel-Forum


Betrifft: "unabhängige" Matrixformeln sind nicht einzeln ... von: Peter
Geschrieben am: 15.01.2012 17:49:57

... änderbar.

Guten Tag

mit nachstehender Code trage ich in der aktuellen Markierung (mehrere Zellen) eine Matrixformel ein (in geschweiften Klammern).

Sub abc()
With Selection
.FormulaArray = "=MAX(IF(R[6]C[-2]:R[11]C[-2]<=nadi,R[6]C[-2]:R[11]C[-2]))"   'Array-Formel im  _
Z1S1 Format
End With
End Sub

Obschon jede Matrix-Formel einzeln funktioniert, kann innerhalb der Markierung eine einzelne Formel nicht mehr angepasst werden (Fehlermeldung: "Teile eines Arrays können nicht geändert werden.")

Ich nehme an, dass die Matrixformel pro Zelle einsetzen muss. Wie muss ich obigen Code erweitern, damit ich dann innerhalb der aktuellen Markierung eine einzelne Matrixformel anpassen kann? Geht das irgendwie mit For Each Cell in Selection oder ähnlich?

Gruss, Peter

  

Betrifft: AW: "unabhängige" Matrixformeln sind nicht einzeln ... von: Luschi
Geschrieben am: 15.01.2012 17:59:50

Hallo Peter,

wenn Du das Tutorial von Peter Haserodt durchgearbeitet hast, wirst Du besser verstehen, warum das so nicht geht.
siehe hier: http://www.online-excel.de/excel/singsel.php?f=26

Gruß von Luschi
aus klein-Paris


  

Betrifft: AW: "unabhängige" Matrixformeln sind nicht einzeln ... von: Peter
Geschrieben am: 15.01.2012 20:12:56

Hallo Luschi
o.k. das werde ich noch durcharbeiten müssen. Doch der Ansatz, jede Zelle einzeln anzusprechen und die Array-Formel einzusetzen, müsste gehen.

Gruss, Peter


  

Betrifft: ...wenn das eine 1zellige Matrixfml ist, ... von: Luc:-?
Geschrieben am: 16.01.2012 14:09:44

…Peter!
Außerdem brauchst du keine Selection. Sprich den Bereich direkt an und durchlaufe ihn mit For Each → etwa so …
For Each xWert In Range("xyz"): xWert.FormulaArray = …
Anderenfalls gilt die Matrixfml für alle Zellen wie du ja schon bemerkt hast. In allen steht dann ja auch das gleiche Ergebnis. Bei einem von 4 MxFml-Typen muss man das sogar machen, um das richtige Einzelergebnis (dann leider zumindest doppelt) zu erhalten. Davon steht allerdings nichts in PHs Tutorium (für Anfänger). Ansonsten ist mir auch nicht ganz klar, inwiefern man dort erkennen kann, warum das hier mit VBA so nicht geht, denn es gibt ja beide Möglichkeiten (und jede hat 2 Typfälle!) und VBA wird da doch in diesem Zusammenhang gar nicht erwähnt, wenn ich nicht irre, Luschi!? ;->
Gruß Luc :-?


  

Betrifft: AW: ...wenn das eine 1zellige Matrixfml ist, ... von: Peter
Geschrieben am: 16.01.2012 14:15:41

Hallo Luc
Danke für die Mitteilung.
So habe ich's jetzt gemacht:

https://www.herber.de/forum/archiv/1244to1248/t1246369.htm

Gruss, Peter


  

Betrifft: AW: "unabhängige" Matrixformeln sind nicht einzeln ... von: fcs
Geschrieben am: 15.01.2012 19:15:18

Hallo Peter,

natürlich kannst du versuchen zellenweise eine Array-Formel einzufügen, aber dann muss du in der VBA-Formel die Zeilenbezüge anders festlegen.

Gruß
Franz

Entweder mit absoluten Zellbezügen so:

Sub abc()
  Dim Zelle As Range, Zeile1 As Long, Zeile2 As Long
  Zeile1 = Selection.Row + 6
  Zeile2 = Selection.Row + 11
  For Each Zelle In Selection
    With Zelle
      .FormulaArray = "=MAX(IF(R" & Zeile1 & "C[-2]:R" & Zeile2 & "C[-2]<=nadi,R" _
          & Zeile1 & "C[-2]:R" & Zeile2 & "C[-2]))"   'Array-Formel im _
    Z1S1 Format
  End With
  Next
End Sub


oder mit relativen Zellbezügen so
Sub def()
  Dim Zelle As Range, Zeile1 As Long, Zeile2 As Long
  For Each Zelle In Selection
    With Zelle
      Zeile1 = Selection.Row + 6 - Zelle.Row
      Zeile2 = Selection.Row + 11 - Zelle.Row
      .FormulaArray = "=MAX(IF(R[" & Zeile1 & "]C[-2]:R[" & Zeile2 & "]C[-2]<=nadi,R[" _
          & Zeile1 & "]C[-2]:R[" & Zeile2 & "]C[-2]))"   'Array-Formel im _
    Z1S1 Format
  End With
  Next
End Sub



  

Betrifft: AW: "unabhängige" Matrixformeln sind nicht einzeln ... von: Peter
Geschrieben am: 15.01.2012 20:14:02

Hallo Franz
Vielen Dank. Ich werde das versuchen.
Gruss, Peter


Beiträge aus den Excel-Beispielen zum Thema ""unabhängige" Matrixformeln sind nicht einzeln ..."