XL 2016 SI + RECHERCHE = Renseigner automatiquement des valeurs dans un calendrier

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 !

nours955i

XLDnaute Nouveau
Bonjour,
voilà 9 ans que je n'étais pas revenu sur ce forum... mais la je bloque 🙁
Voici ma requête :
dans le fichier joint j'ai 2 onglets :
  • le 1er est un suivi de projets, de tâches et de période (date début/fin)
  • le 2ème est un calendrier 2016 vue par mois
Je souhaite, pour des questions de lisibilité, renseigner automatiquement les projets + tâches de l'onglet "suivi projets" dans l'onglet "calendrier 2016" en respectant les dates de début et de fin.
A cet effet, vous verrez que j'ai simulé cette relation entre la ligne 15 du premier onglet et la période du 25/05 au 03/06 dans le 2ème onglet.
Si à une date donnée il n'y a pas de tâche dans le 1er onglet alors la cellule du calendrier sera vierge
Fonction RECHERCHE, Macro ???? je suis à court d'idée !

Souhaitant avoir été assez clair et vous remerciant par avance pour votre aide 🙂
Bonne journée
Cdt
Philippe
Version Office 2016/Mac Sierra
 

Pièces jointes

Bonsoir nours955i, bienvenue sur XLD,

Il faut des formules matricielles (validation par Ctrl+Maj+Entrée) et les cellules fusionnées ne les acceptent pas.

J'ai donc tout simplement supprimé les colonnes où elles se trouvaient et élargi les autres.

Voyez donc les fichiers joints et leurs 2 formules matricielles en C4 et C5 recopiées à droite puis vers le bas.

Notez la différence des résultats entre les 2 fichiers : le 1er utilise PETITE.VALEUR, le second GRANDE.VALEUR.

Donc 1ère ligne trouvée pour le 1er, dernière ligne trouvée pour le 2ème.

A+
 

Pièces jointes

Bonsoir nours955i, bienvenue sur XLD,

Il faut des formules matricielles (validation par Ctrl+Maj+Entrée) et les cellules fusionnées ne les acceptent pas.

J'ai donc tout simplement supprimé les colonnes où elles se trouvaient et élargi les autres.

Voyez donc les fichiers joints et leurs 2 formules matricielles en C4 et C5 recopiées à droite puis vers le bas.

Notez la différence des résultats entre les 2 fichiers : le 1er utilise PETITE.VALEUR, le second GRANDE.VALEUR.

Donc 1ère ligne trouvée pour le 1er, dernière ligne trouvée pour le 2ème.

A+
@job75 : bonjour et merci pour cette aide 🙂
Effectivement... je n'aurai jamais trouvé seul !

Je note qu'il semble impossible de faire cohabiter sur une même feuille (un même calendrier) l'ensemble des projets/tâches afin de consolider l'ensemble des données.
Sans doute est-ce dû au fait que pour une même date et une période commune on peut avoir plusieurs projets et plusieurs tâches (d'où les 2 fichiers petite et grande valeur)
 
Finalement si je revois mon besoin à la baisse :
  • définir une période (exemple une semaine de jours ouvrés du lundi 10 au vendredi 15 octobre 2016)
  • rechercher dans l'onglet "Suivi projet" s'il existe 1 ou plusieurs évènements (tâches) sur cette période
  • les afficher d'une façon ou d'une autre dans un autre onglet (pas forcément sous forme de calendrier tel que souhaité à l'origine
Merci et bon dimanche 😉
 
Re,

Et si l'on veut restituer le résultat dans une feuille, formule matricielle en Recherche!A5 :
Code:
=SIERREUR(INDEX('Suivi projets'!A$1:A$1000;PETITE.VALEUR(SI(($A$3>='Suivi projets'!$C$1:$C$1000)*($B$3<='Suivi projets'!$E$1:$E$1000);LIGNE('Suivi projets'!$A$1:$A$1000));LIGNES(A$5:A5)));"")
A tirer sur B5 et vers le bas.

Fichier (2).

A+
 

Pièces jointes

Dernière édition:
Re,

Et si l'on veut restituer le résultat dans une feuille, formule matricielle en Recherche!A5 :
Code:
=SIERREUR(INDEX('Suivi projets'!A$1:A$1000;PETITE.VALEUR(SI(($A$3>='Suivi projets'!$C$1:$C$1000)*($B$3<='Suivi projets'!$E$1:$E$1000);LIGNE('Suivi projets'!$A$1:$A$1000));LIGNES(A$5:A5)));"")
A tirer sur B5 et vers le bas.

Fichier (2).

A+
Humm pas mal !
Je pense que je vais pouvoir atteindre mon objectif avec cette dernière proposition
Merci beaucoup 🙂
 
Re,

Un autre problème : lister tous les projets qui existent dans la période de recherche.

On peut alors utiliser cette fonction VBA :
Code:
Function DateExiste(deb&, fin&, DebutProjet As Range, FinProjet As Range)
If deb = 0 Then End 'sécurité si effacement
Dim a() As Boolean, i&, dat&
ReDim a(1 To DebutProjet.Count, 1 To 1)
For i = 1 To UBound(a)
  For dat = deb To fin
    If dat >= DebutProjet(i) And dat <= FinProjet(i) Then a(i, 1) = True: Exit For
Next dat, i
DateExiste = a 'vecteur vertical
End Function
Le code doit être impérativement dans un module standard.

Ensuite formule matricielle en Recherche!A5 :
Code:
=SIERREUR(INDEX('Suivi projets'!A$1:A$18;PETITE.VALEUR(SI(DateExiste($A$3;$B$3;'Suivi projets'!$C$1:$C$18;'Suivi projets'!$E$1:$E$18);LIGNE('Suivi projets'!$A$1:$A$18));LIGNES(A$5:A5)));"")
Fichier (3) d'extension .xlsm.

A+
 

Pièces jointes

Dernière édition:
- 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

Retour