Astuces pour planification

Bonjour,

Je suis navrée de mettre autant de temps pour te répondre.

Je viens à l'instant de me replonger dans le planning avec les informations précédentes que tu m'as donné. Il est clair que tout ce processus est fort complexe, et, qu'il est difficile pour moi d'essayer de tout comprendre.

Je suis désolé de t’embêter encore avec ce fichier, mais j'ai essayé de faire le roulement sur l'autre secteur que je t'avais transmis il y a quelques mois. Preuve que je ne suis pas experte en excel : impossibilité.

Si tu aurais la gentillesse de me l'effectuer également, cela me permettra d'être tranquille un bon moment.

Pour les spécificités le roulement est le même que pour celui que l'ancien avec le même nombre de créneau pour le week end et jours férié.. Seule différence : la liste est beaucoup plus petite et le roulement du week-end (le médecin inscrit effectue le week-end du samedi et du dimanche entièrement).

Si tu as besoin d'autres précisions, n’hésite pas.

Merci beaucoup

Cordialement

Bonjour,

Je me partage entre interventions sur le Forum et autres activités un peu plus physiques... et j'ai toujours quelques réponses en retard à rattraper... Je regarde de plus près dès que je peux...

Bonne journée à toi.

Bonjour,

Pas de problème, je comprends que tu sois bien occupé. J'ai un délai jusqu'au 1 octobre pour mon fichier par mon employeur.

Merci beaucoup

Bonne journée à toi

Bonjour,

J'ai dressé la liste (2e liste) à partir de ta deuxième répartition. Je recense 51 noms (j'espère que j'ai le compte). 46 se trouvent déjà dans la 1re liste. 5 ne s'y trouvent pas.

A traiter indépendamment, ne crains-tu pas des télescopages ? (que quelqu'un se retrouve le même jour sur les deux répartitions !)

Cordialement.

Bonjour

Il y a 48 noms

Je te joins la liste dans un onglet, cela sera peut être plus simple pour toi.

Oui effectivement, tu as raison, il y a un risque de doublon, mais les doublons se gèrent après manuellement, c'est beaucoup moins grave.

Merci

Bonjour

Je viens de me rentre compte d'une erreur, sur la première répartition. En effet, lorsque l'on sélectionne la répartition allant du 06 novembre au 05 mai, la date du 11/01/2018 et du 12/01/2018, est sur 3 plages avec un roulement de dimanche à la place de roulement de semaine. Peut-tu également corriger l'erreur. Merci beaucoup

J'ai essayé avec l'aide que tu m'as donné, de corriger l'erreur toute seule, pour ne pas t'embêter encore, mais bon voila.............

Merci beaucoup

Bonne journée

Bonjour,

J'ai essayé avec l'aide que tu m'as donné, de corriger l'erreur toute seule, pour ne pas t'embêter encore, mais bon voila.............

Ne te frappe pas pour ça ! Cette erreur nécessite d'abord de comprendre d'où vient le problème et savoir comment le résoudre ensuite... et je peux t'assurer que, n'étant déjà plus débutant mais pas encore vraiment aguerri, j'aurais certainement galéré des jours entiers là-dessus !

Le 11/01/2018 apparaît sur 3 lignes, de même que le 12, et ces deux jours sont alimentés sur la liste Jours non ouvrés !

Le 11 est un jeudi, le 12 un vendredi. Cela signifie que le 11 a été identifié comme férié, étant un jeudi, le 12 a donc été assimilé à la suite.

Hypothèse probable à ce stade : la date du 11/01 a été identifiée comme étant le 01/11, lequel est bien un férié ! Soit on a affaire à un inversion Jour/Mois lors d'une conversion automatique de date par VBA...

C'est un phénomène récurrent : si on laisse VBA convertir spontanément des dates (et dès qu'une chaîne est reconnue comme date, il la convertit...), si le jour est inférieur à 13, il opére selon le format américain (mois/jour/année) et on se retrouve avec une inversion mois/jour. Pour y pallier, on convertit explicitement (ce qui force VBA à utiliser les paramètres régionaux de Windows (donc format de date FR) pour opérer la conversion, ou bien on convertit la date en entier long (format de stockage des dates), qui lui ne peut plus donner lieu à inversion...

Tu noteras au début de la procédure ListerCalendrier que j'opère le prélèvement des dates en Liste! J2 et J3 en les convertissant en nombres entiers de type Long avec la fonction CLng.

Cette précaution n'a cependant pas suffi... On n'est donc jamais totalement à l'abri de ce phénomène dès que l'on a affaire à des dates.

La procédure citée envoie cette date convertie en entier à la fonction JoJno, laquelle utilise en outre la fonction EstFE pour identifier un férié.

Ces deux fonctions sont déclarées comme suit :

Function EstFe(ByVal d As Date) As Boolean
Function JoJno(ByVal d As Date) As Integer

Il faut croire que cela suffit à VBA pour lui donner l'occasion de réintervenir ! Première correction : supprimer le As Date dans la déclaration de ces deux fonctions.

Function EstFe(ByVal d) As Boolean
Function JoJno(ByVal d) As Integer

Essai après cette première correction, les 11 et 12/01 sont rétablis sur une ligne, c'est donc OK de ce point de vue, cependant les noms affectés demeurent piochés dans la liste jours non ouvrés ! Il faut donc aller voir quel élément intervient encore, ce dans la procédure de remplissage : RemplirCalendrier.

Au début de cette procédure, l'on prélève la colonne dates du calendrier que l'on vient d'établir dans un tableau qui sera utilisé ensuite pour monter la liste à affecter à la colonne voisine.

        Cald = .Range("C1:C" & n)

Dans la mesure où les dates n'apparaissent que dans ce tableau... on va opérer ici une seconde correction en forçant le prélèvement des dates sous forme numérique. Seconde correction : ajouter .Value2 à l'expression désignant la plage prélevée.

        Cald = .Range("C1:C" & n).Value2

La propriété Value2 force la prise en compte de la valeur numérique pour les données de type Date et monétaires.

Ce qui semble régler ce problème...

Pour ta question initiale relative au traitement 2e liste, je n'ai pas le temps de m'en occuper (étant dans la toute dernière ligne droite avant départ) avant d'être parvenu à destination.

A+ donc. Cordialement.

Merci beaucoup, cela fonctionne à merveille, sauf que du coup les jours féries sont maintenant sur 1 plage horaire.

Quelle complexité, je ne sais pas comment tu fais, je me serais dejà tirer les cheveux une bonne vingtaine de fois

sauf que du coup les jours féries sont maintenant sur 1 plage horaire

Je n'ai pas compris ce que tu veux dire par là ?

Ce n'est pas bien grave, cela peut se faire manuellement. Suite à ton explication, le 11 et le 12 sont bien sur un roulement de semaine avec 1 plage horaires mais en revanche, les jours féries sont sur 1 plage au lieu de 3

Arrgh ! Désolé de ne pas l'avoir vu ! C'est Find qui ne s'y retrouve plus et ne reconnaît plus les fériés !

Moyen simple de de lui faire retrouver la raison : tu sélectionnes la plage Fériés sur Liste, et tu lui affectes un format de cellule Nombre avec 0 décimales (à la place du format date).

Je verrai plus tard à trouver quelque chose de plus élégant...

Cordialement.

d'accord, parfait.

Je te remercie et je compte sur toi pour la deuxième répartition.

Bonjour,

MFerrand a écrit :

Moyen simple de de lui faire retrouver la raison : tu sélectionnes la plage Fériés sur Liste, et tu lui affectes un format de cellule Nombre avec 0 décimales (à la place du format date).

Je verrai plus tard à trouver quelque chose de plus élégant...

Find c'est dans la partie ESTFE ? J'affecte la liste des dates féries qui est en colonne F ?.

J'aurais voulu trouver la solution, sans de déranger ENCORE, mais c'est vraiment du langage chinois mdrr

2017 09 18 163918

C''est sur la feuille Liste que ça se passe...

ah d'accord,

mais cela ne fonctionne pas, peut être que je m'y prends mal. Jours féries toujours sur une seule plage horaire avec un roulement de semaine.

En revanche, le pb du 11 et 12/01 est réglé.

Merci beaucoup pour ta patience

Bonjour,

Tout d'abord, je tiens à m'excuser, tu avais raison, cela fonctionne en changeant les dates en décimales. En l'effectuant à tête réposée,

Je suis persuadée que tu ne m'oublies pas pour le prochain tableau.

Bien à toi

Non ! Je ne t'oublie pas ! Je laissais mûrir, attendant une inspiration subite ! Mais il va falloir que je prenne le problème à bras-le-corps !

Ce qui me chiffonnait, c'est que c'est presque pareil, mais le presque risquait d'amener à doubler le code en raisons des petites différences. Je voudrais donc arriver à avoir juste une dérivation sur les éléments qui diffèrent tout en fonctionnant avec le même code sur les éléments fonctionnant de la même façon...

On va essayer de trouver le meilleur équilibre ! A+

Et bonne journée.

Bonjour,

Après 3 jours un peu éreintants à commencer à réaménager un logement après travaux lié à dégâts des eaux... j'ai essayé de revoir ton programme en priorité... Je pense avoir trouvé le point d'intervention pour opérer de façon différenciée pour la seconde liste.

Mais je ne pourrai pas boucler ça ce soir.

D'une part, il faut réécrire une procédure pour qu'elle renvoie des valeurs différentes selon que l'on travaille sur la première liste ou sur la seconde.

Mais surtout, d'autre part il faut introduire des arguments pour toutes les procédures de façon qu'elle puissent traiter l'une ou l'autre des listes selon ce qu'on leur indiquera (et ça c'est un peu plus long à faire, réclame d'avoir l'esprit clair, et requiert vérification pour éviter des erreurs d'aiguillage...)

Je pense pouvoir faire ça dans la semaine. En attendant j'aimerais que tu me confirmes les regroupements à opérer pour la seconde liste :

  • SA-DI d'un côté,
  • Fériés et assimilés de l'autre.
Avec prééminence du regroupement SA-DI : exemple, samedi et dimanche de Pâques regroupés au titre SA-DI, lundi de Pâques dissocié comme férié.

Cordialement.

Bonjour,

Pas de soucis, je comprends que tu sois débordé.

Oui voila exactement, le SA-DI comprend le même nom pour les 2 jours, et si le lundi est férié donc le SA-DI mème nom mais le lundi autre nom. Et si le mardi est un jour férié, comme dans l'autre liste le lundi est férié avec SA-DI (1 nom) +Lun+Mar (1 nom) pour les deux jours. et si le mercredi est férié c'est toujours le roulement du week-end qui s'applique.

Petite précision pour le tableau soit bien à jour. pour le mois de mai 2018, plus précisément la semaine du 08 mai comme les jours fériés s'intercalent avec les jours de semaine, les hautes sphères ont déclarés que toute la semaine était en férié, du coup roulement de week-end pour les deux tableaux.

n’hésite pas si tu as d'autres questions

bien à toi

Rechercher des sujets similaires à "astuces planification"