Microsoft 365 COMPTER LE NOMBRE DE JOURS/GESTIONNAIRE

  • Initiateur de la discussion Initiateur de la discussion wader
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

wader

XLDnaute Nouveau
Bonjour à tous

et merci d'avance pour votre aide!

voila j'ai un tableau (ci joint), je souhaite calculer le nombre de jours travaillés par collaborateur

merci encore pour votre aide!

bien cordialement
 

Pièces jointes

Avant d'utiliser le VBA sur 65000 lignes essayez cette formule en G2 du fichier (2) :
Code:
=SI(LIGNE()=EQUIV(F2;F:F;0);SOMMEPROD((F$2:F$10=F2)/NB.SI.ENS(C$2:C$10;C$2:C$10;F$2:F$10;F$2:F$10));RECHERCHEV(F2;F:G;2;0))
Elle évite de recalculer le SOMMEPROD (qui est lourd) sur toutes les lignes, enfin je pense.

A+
 

Pièces jointes

Pour la solution VBA voyez le fichier joint et cette macro :
VB:
Sub MAJ()
Dim coldat%, colnom%, colrest, tablo, d As Object, dd As Object, i&, x$, y$, resu()
coldat = 3 'à adapter
colnom = 6 'à adapter
colrest = 7 'à adapter
With [A1].CurrentRegion.Resize(, colrest)
    tablo = .Value2 'matrice, plus rapide
    Set d = CreateObject("Scripting.Dictionary")
    Set dd = CreateObject("Scripting.Dictionary")
    For i = 2 To UBound(tablo)
        x = tablo(i, colnom): y = tablo(i, coldat) & x
        If Not d.exists(x) Then d(x) = 0
        If Not dd.exists(y) Then
            d(x) = d(x) + 1 'comptage
            dd(y) = ""
        End If
    Next
    '---restitution---
    ReDim resu(1 To UBound(tablo), 1 To 1)
    resu(1, 1) = tablo(1, colrest) 'en-tête
    For i = 2 To UBound(tablo)
        resu(i, 1) = d(tablo(i, colnom))
    Next
    .Columns(colrest) = resu
End With
End Sub
Utilisant des tableaux VBA et 2 Dictionary elle est très rapide, chez moi 0,16 seconde sur 27 000 lignes.

A+
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Bloccage Excel
Réponses
1
Affichages
329
Retour