[VBA][Excel] subtotal formule mag niet gezet worden in code?

Pagina: 1
Acties:
  • 225 views sinds 30-01-2008
  • Reageer

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 14-08 12:38

Crazy D

I think we should take a look.

Topicstarter
Ik heb de mazzel (:P) dat ik in Excel een raport moet bouwen, gebaseerd op een aantal selectiecriteria. Dat is niet zo spannend, alleen wil ik graag wat standaard Excel functies (formules) gebruiken, aangezien ik liever lui ben dan moe, en waarom zou ik zelf tellertjes bij houden als Excel dat zelf al heel goed kan.

Code om een formule in een cell te zetten is niet zo spannend:
code:
1
Cells(lRegel, sKolom).Formula = "=functie(params)"

En dat werkt ook uitstekend als de functie "SUM" is
code:
1
Cells(lRegel, sKolom).Formula = "=SUM(A1:A5)"

Echter, zodra ik de reuze handige functie "SUBTOTAL" wil gebruiken, gaat het mis. Terwijl de subtotal zelf goed is, als ik nl. de formule, zoals ik die wil zetten vanuit code, rechtstreeks in de cell type, werkt het. Alleen, vanuit code dus niet :/
code:
1
Cells(lRegel, sKolom).Formula = "=SUBTOTAL(9;A1:A5)"

En dat geeft een mooie nuttige error "Application-defined or object-defined error". Waar je dus geen fluit aan hebt :/
Via de help en google is er wel een hoop te vinden over subtotal, maar niet over hoe je die vanuit VBA code kunt zetten.
De reden waarom ik subtotal wil gebruiken, is dat ik per blok in het raport, een totaal wil zien, en onderaan het raport ook. Subtotal is zo handig, omdat als je een range opgeeft waarbinnen subtotals staan, die worden genegeerd. Met sum worden die wel meegenomen, en klopt het totaal natuurlijk niet. En met wat creatief stoeien kan ik dan wel ranges gaan onthouden welke onderaan het raport gesumt moeten worden, maar dan kan ik weer net zo goed zelf een tellertje bijhouden en dat wilde ik nou juist liever niet (want liever lui dan moe :P).

Heeft iemand een idee waarom subtotal niet vanuit code gezet mag worden? Nogmaals, als ik de string waarin de subtotal-formule staat, in de debug window print, en die copy-paste naar de cell waar ie moet komen, werkt ie prima, dus de formule zelf is ok. En het werkt dus ook met bv de SUM functie.... maar dus niet met subtotal :(

Oh ja, ik wist dat ik wat vergat... tis Excell (Office) 2000

[ Voor 4% gewijzigd door Crazy D op 27-03-2003 11:20 ]

Exact expert nodig?


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Tip: neem een macro op. Vul die formule in in een cel. Kijk wat Excel er zelf van bakt!

Wil je van een selectie subtotals berekenen?
code:
1
2
Selection.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(1), _
        Replace:=True, PageBreaks:=False, SummaryBelowData:=True


Wil je alleen de subtotal formule ergens plakken:
code:
1
ActiveCell.FormulaR1C1 = "=SUBTOTAL(9,R[-5]C[-3]:R[-4]C[-3])"

[ Voor 66% gewijzigd door BtM909 op 27-03-2003 11:29 ]

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 14-08 12:38

Crazy D

I think we should take a look.

Topicstarter
BtM909 schreef op 27 March 2003 @ 11:26:
Tip: neem een macro op. Vul die formule in in een cel. Kijk wat Excel er zelf van bakt!
ActiveCell.Paste :+

Argh [censuur], als ik de formule handmatig intype maakt ie er
code:
1
.FormulaR1C1 = "=SUBTOTAL(9,R[-3]C:R[-1]C)"

van.
De enigste keer dat ik dacht dat ik t wel zonder macro opnemen kon.... |:(
mjah dat werkt dus prima. Al snap ik er nog steeds geen fluit van dat de SUM functie wel prima werkt met cell.Formula, en subtotal niet. Mjah boeiuh, als 't maar werkt... :)
Tnx :)

Exact expert nodig?