Oh oke dus ik moet de code er even bij plakken
. De code is:
Sub CommandButton2_Click()
Dim iLaatsteRegel As Integer
Application.ScreenUpdating = False
'verwijder de oude subtotaaltabel
Range("L:U").Delete
'filter de basistabel op unieke records, copieer en plak in kolom I:O
Columns("G:I").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Columns( _
"R:T"), Unique:=True
'maak de header 'totalen' aan voor kolom P
Range("U1").FormulaR1C1 = "TOTAAL VERBRUIK"
Range("V1").FormulaR1C1 = "TOTALE KOSTEN"
'en ook 'vet'...
Range("U1").Characters.Font.FontStyle = "Bold"
'maak de kolommen passend aan de inhoud
Columns("L:V").EntireColumn.AutoFit
'plaats de formule sumif in cel P2
Range("U2").FormulaR1C1 = "=SUMIF(C[-13],RC[-2],C[-15])"
Range("V2").FormulaR1C1 = "=SUMIF(C[-14],RC[-3],C[-17])"
'bepaal de laatste regel van de filtertabel
iLaatsteRegel = Range("T2").End(xlDown).Row
'copieer en plak de formule in de rest van kolom P
Range("U2").AutoFill Destination:=Range("U2:U" & iLaatsteRegel)
Range("U1").Select
Range("V2").AutoFill Destination:=Range("V2:V" & iLaatsteRegel)
Range("V1").Select
Application.ScreenUpdating = True
End Sub
Als ik deze macro uit ga voeren filtert die het verbruik er prima uit, maar de totaalkosten niet. Hij filtert namelijk de dubbele artikelnummers er uit en baseert daar de totale kosten op. Dit doet die met de formule:
Range("V2").FormulaR1C1 = "=SUMIF(C[-14],RC[-3],C[-17])"
Maar hij moet eigenlijk ook kijken naar de aantallen. Want als aantal 2 is moet ie dat maal 2 doen. En dat gebeurd nu niet.
Als je het voorbeeldje bekijkt dan kun je zien dat die de aantallen niet pakt.
Hopelijk is het nu een beetje duidelijk
Groetjes,
Danielle