Anzeige
Archiv - Navigation
1076to1080
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Matrixformel mit Variable

Matrixformel mit Variable
02.06.2009 22:12:48
MichiM
Hallo,
nachdem ich durch eure Hilfe endlich die Formel hinbekommen habe, hapert es am einfügen mit vba (kopieren und leicht modifizieren ja - selber leider nein ;-) ...
Die händisch eingegebene, funktionierende Matrixformel:
{=MIN(WENN((($A$2:$A100=$A19)*($B$2:$B100=$B19)); $C$2:$C100))}
Diese muss ich - variabel gestaltet - mit vba einfügen:

Private Sub cbut_ok_Click()
Dim LetzteZeile3 As Long
With Worksheets("ZS_Stunden")
LetzteZeile3 = .Range("A65536").End(xlUp).Row + 1
Worksheets("ZS_Stunden").Range("L" & LetzteZeile3).FormulaArray =
"=MIN(WENN((($A$2:$A100=$A" & LetzteZeile3 & ")*($B$2:$B100=$B" & LetzteZeile3 & ")); $C$2:$ _
C100))"
End With
End Sub


Beim versuchen ist mir aufgefallen, dass dies bei Verwendung mit Variablen nicht läuft.
Allerdings habe ich keinen Hinweis gefunden, dass es generell nicht möglich ist.
Habe ich einen Denkfehler im Aufbau der Formel, oder ist es generell nicht möglich?
LG
MichiM

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Ersetze "WENN" durch "IF"
02.06.2009 22:28:21
NoNet
Hallo Michi,
die Funktion muss in VBA in englischer Schreibweise eingegeben werden !
MIN bleibt MIN, aber aus WENN wird IF :

Worksheets("ZS_Stunden").Range("L" & LetzteZeile3).FormulaArray= _
"=MIN(IF((($A$2:$A100=$A" & LetzteZeile3 & ")*($B$2:$B100=$B" & LetzteZeile3 & ")), $C$2:$C100))"

Gruß, NoNet
AW: Ersetze "WENN" durch "IF"
02.06.2009 22:42:15
MichiM
Hallo NoNet,
stimmt - funktioniert aber leider auch nicht.
Der Debugger meldet hier:
Worksheets("ZS_Stunden").Range("L" & LetzteZeile3).FormulaArray =
"=MIN(WENN((($A$2:$A100=$A" & LetzteZeile3 & ")*($B$2:$B100=$B" & LetzteZeile3 & ")); $C$2:$ _
C100))"
Laufzeitfehler '1004':
Die FormulaArray-Eigenschaften des Range-Objektes kann nicht festgelegt werden.

Ich krieg die Krise - jetzt klappt auch das nicht mehr (war mir sicher, dass es vorhin ging)...
Worksheets("ZS_Stunden").Range("L" & LetzteZeile3).FormulaArray = "=MIN(IF((($A$2:$A$100=$A$26)*($B$2:$B$100=$B$26));$C$2:$C$100))"
MichiM
Anzeige
noch offen ... oT
02.06.2009 22:42:55
MichiM
...und natürlich KOMMA anstatt Semikolon
02.06.2009 23:15:21
NoNet
Hey Michi,
Du hast das leider "verschlimmbessert" !
In VBA gilt wie bereits geschrieben die englische Formel-Syntax, dort werden Argumente durch KOMMA und nicht durch SEMIKOLON getrennt !
Daher habe ich in meinem Lösungsvorschlag auch ein KOMMA vor $C$2:$C100 verwendet und kein Semikolon !
Bitte das Beispiel einfach mal 1:1 (ohne Änderungen oder Anpassungen !) ausprobieren !!
Gruß, NoNet

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige