OVH Cloud OVH Cloud

Paramètres NB.SI

9 réponses
Avatar
GilSe
Bonjour à tous.
Je suis entrain de créer un planning.
Dans ma 2ème colonne, j'ai saisi les dates, dans les colonnes suivantes le
nom des collaborateurs et dans chaque ligne, l'emploi du temps.
Dans une cellule, je souhaite savoir le nombre de "CA" et dans une autre
cellule, le nombre de "RTT" de chacune des personnes.
J'ai nommé mes colonnes et saisi les formules suivantes qui fonctionnent
manuellement.
=NB.SI((NOMDELAPERSONNE PERIODECA);"CA")
Je souhaite qu'Excel selectionne automatiquement la Plage de cellules dans
la 2ème colonne comprise entre le 1juin et le 30 avril de l'année en cours
et la nomme PERIODECA
=NB.SI((NOMDELAPERSONNE ANNEE);"RTT")
Idem pour la Plage de cellules dans la 2ème colonne comprise entre le 1er
janvier et le 31 décembre de l'année en cours = ANNEE
J'espère que vous arriverez à comprendre mes souhaits.
D'avance merci à tous

Gilles

9 réponses

Avatar
AV
- les dates en B2:Bx de "Feuil1"
- elles comprennent au moins toutes celles de l'année en cours, classées
croisssant (01/01 --> 31/12)

Sub zz_Déf_Noms()
x1 = DateSerial(Year(Date), 4, 30)
x2 = DateSerial(Year(Date), 6, 1)
x3 = DateSerial(Year(Date), 1, 1)
x4 = DateSerial(Year(Date), 12, 31)
y1 = Application.Match(x1 * 1, Range("B1", [B65536].End(3)), 0)
y2 = Application.Match(x2 * 1, Range("B1", [B65536].End(3)), 0)
y3 = Application.Match(x3 * 1, Range("B1", [B65536].End(3)), 0)
y4 = Application.Match(x4 * 1, Range("B1", [B65536].End(3)), 0)
ActiveWorkbook.Names.Add Name:="PERIODECA", RefersTo:="þuil1!$B$" & y1 &
":$B$" & y2
ActiveWorkbook.Names.Add Name:="ANNEE", RefersTo:="þuil1!$B$" & y3 & ":$B$" &
y4
End Sub

Remarques :
".....comprise entre le 1juin et le 30 avril de l'année en cours...."
J'ai considéré que tu avais inversé les termes :
"comprise entre le 30 avril et le 1 juin de l'année en cours"
Si c'est pas ça, il faut préciser

A la lecture de tes formules ("qui fonctionnent" ?), je reste songeur....
2 plages nommées avec un opérateur d'intersection comme 1° argument de la
fonction NB.SI ??

AV
Avatar
GilSe
Bonjour AV
Je te remercie de ton aide mais je cherche, si possible, plutôt une formule
qu'une macro.
Je me suis mal exprimé pour la période des CA(Congés Annuels):
Il s'agit bien du 1er juin de l'année N au 31 mai de l'année N+1
Exemple:
Nous sommes le 23/11/2003> la période CA est du 1/6/2003 au 31/5/2004
Quand nous serons le 1/1/2004 > la période CA est toujours du 1/6/2003 au
31/5/2004
Mais dès que nous serons le 1/6/2004 > la période CA devient du 1/6/2004 au
31/5/2005
Voici ma formule dans le détail
=NB.SI((_Christian _ca2003_2004);"CA")
avec _Christian correspondant aux cellules de la colonne de
Christian, et _ca2003_2004 ,nommé manuellement, correpondant aux
lignes des dates comprises entre le 1/6/03 et 31/5/04 , et c'est ce
_ca2003_2004 que je cherche à automatiser suivant la date du jour
AUJOUDHUI()
J'espère avoir été plus clair...
Encore merci
Gilles



"AV" a écrit dans le message de
news:
- les dates en B2:Bx de "Feuil1"
- elles comprennent au moins toutes celles de l'année en cours, classées
croisssant (01/01 --> 31/12)

Sub zz_Déf_Noms()
x1 = DateSerial(Year(Date), 4, 30)
x2 = DateSerial(Year(Date), 6, 1)
x3 = DateSerial(Year(Date), 1, 1)
x4 = DateSerial(Year(Date), 12, 31)
y1 = Application.Match(x1 * 1, Range("B1", [B65536].End(3)), 0)
y2 = Application.Match(x2 * 1, Range("B1", [B65536].End(3)), 0)
y3 = Application.Match(x3 * 1, Range("B1", [B65536].End(3)), 0)
y4 = Application.Match(x4 * 1, Range("B1", [B65536].End(3)), 0)
ActiveWorkbook.Names.Add Name:="PERIODECA", RefersTo:="þuil1!$B$" & y1 &
":$B$" & y2
ActiveWorkbook.Names.Add Name:="ANNEE", RefersTo:="þuil1!$B$" & y3 &
":$B$" &

y4
End Sub

Remarques :
".....comprise entre le 1juin et le 30 avril de l'année en cours...."
J'ai considéré que tu avais inversé les termes :
"comprise entre le 30 avril et le 1 juin de l'année en cours"
Si c'est pas ça, il faut préciser

A la lecture de tes formules ("qui fonctionnent" ?), je reste songeur....
2 plages nommées avec un opérateur d'intersection comme 1° argument de la
fonction NB.SI ??

AV




Avatar
AV
Je te remercie de ton aide mais je cherche, si possible, plutôt une formule
qu'une macro.


Ben compte-tenu de la question initiale, il n'y avait pas d'autre solution ....
Si je comprends (en devinant un peu...), tu cherches à compter les "CA" pour
Christian dans la période allant du 1/6 de l'année en cours au 31/5 de l'année
suivante ??
Avec les plages nommées
"Dates" (série de date en lignes - ex: A2:A1000)
"Christian" (plage en ligneS dans lesquelles tu saisis "CA" ou autre chose - ex:
B2:B1000)

=SOMMEPROD((Dates>ÚTE(ANNEE(AUJOURDHUI());6;1))*(Dates<ÚTE(ANNEE(AUJOURDHUI(
))+1;5;31))*(Christian="CA"))

AV

Avatar
Michel Gaboly
Bonjour,

Voici une solution avec des formules. Elle implique de définir au préalable
quelques noms, auxquelles les formules se réfèrent.

Voici la structure du tableau employé pour les tests (que je peux t'envoyer
en Bal perso, si tu veux) :

Les dates du 1er juin 2002 au 31 décembre 2003 en colonne C, à partir de la
ligne 2, la première étant réservée aux titres. Je lme suis arrêté au 31/12/03,
mais il est possible d'aller bien au-delà.

La cellule C1 est nommée "RéfDates"
La colonne C est nommée "Dates"

Les colonnes suivantes portent le nom du salarié en ligne 1, ici

"Moreau" pour la colonne D
"Dubois" pour la colonne E

La fonction EQUIV() permet de déterminer les lignes correspondant aux
4 dates de référence (1er juin N-1, 1er janvier, 31 mai et 31 décembre)

Pour cela le nom "A" est défini ainsi =ANNEE(MAINTENANT()). Il serait
également possible d'utiliser ¡, ce qui permettrait de modifier l'année
de référence sans que cela change automatiquement quand la date passe du
31 décembre au 1er janvier.

Les 2 noms "Année" et "PériodeCA" couvrent les lignes correspondant à la
période concernée, de la colonne C à la dernière du tableau, incluant ainsi
toutes les colonnes pouvant correspondre à un salarié. :

Année ÞCALER(RéfDates;EQUIV(DATE(A;1;1) - 1;Dates;0);0):DECALER
(RéfDates;EQUIV(DATE(A;12;31);Dates;0) - 1;256 - COLONNE(RéfDates))

PériodeCA ÞCALER(RéfDates;EQUIV(DATE(A-1;6;1) - 1;Dates;0);0)
:DECALER(RéfDates;EQUIV(DATE(A;5;31);Dates;0) - 1;256 - COLONNE(
RéfDates))

J'ai utilisé la cellule A2,nommée "Nom" pour inscrire le nom du salarié
pour lequel on veut des infos.

Avec la fonction DECALER(), il est possible de déterminer la plage corres-
pondant au salarié dont le nom est inscrit en A2 :

Salarié ÞCALER(RéfDates;0;COLONNE(INDIRECT(Nom)) - COLONNE(
RéfDates);LIGNES(Année);1)

On peut maintanant récupérer le nombre de jours de RTT ou de congés payés
en utilisant

=NB.SI(Année Salarié;"CA")
ou
=NB.SI(PériodeCA Salarié;"RTT")

pour le salarié dont le nom est en A2

ou

=NB.SI(Année Moreau;"CA")
=NB.SI(Année Dubois;"CA")

pour Moreau, Dubois, ...

Dis-moi si tu veux que je t'envoie le classeur de test ?


PS1 - La période du 1er juin de l'année précédente au 31 mai est celle qui
sert de référence pour déterminer les congés acquis. Ceux-ci sont censés
être pris entre le 1er mai et le 30 avril de l'année suivante.

Je pense que c'est plutôt cette période que tu devrais utiliser pour récapi-
tuler les congés pris.

PS2 - Personnellement, j'aurais employé "CP" plutôt que "CA" réservé en
général au chiffre d'affaires


Résumé des noms :

A =ANNEE(MAINTENANT())
Année ÞCALER(RéfDates;EQUIV(DATE(A;1;1) - 1;Dates;0);0):DECALER(RéfDates;EQUIV(DATE(A;12;31);Dates;0) - 1;256 - COLONNE(RéfDates))

Dates þuil1!$C:$C
Dubois þuil1!$E:$E
Moreau þuil1!$D:$D
Nom þuil1!$A$2
PériodeCA ÞCALER(RéfDates;EQUIV(DATE(A-1;6;1) - 1;Dates;0);0):DECALER(RéfDates;EQUIV(DATE(A;5;31);Dates;0) - 1;256 -
COLONNE(RéfDates))
RéfDates þuil1!$C$1
Salarié ÞCALER(RéfDates;0;COLONNE(INDIRECT(Nom)) - COLONNE(RéfDates);LIGNES(Année);1)



Bonjour AV
Je te remercie de ton aide mais je cherche, si possible, plutôt une formule
qu'une macro.
Je me suis mal exprimé pour la période des CA(Congés Annuels):
Il s'agit bien du 1er juin de l'année N au 31 mai de l'année N+1
Exemple:
Nous sommes le 23/11/2003> la période CA est du 1/6/2003 au 31/5/2004
Quand nous serons le 1/1/2004 > la période CA est toujours du 1/6/2003 au
31/5/2004
Mais dès que nous serons le 1/6/2004 > la période CA devient du 1/6/2004 au
31/5/2005
Voici ma formule dans le détail
=NB.SI((_Christian _ca2003_2004);"CA")
avec _Christian correspondant aux cellules de la colonne de
Christian, et _ca2003_2004 ,nommé manuellement, correpondant aux
lignes des dates comprises entre le 1/6/03 et 31/5/04 , et c'est ce
_ca2003_2004 que je cherche à automatiser suivant la date du jour
AUJOUDHUI()
J'espère avoir été plus clair...
Encore merci
Gilles

"AV" a écrit dans le message de
news:
- les dates en B2:Bx de "Feuil1"
- elles comprennent au moins toutes celles de l'année en cours, classées
croisssant (01/01 --> 31/12)

Sub zz_Déf_Noms()
x1 = DateSerial(Year(Date), 4, 30)
x2 = DateSerial(Year(Date), 6, 1)
x3 = DateSerial(Year(Date), 1, 1)
x4 = DateSerial(Year(Date), 12, 31)
y1 = Application.Match(x1 * 1, Range("B1", [B65536].End(3)), 0)
y2 = Application.Match(x2 * 1, Range("B1", [B65536].End(3)), 0)
y3 = Application.Match(x3 * 1, Range("B1", [B65536].End(3)), 0)
y4 = Application.Match(x4 * 1, Range("B1", [B65536].End(3)), 0)
ActiveWorkbook.Names.Add Name:="PERIODECA", RefersTo:="þuil1!$B$" & y1 &
":$B$" & y2
ActiveWorkbook.Names.Add Name:="ANNEE", RefersTo:="þuil1!$B$" & y3 &
":$B$" &

y4
End Sub

Remarques :
".....comprise entre le 1juin et le 30 avril de l'année en cours...."
J'ai considéré que tu avais inversé les termes :
"comprise entre le 30 avril et le 1 juin de l'année en cours"
Si c'est pas ça, il faut préciser

A la lecture de tes formules ("qui fonctionnent" ?), je reste songeur....
2 plages nommées avec un opérateur d'intersection comme 1° argument de la
fonction NB.SI ??

AV





--
Cordialement,

Michel Gaboly
http://www.gaboly.com


Avatar
AV
Je te remercie de ton aide


Merci pour le retour
AV

Avatar
GilSe
Bonjour Michel
J'ai quelques difficultés à mettre en apllication ta solution.
Je veux bien que tu m'envois le fichier test à en
enlevant NOSWAP
Merci
Gilles


"Michel Gaboly" a écrit dans le message de
news:
Bonjour,

Voici une solution avec des formules. Elle implique de définir au
préalable

quelques noms, auxquelles les formules se réfèrent.

Voici la structure du tableau employé pour les tests (que je peux
t'envoyer

en Bal perso, si tu veux) :

Les dates du 1er juin 2002 au 31 décembre 2003 en colonne C, à partir de
la

ligne 2, la première étant réservée aux titres. Je lme suis arrêté au
31/12/03,

mais il est possible d'aller bien au-delà.

La cellule C1 est nommée "RéfDates"
La colonne C est nommée "Dates"

Les colonnes suivantes portent le nom du salarié en ligne 1, ici

"Moreau" pour la colonne D
"Dubois" pour la colonne E

La fonction EQUIV() permet de déterminer les lignes correspondant aux
4 dates de référence (1er juin N-1, 1er janvier, 31 mai et 31 décembre)

Pour cela le nom "A" est défini ainsi =ANNEE(MAINTENANT()). Il serait
également possible d'utiliser ¡, ce qui permettrait de modifier l'année
de référence sans que cela change automatiquement quand la date passe du
31 décembre au 1er janvier.

Les 2 noms "Année" et "PériodeCA" couvrent les lignes correspondant à la
période concernée, de la colonne C à la dernière du tableau, incluant
ainsi

toutes les colonnes pouvant correspondre à un salarié. :

Année ÞCALER(RéfDates;EQUIV(DATE(A;1;1) - 1;Dates;0);0):DECALER
(RéfDates;EQUIV(DATE(A;12;31);Dates;0) - 1;256 - COLONNE(RéfDates))

PériodeCA ÞCALER(RéfDates;EQUIV(DATE(A-1;6;1) - 1;Dates;0);0)
:DECALER(RéfDates;EQUIV(DATE(A;5;31);Dates;0) - 1;256 - COLONNE(
RéfDates))

J'ai utilisé la cellule A2,nommée "Nom" pour inscrire le nom du salarié
pour lequel on veut des infos.

Avec la fonction DECALER(), il est possible de déterminer la plage corres-
pondant au salarié dont le nom est inscrit en A2 :

Salarié ÞCALER(RéfDates;0;COLONNE(INDIRECT(Nom)) - COLONNE(
RéfDates);LIGNES(Année);1)

On peut maintanant récupérer le nombre de jours de RTT ou de congés payés
en utilisant

=NB.SI(Année Salarié;"CA")
ou
=NB.SI(PériodeCA Salarié;"RTT")

pour le salarié dont le nom est en A2

ou

=NB.SI(Année Moreau;"CA")
=NB.SI(Année Dubois;"CA")

pour Moreau, Dubois, ...

Dis-moi si tu veux que je t'envoie le classeur de test ?


PS1 - La période du 1er juin de l'année précédente au 31 mai est celle qui
sert de référence pour déterminer les congés acquis. Ceux-ci sont censés
être pris entre le 1er mai et le 30 avril de l'année suivante.

Je pense que c'est plutôt cette période que tu devrais utiliser pour
récapi-

tuler les congés pris.

PS2 - Personnellement, j'aurais employé "CP" plutôt que "CA" réservé en
général au chiffre d'affaires


Résumé des noms :

A =ANNEE(MAINTENANT())
Année ÞCALER(RéfDates;EQUIV(DATE(A;1;1) -
1;Dates;0);0):DECALER(RéfDates;EQUIV(DATE(A;12;31);Dates;0) - 1;256 -

COLONNE(RéfDates))

Dates þuil1!$C:$C
Dubois þuil1!$E:$E
Moreau þuil1!$D:$D
Nom þuil1!$A$2
PériodeCA ÞCALER(RéfDates;EQUIV(DATE(A-1;6;1) -
1;Dates;0);0):DECALER(RéfDates;EQUIV(DATE(A;5;31);Dates;0) - 1;256 -

COLONNE(RéfDates))
RéfDates þuil1!$C$1
Salarié ÞCALER(RéfDates;0;COLONNE(INDIRECT(Nom)) -
COLONNE(RéfDates);LIGNES(Année);1)




Bonjour AV
Je te remercie de ton aide mais je cherche, si possible, plutôt une
formule


qu'une macro.
Je me suis mal exprimé pour la période des CA(Congés Annuels):
Il s'agit bien du 1er juin de l'année N au 31 mai de l'année N+1
Exemple:
Nous sommes le 23/11/2003> la période CA est du 1/6/2003 au 31/5/2004
Quand nous serons le 1/1/2004 > la période CA est toujours du
1/6/2003 au


31/5/2004
Mais dès que nous serons le 1/6/2004 > la période CA devient du 1/6/2004
au


31/5/2005
Voici ma formule dans le détail
=NB.SI((_Christian _ca2003_2004);"CA")
avec _Christian correspondant aux cellules de la colonne de
Christian, et _ca2003_2004 ,nommé manuellement, correpondant aux
lignes des dates comprises entre le 1/6/03 et 31/5/04 , et c'est ce
_ca2003_2004 que je cherche à automatiser suivant la date du jour
AUJOUDHUI()
J'espère avoir été plus clair...
Encore merci
Gilles

"AV" a écrit dans le message de
news:
- les dates en B2:Bx de "Feuil1"
- elles comprennent au moins toutes celles de l'année en cours,
classées



croisssant (01/01 --> 31/12)

Sub zz_Déf_Noms()
x1 = DateSerial(Year(Date), 4, 30)
x2 = DateSerial(Year(Date), 6, 1)
x3 = DateSerial(Year(Date), 1, 1)
x4 = DateSerial(Year(Date), 12, 31)
y1 = Application.Match(x1 * 1, Range("B1", [B65536].End(3)), 0)
y2 = Application.Match(x2 * 1, Range("B1", [B65536].End(3)), 0)
y3 = Application.Match(x3 * 1, Range("B1", [B65536].End(3)), 0)
y4 = Application.Match(x4 * 1, Range("B1", [B65536].End(3)), 0)
ActiveWorkbook.Names.Add Name:="PERIODECA", RefersTo:="þuil1!$B$" &
y1 &



":$B$" & y2
ActiveWorkbook.Names.Add Name:="ANNEE", RefersTo:="þuil1!$B$" & y3 &
":$B$" &

y4
End Sub

Remarques :
".....comprise entre le 1juin et le 30 avril de l'année en cours...."
J'ai considéré que tu avais inversé les termes :
"comprise entre le 30 avril et le 1 juin de l'année en cours"
Si c'est pas ça, il faut préciser

A la lecture de tes formules ("qui fonctionnent" ?), je reste
songeur....



2 plages nommées avec un opérateur d'intersection comme 1° argument de
la



fonction NB.SI ??

AV





--
Cordialement,

Michel Gaboly
http://www.gaboly.com






Avatar
GilSe
Bonjour Alain
J'essaye de mettre en applications ta formule, mais en vain, toujours le
même message d'erreur "#Nom".
Je vais bien arriver à trouver mon erreur.
Encore merci
Je te tiens au courant
Gilles


"AV" a écrit dans le message de
news:%23t%
Je te remercie de ton aide


Merci pour le retour
AV





Avatar
Michel Gaboly
Re,

C'est parti !


Bonjour Michel
J'ai quelques difficultés à mettre en apllication ta solution.
Je veux bien que tu m'envois le fichier test à en
enlevant NOSWAP
Merci
Gilles

"Michel Gaboly" a écrit dans le message de
news:
Bonjour,

Voici une solution avec des formules. Elle implique de définir au
préalable

quelques noms, auxquelles les formules se réfèrent.

Voici la structure du tableau employé pour les tests (que je peux
t'envoyer

en Bal perso, si tu veux) :

Les dates du 1er juin 2002 au 31 décembre 2003 en colonne C, à partir de
la

ligne 2, la première étant réservée aux titres. Je lme suis arrêté au
31/12/03,

mais il est possible d'aller bien au-delà.

La cellule C1 est nommée "RéfDates"
La colonne C est nommée "Dates"

Les colonnes suivantes portent le nom du salarié en ligne 1, ici

"Moreau" pour la colonne D
"Dubois" pour la colonne E

La fonction EQUIV() permet de déterminer les lignes correspondant aux
4 dates de référence (1er juin N-1, 1er janvier, 31 mai et 31 décembre)

Pour cela le nom "A" est défini ainsi =ANNEE(MAINTENANT()). Il serait
également possible d'utiliser ¡, ce qui permettrait de modifier l'année
de référence sans que cela change automatiquement quand la date passe du
31 décembre au 1er janvier.

Les 2 noms "Année" et "PériodeCA" couvrent les lignes correspondant à la
période concernée, de la colonne C à la dernière du tableau, incluant
ainsi

toutes les colonnes pouvant correspondre à un salarié. :

Année ÞCALER(RéfDates;EQUIV(DATE(A;1;1) - 1;Dates;0);0):DECALER
(RéfDates;EQUIV(DATE(A;12;31);Dates;0) - 1;256 - COLONNE(RéfDates))

PériodeCA ÞCALER(RéfDates;EQUIV(DATE(A-1;6;1) - 1;Dates;0);0)
:DECALER(RéfDates;EQUIV(DATE(A;5;31);Dates;0) - 1;256 - COLONNE(
RéfDates))

J'ai utilisé la cellule A2,nommée "Nom" pour inscrire le nom du salarié
pour lequel on veut des infos.

Avec la fonction DECALER(), il est possible de déterminer la plage corres-
pondant au salarié dont le nom est inscrit en A2 :

Salarié ÞCALER(RéfDates;0;COLONNE(INDIRECT(Nom)) - COLONNE(
RéfDates);LIGNES(Année);1)

On peut maintanant récupérer le nombre de jours de RTT ou de congés payés
en utilisant

=NB.SI(Année Salarié;"CA")
ou
=NB.SI(PériodeCA Salarié;"RTT")

pour le salarié dont le nom est en A2

ou

=NB.SI(Année Moreau;"CA")
=NB.SI(Année Dubois;"CA")

pour Moreau, Dubois, ...

Dis-moi si tu veux que je t'envoie le classeur de test ?


PS1 - La période du 1er juin de l'année précédente au 31 mai est celle qui
sert de référence pour déterminer les congés acquis. Ceux-ci sont censés
être pris entre le 1er mai et le 30 avril de l'année suivante.

Je pense que c'est plutôt cette période que tu devrais utiliser pour
récapi-

tuler les congés pris.

PS2 - Personnellement, j'aurais employé "CP" plutôt que "CA" réservé en
général au chiffre d'affaires


Résumé des noms :

A =ANNEE(MAINTENANT())
Année ÞCALER(RéfDates;EQUIV(DATE(A;1;1) -
1;Dates;0);0):DECALER(RéfDates;EQUIV(DATE(A;12;31);Dates;0) - 1;256 -

COLONNE(RéfDates))

Dates þuil1!$C:$C
Dubois þuil1!$E:$E
Moreau þuil1!$D:$D
Nom þuil1!$A$2
PériodeCA ÞCALER(RéfDates;EQUIV(DATE(A-1;6;1) -
1;Dates;0);0):DECALER(RéfDates;EQUIV(DATE(A;5;31);Dates;0) - 1;256 -

COLONNE(RéfDates))
RéfDates þuil1!$C$1
Salarié ÞCALER(RéfDates;0;COLONNE(INDIRECT(Nom)) -
COLONNE(RéfDates);LIGNES(Année);1)




Bonjour AV
Je te remercie de ton aide mais je cherche, si possible, plutôt une
formule


qu'une macro.
Je me suis mal exprimé pour la période des CA(Congés Annuels):
Il s'agit bien du 1er juin de l'année N au 31 mai de l'année N+1
Exemple:
Nous sommes le 23/11/2003> la période CA est du 1/6/2003 au 31/5/2004
Quand nous serons le 1/1/2004 > la période CA est toujours du
1/6/2003 au


31/5/2004
Mais dès que nous serons le 1/6/2004 > la période CA devient du 1/6/2004
au


31/5/2005
Voici ma formule dans le détail
=NB.SI((_Christian _ca2003_2004);"CA")
avec _Christian correspondant aux cellules de la colonne de
Christian, et _ca2003_2004 ,nommé manuellement, correpondant aux
lignes des dates comprises entre le 1/6/03 et 31/5/04 , et c'est ce
_ca2003_2004 que je cherche à automatiser suivant la date du jour
AUJOUDHUI()
J'espère avoir été plus clair...
Encore merci
Gilles

"AV" a écrit dans le message de
news:
- les dates en B2:Bx de "Feuil1"
- elles comprennent au moins toutes celles de l'année en cours,
classées



croisssant (01/01 --> 31/12)

Sub zz_Déf_Noms()
x1 = DateSerial(Year(Date), 4, 30)
x2 = DateSerial(Year(Date), 6, 1)
x3 = DateSerial(Year(Date), 1, 1)
x4 = DateSerial(Year(Date), 12, 31)
y1 = Application.Match(x1 * 1, Range("B1", [B65536].End(3)), 0)
y2 = Application.Match(x2 * 1, Range("B1", [B65536].End(3)), 0)
y3 = Application.Match(x3 * 1, Range("B1", [B65536].End(3)), 0)
y4 = Application.Match(x4 * 1, Range("B1", [B65536].End(3)), 0)
ActiveWorkbook.Names.Add Name:="PERIODECA", RefersTo:="þuil1!$B$" &
y1 &



":$B$" & y2
ActiveWorkbook.Names.Add Name:="ANNEE", RefersTo:="þuil1!$B$" & y3 &
":$B$" &

y4
End Sub

Remarques :
".....comprise entre le 1juin et le 30 avril de l'année en cours...."
J'ai considéré que tu avais inversé les termes :
"comprise entre le 30 avril et le 1 juin de l'année en cours"
Si c'est pas ça, il faut préciser

A la lecture de tes formules ("qui fonctionnent" ?), je reste
songeur....



2 plages nommées avec un opérateur d'intersection comme 1° argument de
la



fonction NB.SI ??

AV





--
Cordialement,

Michel Gaboly
http://www.gaboly.com





--
Cordialement,

Michel Gaboly
http://www.gaboly.com




Avatar
GilSe
Alain,
Ca y est j'ai appliqué ta formule qui fonctionne.Par contre, que dois-je
saisir pour
-Si nous sommes entre le 1er juin et le 31 décembre de l'année N, obtenir
comme résultat le nombre de CA posés entre le 1er juin de l'année N et le 31
mai de l'année N+1. (Exemple: nous sommes le 23 novembre 2003, le résultat
doit être le total des CA posés entre le 1er juin 2003 et le 31 mai 2004)
-Si nous sommes entre le 1er janvier et le 31 mai de l'année N, obtenir
comme résultat le nombre de CA posés entre le 1er juin de l'année N-1 et le
31 mai de l'année N. (Exemple: nous sommes le 2 janvier 2004, le résultat
doit être toujours le total des CA posés entre le 1er juin 2003 et le 31 mai
2004)
Cela est-il plus clair ?
Encore merci.
Gilles

"AV" a écrit dans le message de
news:
Je te remercie de ton aide mais je cherche, si possible, plutôt une
formule


qu'une macro.


Ben compte-tenu de la question initiale, il n'y avait pas d'autre solution
....

Si je comprends (en devinant un peu...), tu cherches à compter les "CA"
pour

Christian dans la période allant du 1/6 de l'année en cours au 31/5 de
l'année

suivante ??
Avec les plages nommées
"Dates" (série de date en lignes - ex: A2:A1000)
"Christian" (plage en ligneS dans lesquelles tu saisis "CA" ou autre
chose - ex:

B2:B1000)


=SOMMEPROD((Dates>ÚTE(ANNEE(AUJOURDHUI());6;1))*(Dates<ÚTE(ANNEE(AUJOURD

HUI(
))+1;5;31))*(Christian="CA"))

AV