recherche formule matricielle

fenec

XLDnaute Impliqué
Bonjour le forum

Cela fait deux jours que je cherche en vain une formule qui me donnerait en "L13" le nombre réel de congés pris.

J’y suis parvenu pour le prévisionnelle en "I13" mais la je bloque.
Voici un petit exemple du résultat attendu :

Actuellement dans mon calendrier j’ai 2 CP ce qui me donne bien en "I13" 5 jours
Une journée posée valant 2.5 jours.
Par contre en "L13"le résultat souhaité est 2.5 puisque la journée posée est en mars donc pas encore prise réellement.
Pour essayer d’être encore un peu plus précis, il faudrait que la formule me donne le nombre de congés pris à la date d’aujourd’hui.

En espérant avoir été assez clair…

Cordialement,

Philippe.
 

Pièces jointes

  • formule matricielle .xls
    427.5 KB · Affichages: 138

job75

XLDnaute Barbatruc
Re : recherche formule matricielle

Re,

Encore plus simple en Calendrier!C3, mais un peu moins "lisible" :

Code:
=SI((B3="")+(choix=4);"";""&INDEX(INDIRECT("Cycle_"&SUBSTITUE(choixcel;" - ";"_"));MOD(B3-INDIRECT("Dép_"&STXT(choixcel;5;3));INDIRECT("Durée_"&STXT(choixcel;5;3)))+1))
Voyez le nouveau nom défini choixcel.

Dans la liste Equipes les espaces doivent toujours être comme ils sont actuellement.

Fichier (5 bis)

A+
 

Pièces jointes

  • formule matricielle(5 bis).xls
    239.5 KB · Affichages: 106
Dernière édition:

CISCO

XLDnaute Barbatruc
Re : recherche formule matricielle

Bonjour à tous

@Job75 : Je n'ai pas du tout regardé sérieusement les diverses formules que tu as proposées, mais ne peut on faire plus simple avec
Code:
=""&SI(B3="";"";SI(choix<4;....;SI(choix<10.....;......)))

@ plus
 

fenec

XLDnaute Impliqué
Re : recherche formule matricielle

Bonsoir le forum, CISCO,Job75

Je reviens vers vous car je rencontre un problème suite à la formule dans le calendrier

Avec la premiere solution avant modification je rencontre un problème avec le SD 1 ET SD 2
Après la modification avec SD, SD 1 ET SD 2
Idem avec la dernière proposition
Vous joint donc mon fichier final (sans données confidentielles) avec vos solutions.
j'ai sans doute raté quelque chose mais je ne le trouve pas.

Cordialement,

Philippe.
 

Pièces jointes

  • Post #16.xls
    308 KB · Affichages: 100
  • Post #15 avant modif.xls
    260 KB · Affichages: 97
  • Post #15.xls
    363 KB · Affichages: 98

job75

XLDnaute Barbatruc
Re : recherche formule matricielle

Re,

Je suis étonné que vous n'ayez pas vu la différence entre vos derniers fichiers et les fichiers précédents :

- dans la plage Equipes "SD 1" au lieu de "1 - SD" et "SD 2" au lieu de "2 - SD"

- noms définis "Cycle_SD_1" au lieu de "Cycle_1_SD" et "Cycle_SD_2" au lieu de "Cycle_2_SD".

Je n'ai pas l'intention de modifier mes formules, si vous voulez rester sur ces textes (peu cohérents) gardez vos formules d'un km de long.

A+
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : recherche formule matricielle

Bonjour fenec, le forum,

Bon OK dans vos 2 fichiers avec "SD 1" et "SD 2" j'ai modifié les 2 formules en Calendrier!C5 :

Code:
=""&SI((B5="")+(Choix=4);"";SI(Choix<4;INDEX(INDIRECT("Cycle_"&Choix&"_3x8");MOD(B5-Dép_3X8;Durée_3X8)+1);SI(Choix<10;INDEX(INDIRECT("Cycle_"&Choix-4&"_5x8");MOD(B5-Dép_5X8;Durée_5X8)+1);INDEX(SI(Choix=11;Cycle_SD;INDIRECT("Cycle_SD_"&Choix-11));MOD(B5-Dép_SD;Durée_SD)+1))))
Code:
=SI((B5="")+(Choix=4);"";""&INDEX(INDIRECT("Cycle_"&SUBSTITUE(SUBSTITUE(Choixcel;" - ";"_");" ";"_"));MOD(B5-INDIRECT("Dép_"&SI(Choix>10;"SD";DROITE(Choixcel;3)));INDIRECT("Durée_"&SI(Choix>10;"SD";DROITE(Choixcel;3))))+1))
Bonne journée.
 

Pièces jointes

  • Post #16(1).xls
    362 KB · Affichages: 87
  • Post #15(1).xls
    280.5 KB · Affichages: 94

job75

XLDnaute Barbatruc
Re : recherche formule matricielle

Bonjour fenec, le forum,

Dans les fichiers joints, une formule très simple en Calendrier!C5 :

Code:
=SI((B5="")+(Choix=4);"";""&INDEX(Cycle;MOD(B5-Dép;Durée)+1))
Les noms Cycle Dép Durée sont définis par cette macro dans le code de la feuille "Accueil" :

Code:
Option Explicit
Option Compare Text 'la casse est ignorée

'-----

Private Sub Worksheet_Change(ByVal Target As Range)
'détermination des 3 noms pour les formules de la feuille Calendrier
If Intersect(Target, [Choixcel]) Is Nothing Or [Choix] = 4 Then Exit Sub
Dim x, numero$, nom$, test As Boolean
For Each x In Split([Choixcel])
  If x <> "" And x <> "-" Then If IsNumeric(x) Then numero = "_" & x & "_" Else nom = x
Next
For Each x In ThisWorkbook.Names
  test = IIf(numero = "", x.Name = "Cycle_" & nom, _
    x.Name Like "Cycle_*" And InStr(x.Name & "_", numero) And InStr(x.Name, nom))
  If test Then ThisWorkbook.Names.Add "Cycle", x
  If x.Name = "Dép_" & nom Then ThisWorkbook.Names.Add "Dép", x
  If x.Name = "Durée_" & nom Then ThisWorkbook.Names.Add "Durée", x
Next
End Sub
La macro recherche le numéro et le nom dans la cellule choixcel.

Leur ordre peut être quelconque dans la plage Equipes ou dans les noms définis.

On peut donc utiliser indifféremment "SD 2" ou "2 - SD".

Nota : le numéro peut avoir plus d'un chiffre sans inconvénient.

Edit : Option Compare Text est nécessaire en haut de la feuille de code, la casse n'étant pas toujours respectée dans les noms définis ("X" au lieu de "x" pour Dép_ et Durée_).

A+
 

Pièces jointes

  • Formule+VBA(1 bis).xls
    313 KB · Affichages: 99
  • Formule+VBA(1).xls
    313 KB · Affichages: 105
Dernière édition:

fenec

XLDnaute Impliqué
Re : recherche formule matricielle

Bonsoir le forum, Job75
Déjà pardon pour la réponse tardive, une panne internet étant la cause
Un grand merci à Job75, avec une simple question j’ai énormément appris et mon fichier c’est alléger du coup de la moitié.
Je vais voir si encore possible de l’alléger avec mes autres formules. Je pense que oui avec les colonnes "H" et "K".
Pour ce qui est du vba, la je ne m’y aventurer pas n’ayant pas votre niveau.
Cordialement,
Philippe.
 

fenec

XLDnaute Impliqué
Bonjour le forum

Je remonte cette discussion car je rencontre un problème que je vais essayer de vous expliquer le mieux possible, alors voilà :

Par rapport à ma demande d’origine, j’ai rajouté deux tournantes (2x8) puis supprimer une ligne (DIF), les heures de « DIF » n’existant plus. Jusque là pas de soucis.

J’ai ensuite modifié les formules du « Pris Prév » et du « Pris Réel ». Formules de Job75 que je remercie au passage lors de ma demande. J’espère correctement.

Le souci que je rencontre c’est que seul les CP, RTT et RCR se comptabilisent dans mon état de congés et la je ne trouve pas le pourquoi.

Est-ce du à mes formules ou à la définition du nom ref ?

D’avance merci pour votre aide.

Fichier joint avec de pointage pour plus de compréhension.

Cordialement,

Philippe
 

Pièces jointes

  • Classeur1 Forum.xls
    269.5 KB · Affichages: 91

Discussions similaires

  • Résolu(e)
Microsoft 365 Formule SI
Réponses
8
Affichages
184
  • Résolu(e)
Microsoft 365 tranche
Réponses
3
Affichages
316

Statistiques des forums

Discussions
312 247
Messages
2 086 589
Membres
103 247
dernier inscrit
bottxok