Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

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

  • Projet calendrier 2016 V1.xlsx
    55.2 KB · Affichages: 104

nours955i

XLDnaute Nouveau
j'ai modifié le titre car, d'après mes recherches, il semblerait qu'une fonction combinant RECHERCHE et SI pourrait faire le job... enfin... selon moi
Sachant que je n'ai pas réussi en combinant ces 2 fonctions !
 

job75

XLDnaute Barbatruc
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

  • Projet calendrier 2016 - PETITE.VALEUR(1).xlsx
    41.1 KB · Affichages: 110
  • Projet calendrier 2016 - GRANDE.VALEUR(1).xlsx
    41.5 KB · Affichages: 87

nours955i

XLDnaute Nouveau
@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)
 

nours955i

XLDnaute Nouveau
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
 

job75

XLDnaute Barbatruc
Bonjour nours955i, le forum,

Si l'on recherche tous les projets qui englobent une période donnée, utiliser une MFC :
Code:
=($G$3>=$C4)*($H$3<=$E4)
Fichier joint.

Bonne journée.
 

Pièces jointes

  • Recherche de projet(1).xlsx
    15.9 KB · Affichages: 92
Dernière édition:

job75

XLDnaute Barbatruc
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

  • Recherche de projet(2).xlsx
    19.5 KB · Affichages: 111
Dernière édition:

nours955i

XLDnaute Nouveau
Humm pas mal !
Je pense que je vais pouvoir atteindre mon objectif avec cette dernière proposition
Merci beaucoup
 

job75

XLDnaute Barbatruc
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

  • Recherche de projet(3).xlsm
    26.4 KB · Affichages: 102
Dernière édition:

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…