Emploi

Bonjour,

J'ai besoin d'aide pour automatiser la réalisation d'un planning

Bonjour et bienvenue sur le forum

Tu joins un fichier, mais c'est un fichier texte. Il ne nous est pas d'une grande utilité : tu es ici sur un site Excel...

Alors...

Bye !

Oui tu as raison c'était une erreur voici le bon fichier Ecxel .. c'est le planning global

Sand17 a écrit :

par exemple: luje veut dire que ce patient n'a cette séance que lundi et mardi

jeudi ou mardi ?

Intéressant, mais c'est un sacré bazar en terme d'organisation des données.

Certes, on ne part pas d'une base (enfin d'un tableau exploitable par TCD), mais on doit pouvoir s'en sortir.

Par contre, il faudra bien clarifier la façon de mettre les jours de la semaine et les exclusions de façon à ce que les formules excel simples puissent décoder

Et mettre les horaires de façon normalisée

Je te proposerai quelque chose de simple, sauf si quelqu'un se prend au jeu avant moi !

Steelson a écrit :

Intéressant, mais c'est un sacré bazar en terme d'organisation des données.

Certes, on ne part pas d'une base (enfin d'un tableau exploitable par TCD), mais on doit pouvoir s'en sortir.

Par contre, il faudra bien clarifier la façon de mettre les jours de la semaine et les exclusions de façon à ce que les formules excel simples puissent décoder

Et mettre les horaires de façon normalisée

Je te proposerai quelque chose de simple, sauf si quelqu'un se prend au jeu avant moi !

Ok, merci beaucoup

En base chaque kiné fait le même programme toute la semaine, mais pour les patients il y a des exceptions comme j'ai expliqué tout-en haut ( luje ) , si vous ne comprenez pas quelque chose n'hésitez pas de me le demander

Petit début ... le planning est fonction du nom dans l'onglet

Reste à gérer les "sauf" ou les "seulement"

22semaine-09.xlsm (27.03 Ko)

Pour début c'est Super Merci

Merci

Quelques aménagements ...

Le nom du patient est le nom de l'onglet !

Tu peux donc recopier la feuille et y mettre le nom des autres patients

Il réapparaît automatiquement ensuite au dessus du planning

Il faut structurer un minimum les informations ... je te propose donc de mettre + et -, + pour "seulement les jours" suivants le +, ou - "sauf les jours" suivants le -, rien pour toute la semaine

Pas de - et de + en même temps, cela n'a pas de sens

par exemple JEAN -LuMa = toute la semaine sauf Lu et Ma

ou bien JULES +MeJeVe = uniquement les Me Je et Ve


je vais voir maintenant pour traiter les multiples dans le même créneau séparés par /

15semaine-09.xlsm (29.84 Ko)

Version la plus aboutie ...

Il faut quand même (j'insiste) un minimum de syntaxe :

  • les jours ne peuvent être précisés que dans les cases patients, pas au niveau des intervenants
  • un + signifie que les jours qui suivent sont les seuls jours concernés de la semaine
  • un signe - signifie que les jours qui suivent ne sont pas concernés, mais les autres le sont
  • sans signe, c'est toute la semaine qui est concernée
  • les patients peuvent être à la queue leu leu s'ils ont les mêmes jours de traitement, sinon on les sépare par /
  • en cas de conflit, c'est indiqué comme dans l'exemple joint
  • ne pas fusionner des cases
  • le nom du patient est le nom de l'onglet
20semaine-09.xlsm (31.18 Ko)

Merci Beaucoup

J'essaie de comprendre et je reviendrai vers vous si je comprends pas quelque chose

Merci encore

merci

Sand17 a écrit :

Vous pouvez m'expliquer svp cette partie du code :

        For l = 0 To UBound(patient) - 1
                    If UBound(Split(patient(l) & "-", "-")) > 1 Then
                        temp = Split(patient(l) & "-", "-")
                        If UCase(temp(0)) Like "*" & UCase(ActiveSheet.Name) & "*" Then
                            For k = 1 To 5
                                If UCase(temp(1)) Like "*" & UCase(Cells(ligdeb, coldeb + k)) & "*" Then
 If UBound(Split(patient(l) & "-", "-")) > 1 Then

l étant l'indice du patient, je prend patient(l) auquel j'ajoute le signe "-".

Ceci me permet de décomposer sans erreur en plusieurs morceaux le texte dès lors qu'il y a un signe -, je prends chaque partie (split)

Si le nombre de morceaux est supérieur à 1 alors je détecte une restriction sur les jours de la semaine

If UCase(temp(0)) Like "*" & UCase(ActiveSheet.Name) & "*" Then

Je regarde si le nom correspond bien à l'onglet

If UCase(temp(1)) Like "*" & UCase(Cells(ligdeb, coldeb + k)) & "*" Then

Enfin je compare alors cette restriction à l'en-tête de la colonne (le tout en majuscule pour éviter les écritures disparates comme Lu, lu, LU pour lundi) ceci pour les 5 jours de la semaine

Sand17 a écrit :

Et sinon avez vous une solution pour générer les emplois de tous les patients en même temps ( par un seul clique ) ça sera l'idéal. ,

ok, en créant autant d'onglets que de patients donc, je vais le faire ...

Mettre la liste des patients en colonne A, cela générera un onglet par patient.

14semaine-09.xlsm (30.01 Ko)

C'est géniaaaaal, Merci beaucoup

Bonjour,

Merci beaucoup .

J'espère que vous vous souvenez bien du problème

Oui je suis reconnecté ! c'était un beau sujet !

Il faut que je réfléchisse un peu car une MFC seule ne suffira pas ! mais c'est possible via macro en "arrière-plan" (je veux dire par là sans avoir à activer, sur événement de modification d'une cellule); si cela ralentit trop je mettrai un bouton "test conflits"

Heu ... il me faudra une peu de temps car le week end est chargé ...

super si vous pouvez le faire avant mercredi ça sera génial Merci

Hé bien voilà, à tester...

Les couleurs sont celles des 2 cases "conflit" et "approuvé"

La tranche horaire ainsi que le patient sont colorés "conflit" dès lors qu'une incompatibilité est détectée.

Au passage, tu as donc réussi à le mettre en oeuvre jusque maintenant ? facilement ou pas ?

Même si la syntaxe est simple, je trouve intéressant d'avoir mis en oeuvre un "langage" particulier, et qui évite des colonnes à tire-larigot !

En tout cas c'est génial, bravo et merci infiniment

Rechercher des sujets similaires à "emploi"