Bonsoir gunther, bonsoir Sébastien :)
Il est vrai que si l'on prend Excel pour un traitement de texte sans structurer un minimum les choses, on le paye plus tard dans la complexité des traitements, voire en ayant des données inutilisables ... il vaut mieux prendre ses précautions avant, un champ date est un champ date, une colonne pour une date de début et une colonne pour une date de fin, ça change la vie
A défaut voici quelques formules testées dans quelques cas possibles.
(un extrait de fichier pour se rendre compte des cas possibles et des dégâts eut été plus facile pour Sébastien et moi ...)
Sur la base d'exemples en colonne A du type;
Du 11 au 13 janvier 2010
Du 11 février au 13 février 2010
Du 11 janvier 2010 au 13 janvier 2010
Du 11 au 15 janvier 2010
Du 29 décembre 2011 au 2 janvier 2012
Une formule à placer en colonne B pour indiquer la date du début:
- Code: Tout sélectionner
=SI(ANNEE(TEXTE(NOMPROPRE(SUPPRESPACE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(A2;DROITE(A2;NBCAR(A2)-CHERCHE("au";A2)-2);"");"Du";"");"du";"");"au";"")));"jj mmmm aaaa"))=1900;DATE(ANNEE(C2);MOIS(C2);SUPPRESPACE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(A2;DROITE(A2;NBCAR(A2)-CHERCHE("au";A2)-2);"");"Du";"");"du";"");"au";"")));TEXTE(NOMPROPRE(SUPPRESPACE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(A2;DROITE(A2;NBCAR(A2)-CHERCHE("au";A2)-2);"");"Du";"");"du";"");"au";"")));"jj mmmm aaaa")*1)
Une autre en colonne C pour déterminer la date de fin (plus facile celle là sans doute) :
- Code: Tout sélectionner
=TEXTE(NOMPROPRE(SUPPRESPACE(DROITE(A2;NBCAR(A2)-CHERCHE("au";A2)-2)));"jj mmmm aaaa")*1
Une autre formule en colonne D pour calculer les jours entre les deux dates, donc en colonne D et copiée vers la droite autant de fois qu'on veut:
- Code: Tout sélectionner
=SI(MIN($B2+COLONNE()-3;$C2)=$C2;"";MIN($B2+COLONNE()-3;$C2))
Voilà, reste à tester sur le fichier réel si ça tient la route ou pas du tout.
Très bonne soirée à tous,