Récupérer plusieurs dates dans une cellule

Excusez-moi, ci-joint le fichier.

Rassurez-vous, la formule VBA serait bien plus flippante

La formule a t-elle été générée à partir d'une série de manipulations réalisées depuis l'interface graphique de power query ou vous l'avez saisies vous-même ? Si c'est une série de manipulationS, ça m’intéresse parce que je serai éventuellement capable de reproduire les manips. Si c'est une formule qu'il faut générer tel quel, je hisse le drapeau blanc.

Bonjour à tous !

Pour ce que je perçois du besoin, je vous propose de tester cette approche :

let
  Source = Excel.CurrentWorkbook(){[Name = "Tableau1"]}[Content], 
  Fractt = Table.ExpandListColumn(
    Table.TransformColumns(
      Table.TransformColumnTypes(Source, {{"Objet", type text}}), 
      {{"Objet", Splitter.SplitTextByDelimiter(";")}}
    ), 
    "Objet"
  ), 
  TypageFinal = Table.TransformColumns(
    Fractt, 
    {
      {"Date résa", DateTime.From}, 
      {"Objet", Int8.From}, 
      {"Début réservation", Date.From}, 
      {"Fin réservation", Date.From}
    }, 
    Text.From
  )
in
  TypageFinal

Bonjour,

Je reviens après quelques jours d'absence.

@saboh, votre code fonctionne très bien dans mon environnement. Merci.

@JFL, votre code fonctionne également. Merci aussi.

C'est génial du coup de pouvoir générer des lignes à partir de cellules contenant plusieurs enregistrements car mes formules excel ne pouvaient pas être opérationnelles quand dans une même cellule, il y a plusieurs objets reservés. En effet, j'ai besoin de savoir si l'objet n'a pas déjà été réservé ; ce qui est possible via les formules sommeprod à partir du moment où une celulle=un objet.

Du coup, je suis embêté car mes formules excel ne peuvent plus être utilisées si j'utilise powerquery. Suis-je obligé d'adapter mes formules à powerquery ? Ou alors est-ce qu'il ne vaut mieux pas créer une feuille à côté où je fais référence à l'ensemble du tableau powerquery généré (via un simple "="). De cette manière je pourrais créer mes colonnes à côté pour mettre en oeuvre les formules excel. Seul petit hic avec cette méthode, c'est que s'il y a un nouvelle enregistrement dans le tableau power query, la ligne ne va pas s'incrémenter dans le tableau lié... C'est petit casse tête...

Bonsoir à tous !

Pourquoi ne pas poursuivre dans Power Query pour d'autres retraitements ?

Je veux bien mais est-ce qu'il est réalisable de transposer dans powerquery les formules excel présentes dans les colonnes colorées de la feuille Form1 ?

Du coup, les formules ne seront pas dans la feuille source mais dans la feuille générée par powerquery. Ca semble plus sécure du point de vue de l'intégrité des données.

Sachant que la formule de la colonne k ne peut pas fonctionner tant que les cellules de la colonne D se sont pas explosées.

Bonjour à tous !

Pouvez-vous expliciter les champs suivants de la feuille "Form1" ? :

  1. Contrôle des chevauchements
  2. Dispo aujourd'hui

Oui bien sûr.

Contrôle des chevauchements : la formule va vérifier si un objet concerné par une réservation n'a pas déjà été concerné par une autre réservation dans l'intervalle de date demandée. Exemple : un client Jean réserve l'objet A pour l'intervalle de date 10/06/2025-25/06/2025. La formule va voir si un autre client n'a pas déjà réservé cet objet pour une date incluse dans l'intervalle de réservation demandée par le client Jean. Si Robert a déjà réservé l'objet A du 23/06/2025 au 30/06/2025 alors la formule va indiqué déjà réservé. Sinon elle indiquera créneau libre.

Dispo aujourdhui : dans la même logique que précédemment la formule va vérifier les intervalles de date de réservations des objets. Ici, ce qui nous intéresse c'est est ce que l'objet A (qui fait peut être l'objet de multiples réservations par des clients différents) est disponible à la date d'aujourd'hui. Si oui : "disponible" ; sinon "non disponible".

Bonjour à tous de nouveau !

Contrôle des chevauchements : la formule va vérifier si un objet concerné par une réservation n'a pas déjà été concerné par une autre réservation dans l'intervalle de date demandée. Exemple : un client Jean réserve l'objet A pour l'intervalle de date 10/06/2025-25/06/2025. La formule va voir si un autre client n'a pas déjà réservé cet objet pour une date incluse dans l'intervalle de réservation demandée par le client Jean. Si Robert a déjà réservé l'objet A du 23/06/2025 au 30/06/2025 alors la formule va indiqué déjà réservé. Sinon elle indiquera créneau libre.

Si le contrôle vise à vérifier l'absence de jours communs entre les plages (antérieures) de réservation pour un même objet et une même catégorie, il me semble que la formule employée n'est pas fonctionnelle.

Par exemple pour Strasbourg du 30/6/25 : si l'on modifie le début de réservation en 15/6/2025, le contrôle effectué retournera "Créneau libre" alors que des jours communs avec Lyon du 30/6/25 existent.

Oui c'est vrai mais ce qui compte ici c'est la chronologie de la réservation. Je ne vais pas avoir à modifier une date de réservation à postériori, le système va analyser dans l'ordre des réservations. Donc même imparfaite, la formule est fonctionnelle dans ma situation.

Bonjour,

Je me permets de m'insérer dans ce fil, car je ne suis pas non plus d'accord, tout comme JFL , avec certains résultats...

Exemple, l'objet B22 :

image

Tu marques les 2 dernières lignes "Non validé", mais pour quelle raison?

La ligne qui "pourrait" les en empêcher est la 2ème ligne de "Paris", mais qui n'est pas valide du fait du dépassement de durée autorisé...

Tu confirmes, que même si une réservation n'est pas valide, elle peut en empêcher d'autres?

autre question, la réservation (par exemple 2ème de paris pour B22) ne pourra plus être modifiée (tant pis pour eux, ils n'avaient qu'à bien faire depuis le début.... )

@ te relire, avec ces précisions

Bienvenu sur fil cousinhub

Les 2 dernières lignes sont non pas valides effectivement et ça parait incohérent. Mais j'ai une explication, je l'avais modifié à la main. Ce qu'il ne faut visiblement surtout pas faire avec ce modèle de calcul. Je n'avais pas mesuré les conséquences au moment de le faire, lorsque j'ai voulu constituer un fichier neutre sur le forum.

Mais j'ai testé des dizaines de cas, ça fonctionne tant que la chronologie du jour de la réservation est respectée et qu'on intervient pas dessus à postériori.

Pour ton autre question. Oui, dans mon fonctionnement ici, c'est tant pis pour eux , refaite votre réservation. J'ai déjà galéré pour trouver ces formules qui ne m'appartiennent pas d'ailleurs et j'en étais tellement satisfait que mon niveau d'exigence est modeste

Re-,

Pour la modification à la main???(j'ai un doute, au vu de la formule employée...), mais bref...

Autres précisions :
- La durée max peut-elle être calculée selon l'objet (par exemple, supérieur ou égal à 30 => durée max de 21 jours, sinon 42)?
- les dates sont-elles toutes incluses (fin de la résa le 11/06 => donc départ le 12, et réservation possible à compter du 12) ou date de début incluse, date de fin exclue (fin de résa le 11, résa possible dès le 11 au soir)?

La durée max dépend de l'objet. Il y a des objets qui ont une durée de 21 jours, d'autres de 24. Mais la durée ne peut pas être calculée avec des < ou > du fait que l'objet est dans l'environnement réel de type texte.

La réservation fonctionne ainsi. Fin de la résa le 11/06 donc réservation possible à compter du 12/06.

Re-,

Donc, la durée entre le 06/07 et le 11/07 est bien de 6 jours, et non 5 comme te l'indique la formule utilisée...

Et le système de réservation est donc un gros tirage de loto, avec encore moins de chance de gagner...

Les informations de disponibilité sont visibles par ceux qui veulent réserver? Si oui, bien préciser que c'est date de fin incluse (ce qui n'est pas une règle commune, lorsque je réserve du 06 au 11, je m'en vais le 11, et pas le 12)

Bref, c'est pas bien clair tout ça, m'est avis que cet exemple n'est qu'un exemple bien éloigné du fichier réel, et que le besoin semble mal exprimé...

C'est un système que j'aimerai mettre en place. Remplacer un système 100% manuel par un peu d'automatisation. Sachant que nous sommes dans un contexte associatif avec peu de réservation et sans de gros enjeux. L'outil serait vu comme un facilitateur.

Dans les faits, les objets sont ramenés avant la date limite (11/06 dans ton exemple) et sont donc disponibles le 12.

Je souhaiterai que les informations soient vu par ceux qui veulent réserver mais pas sous cette forme là. J'imagine un tableau comprenant uniquement la liste de tous les objets et à côté une colonne indiquant les plages de réservations demandées pour cet objet.

Re-,

Un essai, d'après ce que j'ai compris.

Dans le premier onglet, "Initial", ton exemple

Dans le 2ème, "Paramètres", un tableau définissant les durées max selon les objets

Dans le 3ème, "Base", le tableau de saisie des réservations réduit aux colonnes nécessaires

Et dans le 4ème, une requête pour te permettre de voir si les résa sont "valides". A partir du moment où la durée excédait la limite de jours, le calcul s'arrête pour cette ligne, et la validation finale est donc "Invalide". Si les dates se chevauchent, c'est le premier qui a raison.

Si l'objet n'est pas dispo ce jour, colorié en jaune.

Bonne fin d'apm

Merci par avance du temps consacré.

J'observe que la 1ère ligne du tableau source dont la colonne objet contenait plusieurs enregistrements a bien été fractionné en autant de lignes qu'il y a d'objets. Ça c'est déjà un super point. Par contre j'ai noté que quand je mets plus de 3 enregistrements dans la colonne objet, j'ai un message d'erreur qui me dit 'l’index ne peut pas être négatif.

Quand tu dis "A partir du moment où la durée excédait la limite de jours, le calcul s'arrête pour cette ligne, et la validation finale est donc "Invalide". C'est ce qui explique pourquoi le A12 est invalide alors qu'il n'a fait l'objet d'aucune réservation antérieure ?

Je vais être absent quelques jours. Je reprendrai le fil à mon retour.

Re-,

L'erreur provient de l'absence de l'objet dans le tableau de l'onglet "Paramètres" (attention, les nombres sont au format texte... Donc, un peu pas facile, il eût été préférable de nommer ces objets directement par du texte, et non des nombres)

Pour l'invalidité, je ne calcule plus rien, vu qu'il est hors clou...

La v1, qui transforme au format texte les objets du tableau de durée

Rechercher des sujets similaires à "recuperer dates"