Microsoft 365 Compter nombre ligne en fonction du N° de la semaine et de l'équipe

looky62

XLDnaute Occasionnel
Hello la Communauté

Qui peut m'eclairer?

Sur une colonne i j'ai différente ligne avec numéro de semaine différente, et je souhaite calculer le nombre de cellule qui correspond à la semaine du jour

en sachant que je mets en J200 la date du jour =aujourdhui()

=COUNTIFS(I2:I199;WEEKNUM(J200);I2:I199;"<>") afin d'avoir le nombre de ligne sur la semaine ici sem N°8

J'aimerai rajouter une condition j'ai 2 équipes nommé MA et RO en colonne F
et je voudrais savoir qui a traité cette semaine le nombre de ligne en F afin d'avoir un reporting
 

Pièces jointes

  • Classeur1.xlsm
    37.7 KB · Affichages: 7

chris

XLDnaute Barbatruc
Bonjour

Sauf si n'utilises pas la norme française, il faut utiliser NO.SEMAINE.ISO et non NO.SEMAINE qui correspond à la norme US
A noter qu'il n'est pas obligatoire d'avoir une colonne semaine pour faire un TCD par semaine

Une fois la formule en colonne I corrigée, ceci suffit
VB:
=NB.SI(I2:I199;NO.SEMAINE.ISO(AUJOURDHUI()))

Tu devrais également utiliser un tableau structuré qui permet de gérer les listes de données depuis 20 ans (https://fauconnier.developpez.com/tutoriels/tableaux-structures/)
et évite
  • notamment le VBA pour les listes déroulantes puisqu'elles se propagent automatiquement sur les nouvelles lignes de tableau.
  • de construire les TCD sur des colonnes entières, avec des vides dans le TCD et l'impossibilité de regroupement
  • de compliquer des formules pour gérer des lignes au delà du tableau
Tu as dans ton tableau de fausses dates qui sont des textes ce qui pose problème pour le calculs et pour le TCD.
 

vgendron

XLDnaute Barbatruc
Hello Chris
oui 21 au lieu de 2.. le pire c'est que je le sais et pourtant; .je me fais avoir à chaque fois..
en meme temps..quand j'en ai besoin.. je vérifie toujours que le résultat correspond bien à ce que me dit mon agenda google.. mais la.. pas vérifié
et no.semaine.iso j'ai pas encore le réflexe de l'utiliser puisqui je ne l'avais pas sur ma précédente version excel
 

looky62

XLDnaute Occasionnel
Hello Chris
oui 21 au lieu de 2.. le pire c'est que je le sais et pourtant; .je me fais avoir à chaque fois..
en meme temps..quand j'en ai besoin.. je vérifie toujours que le résultat correspond bien à ce que me dit mon agenda google.. mais la.. pas vérifié
et no.semaine.iso j'ai pas encore le réflexe de l'utiliser puisqui je ne l'avais pas sur ma précédente version excel
RE Vgendron,

Pourrais tu m'éclairer, j'ai tenté de l'appliquer à mon casSOMMEPROD((I2:I81=NO.SEMAINE(J200;2))*(F2:F81=J202)*1) , mais il ne fait pas le distinguo entre mes équipes,

par contre j'ai pris =NB.SI(I2:I199;NO.SEMAINE.ISO(AUJOURDHUI())) pour compter les nombres de la semaine,
 

vgendron

XLDnaute Barbatruc
en PJ avec une table structurée comme suggéré par @chris que je rejoins totalement

j'ai déplacé les formules en haut pour que ce soit plus pratique
première formule = 29: compte le nombre de ligne correspondant au numéro de la semaine
seconde: ne donne que les MO de la semaine
troisièe: ne donne que les RA de la semaine
 

Pièces jointes

  • Classeur1 (2).xlsm
    35.4 KB · Affichages: 3

looky62

XLDnaute Occasionnel
en PJ avec une table structurée comme suggéré par @chris que je rejoins totalement

j'ai déplacé les formules en haut pour que ce soit plus pratique
première formule = 29: compte le nombre de ligne correspondant au numéro de la semaine
seconde: ne donne que les MO de la semaine
troisièe: ne donne que les RA de la semaine
Après tes préconisations j'ai fait mes modifs toutefois je n'arrive pas à faire fonctionner la formule qui me donne le nbre de traitement par equipe par semaine!!

le t_BDD beug pourtant bien structuré mon tableau si tu peux m'eclairer

En colonne E200 et D200 je n'arrive pas à donner le nbre vide et compléter!!
 

Pièces jointes

  • TEST.xlsm
    97 KB · Affichages: 3

vgendron

XLDnaute Barbatruc
déjà, t_BBD, c'est une table structurée.. pas une plage nommée (c'est différent)
tes tableaux1 t tableau2 sont surement des erreurs== je les ai supprimés

un des avantages d'une table c'est de s'agrandir toute seule en recopiant les MFC, les formules lorsque tu ajoutes une donnée SOUS la table==> aucun intérêt à avoir des lignes vides.. ca pollue inutilement

ensuite. bah. il faut mettre les bonnes formules sans oublier le signe "="..
 

Pièces jointes

  • TEST (1).xlsm
    82.5 KB · Affichages: 5

looky62

XLDnaute Occasionnel
déjà, t_BBD, c'est une table structurée.. pas une plage nommée (c'est différent)
tes tableaux1 t tableau2 sont surement des erreurs== je les ai supprimés

un des avantages d'une table c'est de s'agrandir toute seule en recopiant les MFC, les formules lorsque tu ajoutes une donnée SOUS la table==> aucun intérêt à avoir des lignes vides.. ca pollue inutilement

ensuite. bah. il faut mettre les bonnes formules sans oublier le signe "=

Hello Vgendron, merci pr ton retour, j'essaie de comprendre, le tableau structurée

J'ai tenté de faire en colonne D et E ce genre de formule

=NB(t_BDD[ANALYSE RO]) pour me donner le Nbre de ligne non vide mais en vain !

Et celle en D

=SI(NB(t_BDD[ANALYSE RO])>0; NB.VIDE(t_BDD[TRAITEMENT MA]); "")

Afin de compter le nb de traitement fait si la cellule RO est compléte je ne vois pas trop mon erreur comme je ne connaissais pas les tableaux structurées
 

looky62

XLDnaute Occasionnel
bonjour le fil,
je préfère d'ajouter l'année à l'Iso.semaine ;)
Puis une solution avec de formules 365 et un TCD (dont on a déjà parlé)
Merci Bsalv,

Je souhaiterai dans mon tableau lors que le traitement est terminé utiliser ce code afin de classer ma ligne dans une archive et l'automatisant lorsque l'utilisateur enregistre l'excel par contre ( j'ai tenté le before save mais ça bugg

elle me crée une ligne vide a chaque fois! y a t il une parade de mon archivage

Sub DeplacerVersArchives()
Dim DerniereLigne As Long
Dim i As Long

DerniereLigne = Range("J" & Rows.Count).End(xlUp).Row

For i = DerniereLigne To 1 Step -1
If Range("J" & i).Value = "X" Then
Rows(i).Cut Destination:=Sheets("Archives").Range("A" & Rows.Count).End(xlUp).Offset(1)
End If
Next i
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 209
Messages
2 086 275
Membres
103 170
dernier inscrit
HASSEN@45