Indiquer tous les jours d'indisponibilités

Bonjour.

Pour construire des plannings, je dois renseigner les vacances des employés et leurs indisponibilités.

J'ai besoin d'une macro qui me permettrai de trouver le premier jour renseigné (j'imagine quelque chose du genre:

application.match(.....), le dernier jour renseigné, mais surtout de définir tous les autres jours qui sont entre le premier et le dernier pour que je ne puisse pas leur attribuer d'horaire.

Je pense que le fichier joint vous aidera à comprendre.

Voir feuille "bdd" où je renseigne les indisponibilités

Voir feuille "Plg_mgr" pour voir le résultat attendu.

PS: Si je veux passer par une macro, c'est parce que je vais devoir paramétrer d'autre conditions sur ces même cellules.

Merci beaucoup.

21plg-test.xlsm (29.67 Ko)
43plg-test.zip (26.41 Ko)

Bonjour

A tester

Bonjour Banzai64 ou bonsoir. C'est selon.

Je pourrais valider ce post car c'est parfait comme d'habitude, mais je ne comprends pas cette ligne de code qui est sans doute simple:

Set Cel = .Range("A9:A18").Find(what:=Cells(Target.Row, "L"), LookIn:=xlValues, lookat:=xlWhole)

Je pense comprendre l'idée générale mais je coince sur cette partie:

Target.Row, "L"

Tel que je le comprends.

On cherche le nom de la personne en trouvant d'abord le numéro de ligne puis le numéro de colonne. Mais pourquoi commencer la recherche de colonne à partir de "L" alors qu'on peut commencer par "D" (qui correspond à la première colonne du tableau de planning) ?

Il est fort probable que je me plante lamentablement sur l'interprétation du code, donc si ce n'est pas ça, pourrais-tu m'expliquer un peu.

merci d'avance.

Bonjour,

Target.Row, "L"

Cela renvoie la cellule L et ligne modifiée dans la plage ("N6:N18,P6:P18").

Si tu modifies par exemple la cellule N6 :

  • Target.row vaudra 6
  • "L" est colonne L

Cells(target.row, "L") te renvoie la valeur se trouvant dans la cellule L6 (Valeur "A" dans ton fichier)

Set Cel = .Range("A9:A18").Find(what:=Cells(Target.Row, "L"), LookIn:=xlValues, lookat:=xlWhole)

Cette ligne te permet donc de chercher la cellule (L6 dans mon exemple - donc valeur "A") dans la plage A9 à A18 de la feuille Plg_mgr (donc "A" qui se trouve en A9).

Set Cel : correspond donc à un objet --> dans mon exemple cellule "A9"

Amicalement

Bonjour Dan.

Merci, je comprends mieux. J'étais à côté de la plaque sur ce que je pensais avoir compris

Banzai64. Un grand merci à toi aussi qui à fait ce code.

Rechercher des sujets similaires à "indiquer tous jours indisponibilites"