Formule valeur unique(texte) selon une date choisie

Bonjour,

C'est la première fois que j'écris sur un forum.

Ma question est;

-Dans mon fichier j'ai des dates (journée) dans ma colonne A qui descend jusqu'à 500-600 lignes environs.

-Dans les colonnes K-M-O-P j'ai des prénoms (qui peuvent être les mêmes ou différents ou vide)

-J'aimerais pouvoir faire un calcul qui me donne le nombre de prénom (valeur unique) seulement sur la date que je choisis.

J'ai besoin de calculer le nombre d'employé qu'il y a eu dans cette journée de travail mais les noms peuvent se répéter plusieurs fois car ils peuvent avoir fait plusieurs produits différents.
Le B1 est la date que je choisis; donc quand je la change, je veux qu'il cherche par rapport à une autre date. (J'ai faite juste pour une ligne car je comptais faire la même formule avec )+(.

Exemple:

Date: 2022-11-26 (date chercher qui se trouve sur une autre feuille en B1)

A B C D E F G H I J K L M N O P Q

2022-11-26 Marc

2022-11-26 Antoine

2022-11-26 Marc

2022-11-27 Marc

J'ai essayé de faire la formule (=somme.si.ens(nbval(unique(O:O));A:A; B1) mais Excel ne me donne un message d'erreur

La réponse devrait être 2 car j'ai pris la date du 2022-11-26

Je ne sais pas si je suis clair dans ma question, j'en suis navré.

Malheureusement je ne peux m'être mon fichier.

Je vous remercie énormément :)

Bonsoir. Pouvez-vous nous fournir un classeur exemple ? C'est très difficile de comprendre votre besoin comme ça.

24tcd-copie-test.xlsm (104.27 Ko)

Sous l'onglet *TABLEAU* je veux qu'il compte le n'ombre d'employé des 4 colonnes (1 seul fois) basé sur la date du TCD de la feuille Week 1-52.

Merci énormément si vous trouvé. Je suis encore débutant Excel.

bonjour dwaynesm,

20tcd-copie-test.xlsm (110.96 Ko)
Sub UniquePersonnes()
     Dim aA, aOut, aOut2, ptr
     aA = Sheets("tableau").Range("A1").CurrentRegion.Resize(, 21).Value2     'tous ces données
     ReDim aOut(1 To UBound(aA), 1 To 3)     'preparer 2 matrices
     ReDim aOut2(1 To UBound(aA))

     For i = 2 To UBound(aA)     'boucle les données
          If aA(i, 1) > 0 Then
               r = Application.Match(aA(i, 1), aOut2, 0)     'chercher la date

               If Not IsNumeric(r) Then     'pas trouvé
                    ptr = ptr + 1     'ajouter nouvelle date
                    r = ptr     'incrementer pointer
                    aOut(r, 1) = aA(i, 1)     'ajouter aux 2 matrices
                    aOut2(r) = aA(i, 1)
               End If

               For j = 11 To 17 Step 2     'les 4 colonnes des noms
                    If Len(aA(i, j)) > 0 Then     'une date valable
                         If InStr(1, aOut(r, 3), "|" & aA(i, j) & "|", 1) = 0 Then     'nom inconnu pour cette date ?
                              aOut(r, 3) = aOut(r, 3) & IIf(Len(aOut(r, 3)) = 0, "|", "") & aA(i, j) & "|"     'ajouter ce nom entre pipes ("|")
                              aOut(r, 2) = aOut(r, 2) + 1     'incrementer le nombre
                         End If
                    End If
               Next
          End If
     Next

     With Sheets("tableau").ListObjects("TBL_Noms")     'ce tableau structuré
          If .ListRows.Count Then .DataBodyRange.Delete     'RAZ
          If ptr > 0 Then .ListRows.Add.Range.Range("A1").Resize(ptr, 3).Value = aOut     'ajouter les données de aOut
     End With

End Sub

Bonjour Bart (Bsalv)

Merci énormément mais en fait, quand vous regarder en dessous de mon graphique sur la feuille Week 1-52 2023, il y a les informations du graphique et il y a le nombre d'employé de la journée. Je veux que quand je change la date du tableau croisé dynamique (B1), il va chercher dans la feuille de tableau le nombre d'employer qui a travaillé cette journée. (il peu y avoir entre 1 a 15 lignes supplémentaires a chaque jour)

Mais, à chaque jour, je rajouter des données de production. ( a la fin de l'année ma liste devrais avoir environ 600-700 lignes vers le bas. ) j'ajoute des données a chaque jour de la semaine. mon problème est que quand des employés (les mêmes) fabrique plusieurs produit différents. je rajoute une ligne pour chaque produit avec les même nom d'employés. donc quand je fais ma formule normal (somme.si), il calcule les même employés à répétition. ( on peu voir mon NBVAL sur la colonne U qui me dit combien d'employé j'ai sur cette ligne.) mais on voie bien (exemple; ligne 39 a 42) que sais les mêmes employé donc ma formule ne fonctionne pas sur ma feuille Week 1-52 2013 en dessous du graphique. car il va me calculer 33 employé pour la journée du 23 novembre quand en fait j'en est 17.

et comme spécifié, je rajoute des lignes a tout les jours avec de nouvelle informations.

Je ne connais pas trop bien les codes de feuilles.

Merci énormément encore,

J'ai oublié,

Le code est parfait (je pourrais faire une rechercheV à partir de ma cellule dans ce tableau) mais il voudrait qu'il se mette à jour à chaque fois je rentre une donnée. (Qu'il rajoute les nouvelles dates).

Merci encore :)

bonjour Dwaynesm, un update de ce tableau est pour le moment sur mon ordinateur 0.6 sec. Les colonnes d'importance sont A, K, M, O et Q, donc vous pouvez ajouter cette macro au module de la feuille "Tableau", mais ça vous embêtera peut-être quand vous ajouter des données. Donc vous pouvez manipuler les evenements avec les 2 macros dans un module normal.

dans un module normal

Sub Eoff()
     Application.EnableEvents = False 'ne pas permettre les events
End Sub

Sub eon()
     Application.EnableEvents = True 'permettre les events
End Sub
dans "tableau"
Private Sub Worksheet_Change(ByVal Target As Range)
     Dim c
     Set c = Intersect(Target, Range("A:A,K:K,M:M,O:O,Q:Q"))     'vérifier les changements dans ces colonnes particulier
     If c Is Nothing Then Exit Sub     'le changement n'était pas dans ces colonnes
     UniquePersonnes     'nouveau comptage
End Sub

Merci énormément Bart.

Je m'y connais pas vraiment en macro (je comprends 1/10 de ce que je voie hahaha) je vais essayer de les ajouter et voir si cela fonctionne sinon je risque simplement d'enlever le nombre d'employé de la journée du graphique.

Merci de prendre autant de temps pour aider les personnes (comme moi) qui en connaissent beaucoup moins.

Très apprécié

Rechercher des sujets similaires à "formule valeur unique texte date choisie"