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

Meerdere variabele over meerdere tabbladen

Status
Niet open voor verdere reacties.

maurits21

Gebruiker
Lid geworden
31 jan 2013
Berichten
13
Ondanks eerdere hulp van Rebmog met een soortgelijk probleem, lukt het me nu niet om onderstaande uitdaging op te lossen.

Ik heb een exitformulier wat gebruikt wordt om exitgesprekken vast te leggen. Doel is om inzicht te krijgen in de redenen waarom mensen de organisatie verlaten. Bijgaand document bevat per persoon 1 tabblad met exact gelijke invulformulieren. Er kunnen 1 tot max 3 redenen gegeven worden waarom iemand vertrokken is. Ik wil iedere maand per teamleider tellen hoe vaak een vertrekreden opgegeven is. Op het scoretabblad wil bovenin de maand selecteren en vervolgens per teamleider kunnen zien hoe vaak een vertrekreden genoemd is.
 

Bijlagen

Maurits

Zo zou ik het doen, je uitstroom formulier heb je al, plaats er nog een nummer bij, en als alles is in gevult kopieer dit naar een databank, nu maak je een filter op je databank op een maand door jou te kiezen.
 
Jean-Paul,

Helaas gaat dat niet lukken. Ik bouw dit voor mijn collega's die niet Excel-vaardig zijn en op dagelijkse basis tabbladen met evaluaties zullen toevoegen en verwijderen. Er moet dus op ieder willekeurig moment een tussenstand opgemaakt kunnen worden.
 
Is dit wat je bedoelt?
Code:
Function totaalscore(vertrekreden As Range, teamleider As Range, dte As Date) As Integer
    Application.Volatile
    For i = 1 To Sheets.Count
        With Sheets(i)
            If .Name <> "Scores" Then
                If .Range("C8") = teamleider Then
                    If Month(.Range("C6")) = Month(dte) And Year(.Range("C6")) = Year(dte) Then
                        For j = 12 To 16 Step 2
                            If .Cells(j, 3) = vertrekreden Then k = k + 1
                        Next
                    End If
                End If
            End If
        End With
    Next
    totaalscore = k
End Function

Deze functie op blad Score in cel C6 aanroepen met: =totaalscore(B6;C$5;C$2) en dan naar beneden kopiëren.
 
combineer de opmerking van JeanPaul met een aangepaste versie van Rebmog.
Zo bekom je een database op basis van de huidige tabbladen en daar kan je veel mooier werk mee doen.
 
Bedankt, ook dit werkt weer perfect! Dat VBA moet ik me toch maar eens aanleren.
 
Hallo,

Helaas is de praktijk weerbarstig en heeft 'men' extra wensen. Ik hoop dat Rebmog of een andere magier mij nogmaals op weg kan helpen.

Op het scoreblad wil men nu van de afgelopen 3 maanden de scores zien. De datum van de evaluatie bepaalt dus of en zo ja in welke kolom (deze maand, vorige maand of twee maanden geleden) deze meeteld. Zie voor voorbeeld van het het eruit moet komen te zien bijgaand document Bekijk bijlage VB evaluatieformulier.xlsm.

Ik wil dus graag dat de huidige VBA oplossing als toevoeging ook de datum op het scoreblad vergelijk met die op de individuele beoordeling. Kan dit of vraag ik nu te veel van Excel?

Alvast dank.
 
Laatst bewerkt:
Ik heb je bestand even bekeken, maar ik begrijp niet helemaal wat precies de bedoeling is. Je hebt het over huidige maand, vorige maand en twee maanden geleden, terwijl op het tabblad score diverse kolommen staan met 1,3,6 en 12 maand. Kun je aangeven in om welke cellen van het tabblad score het gaat en welke gegevens van de tabbladen personen je wilt tellen?
 
Mijn input teruglezend begrijp ik je vragen... Bij deze een duidelijkere uitleg:

Op het scoreblad wil ik van de afgelopen 3 maanden weergegeven wat de gemiddelde score na 1 maand, 3 maanden, 6 maanden en 12 maanden is. In cel H26 wordt de betreffende leidinggevende gekozen, in cellen C27, H27 en M27 wordt de datum van de betreffende maand genoteerd. De formule/functie zou het volgende moeten doen :

Haal op uit alle tabbladen de scores na 1 maand, 3 maanden, 6 maanden en 12 maanden van beoordeling die plaats hebben gevonden in de maand uit cel C27 (en bereken de gemiddeldes in de 4 kolommen daar onder per competentie), alleen voor de beoordeling uitgevoerd voor de leidinggevende uit cel H26.

Doel is om de ontwikkeling van de gemiddelde score van de afgelopen 3 maanden per afdeling naast elkaar te zien. Dit is statistisch gezien niet helemaal zuiver (want niet alle werknemers worden iedere maand geevalueerd) maar zou wel een trendlijn zichtbaar moeten maken.
 
Ik weet niet zeker of ik het goed begrepen heb, maar ik heb toch maar even een poging gedaan:
Code:
Function maandscore(teamleider As Range, dte As Date, rijnr As Integer, kolnr As Integer) As Double
    Application.Volatile
    For i = 1 To Sheets.Count
        With Sheets(i)
            If .Name <> "Scores" Then
                If .Cells(7, 4 + kolnr) = teamleider Then
                    If Month(.Cells(8, 4 + kolnr)) = Month(dte) And Year(.Cells(8, 4 + kolnr)) = Year(dte) Then
                            k = k + .Cells(10 + rijnr, 3 + kolnr)
                            j = j + 1
                    End If
                End If
            End If
        End With
    Next
    maandscore = k / j
End Function

De functie als volgt in C29 ingeven en dan kopiëren naar bereik C29:F35:
Code:
=ALS.FOUT(maandscore($H$26;$C$27;RIJ(A1)-1;(KOLOM(A1)-1)*2);0)
Voor H29 moet de functie zijn:
Code:
=ALS.FOUT(maandscore($H$26;$H$27;RIJ(A1)-1;(KOLOM(A1)-1)*2);0)
en voor M29:
Code:
=ALS.FOUT(maandscore($H$26;$M$27;RIJ(A1)-1;(KOLOM(A1)-1)*2);0)
 
Harstikke bedankt! Ik heb helaas maandag pas weer tijd om dit uit te testen, kom er dan bij je op terug.
 
Rebmog,

Het gaat een heel eind goed, maar voor zover ik het kan nagaan, worden nu de lege cellen (dus indien niet beoordeeld) meegenomen als nulscore in het gemiddelde. Dat zou niet moeten. Als een cel leeg is, telt 'ie niet mee in het gemiddelde.
En het mooiste zou zijn als alleen de meest recente beoordeling van een persoon meegeteld wordt in de score. Dat lijkt me echter wat veel gevraagd van Excel...
 
Hierbij een kleine aanpassing waarbij nulscores worden uitgesloten:
Code:
Function maandscore(teamleider As Range, dte As Date, rijnr As Integer, kolnr As Integer) As Double
    Application.Volatile
    For i = 1 To Sheets.Count
        With Sheets(i)
            If .Name <> "Scores" Then
                If .Cells(7, 4 + kolnr) = teamleider Then
                    If Month(.Cells(8, 4 + kolnr)) = Month(dte) And Year(.Cells(8, 4 + kolnr)) = Year(dte) Then
                            If .Cells(10 + rijnr, 3 + kolnr) > 0 Then
                                k = k + .Cells(10 + rijnr, 3 + kolnr)
                                j = j + 1
                            End If
                    End If
                End If
            End If
        End With
    Next
    maandscore = k / j
End Function

En het mooiste zou zijn als alleen de meest recente beoordeling van een persoon meegeteld wordt in de score. Dat lijkt me echter wat veel gevraagd van Excel...
Om te kunnen beoordelen of dat kan zul je wat mij betreft toch meer info moeten verstrekken. Uit jouw voorbeeldbestand kan ik niet opmaken welke beoordeling dan wel en welke dan niet meegeteld moet worden.
 
Bedankt, de nulwaardes worden nu inderdaad buiten beschouwing gelaten.

Doel is dat per afdeling per maand een overzicht wordt gegeven van de kwaliteit van de pool werknemers. Zo moet er een overzicht ontstaan van de kwaliteit van de pool van de afgelopen 3 maanden.
Het zou als volgt moeten werken, zie nieuwe attachment Bekijk bijlage Evaluatie voorbeeld.xlsm:
Op tabblad Scores selecteer je in cel H5 een afdelingshoofd en geef je in cel C6, H6 en N6 een datum op. Deze datum is de peildatum en alle beoordelingen t/m dan tellen mee voor de daaronder liggende cellen.
In de range C9 t/m F15 wordt vervolgens de gemiddelde score van de competenties (genoemd in B9 t/m B15) tussen de tabbladen Aaa en Zzz, weergegeven in de kolom van het betreffende evaluatiemoment (1mnd, 3 mdn, 6mdn, 12 mdn).
So far so good, maar dan: alleen de meest recente beoordeling mag meetellen. Dus stel dat persoon A na 1 maand en na 3 maanden beoordeeld is, dan mag alleen de beoordeling na 3 maanden meetellen in de gemiddelde waarde in kolom D (3mdn) en de beoordeling na 1 maand telt dus niet meer mee voor de gemiddelde score in kolom C (1 mnd).

Om de zaak nog wat ingewikkelder te maken: boven de maanden op het tabblad Scores moet weergegeven worden hoeveel beoordelingen er meetellen voor die maand, uitgesplitst in evaluatiemoment (1 mdn, 3mdn, 6mdn, 12 mdn).

[edit]
Attachement netjes in het bericht geplaatst
[/edit]
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan