• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

matrixformule plaatsen in cel

Status
Niet open voor verdere reacties.

apikills

Gebruiker
Lid geworden
14 jul 2005
Berichten
160
Hallo allemaal,

ik probeer via VBA in een cel een matrix-formule te plaatsen, maar dat geeft als resultaat alleen maar dat de cel de tekst van de matrix-formule bevat. Het lukt mij niet om ctrl+shift+enter na te bootsen.

Ik heb de volgende code toegepast:

Range("C" & iRgl).FormulaR1C1 = "{=SOM(ALS(Lesuren!$C$6:$C$105=Cijfers!A" & iRgl &
";ALS(Lesuren!$AB$6:$AB$105=1;1;0);0))}"

Welke aanpassing moet ik doen om deze matrix-formule werkend in de cel te krijgen?

Alvast bedankt voor het meedenken !

Apikills
 
Beste apikills,

Wat je nu probeert, is een formule invoegen met daaromheen accolades. Dat ziet Excel inderdaad als tekst want een formule begint met het =-teken, en jouw invoer met een {.

Een klein voorbeeldje bij mij levert de volgende code op:
Code:
[B]Selection.FormulaArray [/B]= "=SUM(R[-2]C[-3]:RC[-3]*R[-2]C[-2]:RC[-2])"
Dit is de formule: {=SOM(A1:A3*B1:B3)}
De truuk voor jouw code zit 'm in het vetgedrukte gedeelte denk ik.

Kun je hier wat mee?

Richard
 
Hay Richard,

ik heb eea aangepast, maar ik krijg helaas nog steeds een foutmelding, nl:

'eigenschap FormulaArray van klasse Range kan niet worden ingesteld'

Ik draai een NL-versie van Office. Moet ik in de string nu NL of UK tekst voor de functies gebruiken (dus IF of ALS / SUM of SOM???)

De gebruikte code is

strFormule = "=SOM(ALS(Lesuren!R6C3:R105C3=Cijfers!R" & iRgl &"C1;ALS(Lesuren!R6C28:R105C28=1;1;0);0))"
Range("C" & iRgl).FormulaArray = strFormule

Apikills
 
Laatst bewerkt:
Weet iemand wellicht hoe de matrixformule juist in te voeren middels VBA?:(

apikills
 
API

Code:
strFormule = "=SUM(IF(Lesuren!C6:C105=Cijfers!A" & iRgl & ",IF(Lesuren!C6:C105=1,1,0),0))"
Range("C" & iRgl).FormulaArray = strFormule

Wigi
 
Hai Wigi,

zoals altijd weer de juiste oplossing, waarvoor mijn grote dank!:thumb:

Maar,

nu ik weer een stap verder ben, wil ik het achteraf toch graag anders doen. Het resultaat van de formule is een integer (zeg: iResultaat). Hoe kan ik het resultaat van de matrix-formule nu toewijzen aan iResultaat? Kortom, hoe wordt die code dan?:o

Ik wil namelijk liever toch geen formule in de cel, maar gewoon het resultaat van de matrix-formule (ivm sorteren van de uitvoergegevens).

Hoop dat je me ook hiermee kan helpen. Heb tot nu toe in ieder geval al weer veel geleerd:cool:
 
Hey Wigi,

Helemaal Top! Ik kan weer verder. Ontzettend bedankt.:D

api
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan