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

Twee legenda's vergelijken * uren

Status
Niet open voor verdere reacties.

Geoffcel

Gebruiker
Lid geworden
8 jun 2009
Berichten
96
Beste lezer,

Bij deze probeer ik mijn vraag te formuleren.
A met type medewerkers (15 regels)
C met uurcodes (100 regels)
D met uren (100 regels)

20 regels hieronder volgt de in planning van medewerkers
Naam / Type / Uurcode

Nu wil ik graag een totaal telling maken per type medewerker (15 max) gekoppeld aan de juiste uurcode * uren.

VB
Legenda type med:
Type 1
Type 2
Type 3

Legenda uurcode
700 - 5u
800 - 6u
900 - 7u

Voorbeeld in planning
Medewerker 1 / Type 1 / 700
Medewerker 2 / Type 1 / 800
Medewerker 3 / Type 2 / 900
Medewerkers 4 / Type 2 / 700

Totaal telling, Hier kom ik dus niet uit
Type 1 = (700 + 800) = (5 + 6) = 11u <- dit wil ik als uitkomt
Type 2 = 12 u

Al vast bedankt voor de moeite, ben namelijk al 4 uur bezig maar het lukt echt niet. :p
Probeerde het met matrix formules maar niet met succes. :evil:

Groet,
GeoffCel
 
Zet hier eens een voorbeeldbestandje neer.
 
Helaas word ik er niets wijs uit, maar ik heb zelf een bestandje neergezet met een UDF.

Code:
Function Type_relatie(Welke_type As Variant)
 Application.Volatile
   Dim myrange As Range, cl As Range, rij As Integer, welke_cel As Variant
Set myrange = Sheets("Blad1").Range("C11:C" & Cells(Rows.Count, 3).End(xlUp).Row)
  For Each cl In myrange
   If cl = Welke_type Then
     rij = WorksheetFunction.Match(cl.Offset(, 1), Range("B1:B3"), 0)
    welke_cel = Cells(rij, 3).Value
   Type_relatie = Type_relatie + welke_cel
  End If
 Next
End Function

De getallen zijn juist, dus misschien kun jij het in je bestand zetten.
 

Bijlagen

  • Geoffcel.xls
    28 KB · Weergaven: 23
Of bedoel je matrixformule.
Code:
=SOM(ALS.FOUT(AANTAL.ALS(H24:H146;T24:T33)*(U24:U146)*(C24:C146=A5);""))

Alleen geschikt voor Excel 2007 of later.
 
Of bedoel je matrixformule.
Code:
=SOM(ALS.FOUT(AANTAL.ALS(H24:H146;T24:T33)*(U24:U146)*(C24:C146=A5);""))

Alleen geschikt voor Excel 2007 of later.

Heel erg bedankt, ik werk alleen in 2000 maar ik gebruik de functie. Mooie oplossing :thumb:
 
Deze formule werkt echt niet in Excel 2000.
De functie =ALS.FOUT werkt vanaf Excel 2007.

Ik bedoelde dat ik de VBA Functie wilde gebruiken. Maar die klopt nog niet helemaal.
De Type en uren zijn niet op dezelfde regel.

Wat er eigenlijk moet gebeuren is
1) Tel type adhv legenda
2) Elke keer als type voorkomt haal dan uren op obv dienstcode
3) Tel alles op.

Om het visueel te maken heb ik nogmaals een verbeterde voorbeeld bestand gemaakt.

Groet,
GeoffCelBekijk bijlage VB Med type som dienstcode.xls
 
Vernieuwde versie.
Code:
Function Type_relatie(Welke_type As Variant)
 Application.Volatile
  Dim myrange As Range, cl As Range, rij As Integer, welke_cel As Variant
    Set myrange = Sheets("Blad1").Range("C23:C" & Cells(Rows.Count, 3).End(xlUp).Row)
  For Each cl In myrange
   If cl = Welke_type And Not IsEmpty(cl.Offset(, 5)) Then
     rij = WorksheetFunction.Match(cl.Offset(, 5), Range("L23:L25"), 0)
    welke_cel = Cells(rij + 22, 13).Value
   Type_relatie = Type_relatie + welke_cel
  End If
 Next
End Function
 
Vernieuwde versie.
Code:
Function Type_relatie(Welke_type As Variant)
 Application.Volatile
  Dim myrange As Range, cl As Range, rij As Integer, welke_cel As Variant
    Set myrange = Sheets("Blad1").Range("C23:C" & Cells(Rows.Count, 3).End(xlUp).Row)
  For Each cl In myrange
   If cl = Welke_type And Not IsEmpty(cl.Offset(, 5)) Then
     rij = WorksheetFunction.Match(cl.Offset(, 5), Range("L23:L25"), 0)
    welke_cel = Cells(rij + 22, 13).Value
   Type_relatie = Type_relatie + welke_cel
  End If
 Next
End Function

Hoi Harry,

Liep in begin nog een beetje stuk omdat het rooster en legenda niet allebei op tekst stonden. Maar ontzettend mooie oplossing. Ik kan dit soort dingen niet zelf schrijven, weet jij misschien enige literatuur om dit soort dingen te programmeren?

Groet,
GeoffCel :thumb:
 
Helaas kan ik je daaraan niet helpen.

Ik heb echt geen idee Geoffrey, veel haal ik uit de 'Help' in de VB editor (F1 en F2), en vanaf dit forum en andere.
Lezen en onthouden en een beetje combineren en testen (creatief).

In ieder geval succes en mooi te vernemen dat het werkt.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan