• 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.

aantallen als op meerdere tabbladen en meerdere criteria

Status
Niet open voor verdere reacties.

HaraldWaij

Nieuwe gebruiker
Lid geworden
29 jan 2021
Berichten
3
Hallo,

Voor mijn werk krijg ik meerdere excelsheets van inventarisaties gestuurd.
Via dit forum heb ik al een mijnaantalals formule ontvangen, zie hieronder, waarbij ik op basis van de gegevens in 1 cel de aantallen kan tellen.

Function MijnAantalAls(Bereik As Range, criteria) As Long
Application.Volatile
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
If Left(ws.Name, 2) = "WK" Then
MijnAantalAls = MijnAantalAls + WorksheetFunction.CountIf(ws.Range(Bereik.Address), criteria)
End If
Next ws
End Function

Nou ben ik eigenlijk ook op zoek naar een formule waarin ik dus op basis van gegevens uit meerdere cellen aantallen kan halen.

Voorbeeld:
In cel H7 van alle tabbladen staat een weeknummer (mijnaantalals$h$7;1)<- deze werkt
In cel D7 van alle tabbladen staat een naam (mijnaantalals$d$7;"naam')<-deze werkt ook

Nu wil ik dus in een cel bij gaan houden hoeveel 'naam' in een bepaalde week heeft ingeleverd.
Ik heb al een aantal formules geprobeerd, maar geen van alle werkt.

Is er een aanvulling op mijnaantalals?

Ik werk met Excel 2016 trouwens

Wie kan mij helpen?
 
Laatst bewerkt:
Zet je code even in codetags en plaats een voorbeeld document.
 
misschien kun je hier iets mee: hij werkt ook met meerdere variabelen per blad
Code:
Function MijnAantalAls2(BladNaamBevat As String, ParamArray Pa()) As Long
    Application.Volatile
    Dim ws As Worksheet
    For Each ws In ThisWorkbook.Worksheets
        If InStr(ws.Name, BladNaamBevat) > 0 Then
            For t = 0 To UBound(Pa) Step 2
                If TypeName(Pa(t)) = "Range" Then
                    v = ws.Range(Pa(t).Address)
                Else
                    v = ws.Range(Pa(t))
                End If
                If v <> Pa(t + 1) Then Exit For
            Next
            If t > UBound(Pa) Then MijnAantalAls2 = MijnAantalAls2 + 1
        End If
    Next ws
End Function
 

Bijlagen

Laatst bewerkt:
@sylvester-ponte; Hmmmmmmz, lijkt niet helemaal te werken.

Voor de duidelijkheid heb ik even een excel-tabel bijgevoegd. Ik wil dus eigenlijk per week kunnen zien wie een WPI heeft ingeleverd.

Nu zie ik alleen de totaal aantal ingeleverde WPI's bij de betreffende persoon (namen zijn fictief overigens)
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan