Totaalsom adhv criteria in # kolommen

Status
Niet open voor verdere reacties.

Tepjes

Gebruiker
Lid geworden
25 nov 2013
Berichten
14
Hallo

vba is weer een heel tijdje geleden... :( maar ik zou terug willen beginnen :D
Heb een lijst waar ik totalen wil uithalen, is een soort tijdsregistratie.
adhv gegevens in andere kolommen, wil ik het totaal maken uit de kolom "uren".

Bijvoorbeeld:
voor alle rijen met gebruiker A, waarvan uren geboekt op project Z, waarvan de datum in maart van dit jaar ligt moeten opgeteld worden.

Eigenlijk een soort ingebedde vert.zoeken + som maken, maar dan via vba.

kan iemand mij op weg zetten? wanneer de start terug genomen is komt de rest wel vanzelf terug, maar die vert.zoeken via vba weet ik echt niet meer :)

Dank bij voorbaat
Tepjes.
 
Bv.
Code:
sub hsv()
 msgbox evaluate("sumproduct((a1:a10=""A"")*(b1:b10=""Z"")*(month(c1:c10)=3)*(d1:d10))")
end sub
 
Laatst bewerkt:
Hallo Harry
bedankt voor je bericht, maar ben niet helemaal mee met deze werkwijze.
kan je iets meer uitleg bij geven ajb? 't is echt lang geleden :)
je doet overal *, maar zou de som moeten hebben...

Dank je wel
 
Hallo,

Het is een somproduct van gebruiker "A" in kolom A met een project "Z" in kolom B, met in kolom C de data die de maand Maart bevatten, met de getallen van kolom D.
Alle getallen van kolom D worden opgeteld die aan de eerste drie criteria voldoen.
Anders even een bestandje uploaden.
 
ik vermoedde al wel zoiets, maar waarom staat die evaluate daar? om die waarde aan de msgbox te geven?
heb bestandje in bijlage gedaan (hoop dat dat gelukt is). is een verzonnen test-tabel, de echte telt 15000 lijnen of zo, en heeft nog iets meer variabelen, maar werkwijze is dezelfde.

bedankt!

Bekijk bijlage test zoeken-optellen vba.xlsx
 
Van welke criteria wil je de telling?
 
om te starten ga ik een telling nemen per gebruiker en per code.
bedoeling is dat ik een nieuw tabblad maak per gebruiker, waar alle codes op komen die hij/zij gebruikt met daarachter de sommen van aantal per code.
 
heb iets geprobeerd, maar krijg fout 13 - typen komen niet overeen.
 
Met wat jij wil is andere code voor nodig om een telling van alle namen met alle criteria naar een ander blad te schrijven.
Daarvoor is het mij nu te laat.
Het zal niet eerder als morgenavond worden omdat in elkaar te knutselen.
Maar er zijn hier ook nachtbrakers.

Ps: Hier even om te laten zien wat ik bedoel.
 

Bijlagen

heb iets geprobeerd, maar krijg fout 13 - typen komen niet overeen.
Dat komt omdat je de eerste rij mee neemt in de formule van de telling, maar daar staat in F1 tekst.
Daar kan Excel geen telling van maken.
 
had ik al gedacht en had 1e rij er af gelaten:

Code:
totaal = Application.Evaluate("sumproduct ((b2:b10=""Jack"")*(d2:d10=""ABC"")*(f2:f10))")
MsgBox totaal

maar geeft nog steedszelfde fout
 
Er staat een spatie achter "sumproduct".
 
:thumb:
waarvoor dank. weet ik morgenvroeg direct wat doen... :)

nieuwe vba-start is gemaakt, bedankt Harry!
 
Tot zover graag gedaan, ik ga naar bed.
 
Hallo harry
nog een bijvraagje: als in de onderstaande code die 'Jack' moet vervangen worden door een variabele, hoe doe ik dit dan?
heb al aan't proberen geweest, maar lukt niet echt, weet niet waar haakjes etc...

Code:
totaal = Application.Evaluate("sumproduct ((b2:b10=""Jack"")*(d2:d10=""ABC"")*(f2:f10))")

thx!
Tepjes.
 
Ondertussen zelf gevonden
om een of andere reden moet daar een Chr(34) voor en na de variabele geplaatst worden, al weet ik niet waarom...

Code:
Totaal = Application.Evaluate("sumproduct((c2:c" & LaatsteRij & "=" & Chr(34) & ArrMedewerkersNaam(x) & Chr(34) & ")*(g2:g" & LaatsteRij & "=" & Chr(34) & Code & Chr(34) & ")*(f2:f" & LaatsteRij & "))")
 
Ik weet niet welke versie je gebruikt, maar is SumIfs iets voor je? Oplossing zonder VBA maar werkt als een tierelier
 
bedankt voor je bericht.
Zou kunnen met SumIfs, maar wil het via vba volledig geautomatiseerd hebben, zodat andere mensen er makkelijk gebruik van kunnen maken...
moet regelmatig refreshbaar zijn, lijst wordt getrokken uit erp-systeem op bepaald moment, VBA erop loslaten en klaar is kees, alle results rollen eruit voor degene die de vba laat lopen
+ via vba = gewoon leuk :)
 
Een draaitabel is de "automatische" manier van een SumIfs, die kan je dynamisch (via vba) refreshen

Als je een beetje slim met SumIfs/draaitabellen omgaat kan je veel automatiseren.
 
ja, dat weet ik, maar ben geen draaitabel-fan, is me te eng... liever zelf alles in de hand. :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan