Je travaille sur une feuille de temps qui calcule les heures dans une vue hebdomadaire par employé. J'ai mis en place un code qui détermine si l'employé fait encore partie de l'entreprise, en congé sans solde, quitte l'entreprise ou est déjà parti. Ce que j'essaie de faire est de créer une table qui me dit le nombre de menuisiers, de sortants et ceux qui sont en congé non payé par semaine.Comment vérifier si la cellule avant dans la rangée est la même avant d'ajouter au compteur
Après avoir appliqué le code pour trier mes données, il ressemble à ceci:
où je remplacer les valeurs aléatoires qui existaient avant avec des descriptions plus significatives.
Je veux créer une table qui ajoute au compteur de menuisier la première fois dans la ligne la valeur n'est pas jointe 'donc je ne duplique pas le nombre. Par exemple, ID 1, je ne veux pas compter cette personne comme menuisier dans les semaines 2 - 5, seulement dans la semaine 2.
Ceci est mon code jusqu'à présent Je regarde les lignes par colonne avant de passer à autre chose à la colonne suivante:
Dim LastCol As Long
Dim LastRow As Long
Dim I As Long
Dim Z As Long
Dim Q As Long
Dim Joined As Integer
Dim ws As Worksheet
'set worksheet to use
Set ws = Sheets("Sheet1")
With ws
'Find last col and row for range
LastCol = ws.Cells(3, Columns.Count).End(xlToLeft).Column
LastRow = ws.Cells(Rows.Count, D).End(xlUp).Row
For I = 3 To LastCol
NotJoined = 0
For Z = 4 To LastRow
'check if cell is > 0
If ws.Cells(Z, I).Value > 0 Then
Joined = Joined + 1
End If
Next Z
'Find last row and add value to row below
Q = ws.Cells(Rows.Count, I).End(xlUp).Row
ws.Cells(Q + 1, I).Value = Joined
Next I
End With
Comment pourrais-je ajouter un moyen de ne compter un menuisier (allant de Non Inscrit à toute autre valeur)/Leaver (allant de toute valeur à x) une fois dans une ligne donnée, mais trouver ces valeurs par semaine. Je travaille à avoir une table comme ci-dessous:
Merci à l'avance!