Listes déroulantes filtrées

salut a vous deux !

c'est superbe ce que vous êtes arrivé à faire !

je vous en remercie

voila je voulais faire une MEFC

mais lorsque je le lance il me dit : "variable non définie"

Option Explicit
Option Compare Text
Sub MEFC()

Range("b7:nk158").Select
Selection.FormatConditions.Add Type:=x1Textstring, String:="AM", TextOperator:=x1contains '

Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
pattercolorindex = x1automatic
Color = 65535
End With
Selection.FormatConditions(1).StopIfTrue = False

Range("b7:nk158").Select

End Sub

une petite idée?

ça vient du faite d'être sous excel 2007 ?

Salut Brice,

plutôt qu'une MFC sur tout un planning, ne vaudrait-il pas mieux confier la mise en couleur des remplacements (c'est ça que tu veux, en fait?) à la macro existante ?
Perso, c'est ce que je ferais...


A+

salut curulis,

oui c'est ça.

je voulais le mettre à tous le planning car je voulais que ça fonctionne aussi pour le roulement originelle de chaque équipe. Qui est aussi sur la feuille donnée.

merci et bonne journée.

Brice.

Salut Brice,

tu peux laisser les MFC pour les roulements, plus pratique.
Pour les remplacements, (un peu différent, évidemment, pour les annulations...) voici :

    With Cells(Columns(1).Find(what:=sAgt, lookat:=xlWhole, LookIn:=xlValues, searchdirection:=xlNext).Row, iCol1)
        .Value = sPr
        .Interior.Color = Worksheets("Données").Columns(1).Find(what:=sPr, lookat:=xlWhole, LookIn:=xlValues).Interior.Color
    End With
9planning-brice.zip (276.34 Ko)


A+

salut curulis,

c'est super ça marche au top,

j'ai fais un bouton raz pour effacer les dates de vacances mais je ne comprends pas pourquoi je n'arrive pas à faire la même chose pour les remplacements ...

je voudrais insérer des lignes dans le tableau données afin de passer à 9 opérateur aussi dans le tableau vacances mais j'ai peur que ça modifie les roulements de chaque équipe, quand penses-tu, serait il plus prudent de recréer

une feuille de données pour les dates de vacances ?

merci pour le travail accompli ...

Bonjour Brice Curulis,

Désolé j'ai pas vu que tu avais commenté ton code en post. Le but est bien de s'en servir pour le remettre dans la liste si tu en choisi un autre nom, bien vu.

J'ai vu comment créer AGENT en lui donnant un nom, mais comment tu fais pour qu'il apparaisse qu'une fois que tu as choisit le gars ?

Ensuite tu ne te sers pas de cette ligne de code et çà marche sans.

    'recherche de la ligne du remplaçant dans son équipe pour afficher sa période de travail (ligne planning une ligne plus bas)
    Cells(Columns(1).Find(what:=sAgt, lookat:=xlWhole, LookIn:=xlValues, searchdirection:=xlNext).Row, iCol1) = Cells(iRow + 1, iCol1)
14planning-brice.zip (274.77 Ko)

Merci

Salut Fronck,

- la Sub EffacerCopieChgt() est appelée uniquement si [AGENT] contient un nom, c-à-d, si un remplacement existant est sur le point d'être modifié ou annulé.

- le deuxième effacement...

[AGENT] = ""

...est plus une sécurité (qu'un TOC à moi refuse de faire sauter !) qu'une nécessité puisque, après WorkSheet_Change et WorkSheet_BeforeRightClick, je place le curseur sur la cellule "ABS".

Target.Offset(-1, 0).Select

Or, c'est le clic sur une cellule sous "ABS" qui détermine si il y a un ancien remplacement à corriger en inscrivant d'office en [AGENT] la valeur de la cellule cliquée.
- un nom si cellule occupée ;
- "" si il n'y a personne.

[AGENT] est donc systématiquement initialisée lors d'un clic.


A+

Houlaa, Fronck,

je vois le post changer toutes les minutes !!! Je ne suis plus...
Je ne cherche plus iRow parce que, en entrée de Worksheet_Change(), j'ai à ma disposition la valeur complète du remplacement, Agent/ sPv-sPr-sPl.
Je prends un raccourci pour calculer la "pause" (rigole!) que tu as du louper quelque part dans les posts précédents.

sPr = Split(Split(Target, "/")(1), "-")(1)                      'nom de la pause de travail


A+

Hello Curulis,

C'est bon ma migraine s'en va . J'avais pas fait le rapprochement avec ton rajout dans le Selection change:

[AGENT] = Target.Value

Dans le worksheet change, çà fonctionne sans le irow et l'autre ligne:

 'iRow = Range("A1:A" & Target.Row).Find(what:="Equipe", lookat:=xlPart, LookIn:=xlValues, searchdirection:=xlPrevious).Row
 'Cells(Columns(1).Find(what:=sAgt, lookat:=xlWhole, LookIn:=xlValues, searchdirection:=xlNext).Row, iCol1) = Cells(iRow + 1, iCol1)

puisque l'autre macro SelectionChange fait le job.

Et sinon çà bug pour moi sur les cellules "pauses" (quand les gens travaillent) , à la ligne planning.

Mais sinon, si c'est pas fini avec brice, c'est une sacré formation tes listes déroulantes personnalisées.

A+

Salut Fronck,

non, hein, c'est toujours Worksheet_Change qui inscrit la "pause" sur la ligne du remplaçant !
T'as du louper la dernière version du fichier.

    sPr = Split(Split(Target, "/")(1), "-")(1)                      'nom de la pause de travail
    Target = sAgt                                                   'affichage du remplaçant
    'si cellule [A1] (cellule nommée [AGENT]) est non-vide, effacer le remplacement du remplaçant précédent sur sa ligne
    If [AGENT] <> "" Then Call EffacerCopieChgt([AGENT], iCol1)
    'inscription du remplacement dans la ligne propre du remplaçant
    With Cells(Columns(1).Find(what:=sAgt, lookat:=xlWhole, LookIn:=xlValues, searchdirection:=xlNext).Row, iCol1)
        .Value = sPr
        .Interior.Color = Worksheets("Données").Columns(1).Find(what:=sPr, lookat:=xlWhole, LookIn:=xlValues).Interior.Color
    End With

Worksheet_Selection_Change() ne fait que retenir le nom d'un éventuel ancien remplaçant avant qu'il ne soit effacé par Worksheet_Change() !!


Bonne journée !
A+

Salut à tout les deux !!

Je vous avoue je suis à la traine j'ai de plus en plus de mal à comprendre et refaire les codes .

mais j'aimerais encore utiliser vos connaissances,

Je voudrais savoir s'il y est possible dans les listes de créer une préférence d'affichage. Je m'explique...

Par exemple:

  • Pour un remplacement de nuit afficher en premier les personnes qui étaient de nuit puis celle de repos puis celle de j
  • Pour un remplancement de matin afficher ceux qui seront de matin le lendemain ou surlendemain puis ceux de repos puis ceux de j
  • Pour les autres cas mettre ceux qui sont de repos puis de j !

Voir avez le droit de mettre le sujet en résolu si j'abuse de vous !

Le planning est largement exploitable pour moi aujourd'hui mais je trouverai toujours un truc à améliorer 🤪.

Brice

En faite, je suis bête, il n'y en a pas besoin avec l'affichage du roulement avant et après dans la case, superbe idée curulis.

et bonne idée fronck le surlignage en jaune de la ligne , ça facilite la visibilité car je ne suis toujours pas arrivé à faire un filtre d'affichage...

Salut les gars,

Ok Curulis...pourquoi on enlève pas column1 ici (worksheet change) dans le dernier code que j'ai loupé ?

    With Cells(Columns(1).Find(what:=sAgt, lookat:=xlWhole, LookIn:=xlValues, searchdirection:=xlNext).Row, iCol1)

avec la ligne pour sAgt et icol1 pour la colonne.

Pas de soucis brice

a+

Salut Brice,
Salut Fronck,

il faut bien trouver la ligne de l'ancien remplaçant, Fronck ! sAgt n'est que le nom...

Brice, j'ai quelque peu arrangé ta feuille 'Données' : elle est quasi prête pour accueillir autant d'équipes de 9 agents que nécessaire.
Toutes ces formules me hérissent mais, bon...

Perso, je gérerais tout ça avec VBA comme je le fais dans mon propre planning pro : pas de formules, pas de MFC (ou si peu).

Je t'envoie ce que j'ai mais il y a des choses à parfaire encore...

6planning-brice.zip (293.49 Ko)


A+

Salut Fronck,

tiens, toi qui rigole de mes "pauses", c'est pourtant bien français !

Hé, hé !


A+

Salut Curulis,

Oui, c'est bizarre quand même ce nom. Moi je me mets en pause déjeuner, comme les magnétophone, magnétoscopes... (<> play).

a+

Salut Brice,
Salut Fronck,

dernière version de mes "pauses"...

Quant au passage à une nouvelle année, plutôt que des boutons RAZ, j'ai intégré dans Worksheet_Change(), l'effacement du tableau 'Données' [TAB_VACANCES] ainsi que tous les "ABS" ou remplacements, te laissant ainsi un planning vierge.
Je voulais enregistrer ce fichier vierge avec un nom millésimé, histoire de garder la version en cours en archive, mais j'ai rencontré une "Erreur automation irrémédiable" ???
Donc, Brice, avant de créer un planning vierge, veille à d'abord en faire une copie.

14planning-brice.zip (296.87 Ko)


A+

salut Curulis, salut Fronck

ce planning est génial !!!!

j'ai pu déjà bien avancer sur le planning de remplacement et à une très grande vitesse grâce à ce planning.

j'ai 2 petites questions Curulis

je te mets un fichier quije pense fais resortir 2 petits bug ou alors je ne vois pas la subtilité ?

en fig A :

je pense que dans le listining de gauche il y a trop de personnel ? d'ailleurs cet encadré est trés utile dans la gestion du planning je n'y avait pas pensé, je vois que tu as bien pigé le truc .

en fig B :

je ne vois pas pourquoi je n'ai pas niel en proposition de remplacement le 16 juillet (c'est le matin le surlendemain qui bloque ? )

j'ai une autre question

dans la période 2 dans le fichier données je vais faire en sorte (avec des formules c'est plus facile pour moi ) que s'écrive ABS en italique (la 2éme période étant facultative je voudrais que ça puisse se voir en 1 coup d'oeuil dans le planning donc du coup ma question est : celà peut il bloquer pour la suite ou les macro ne feront pas la différence ?

je te remercie

bonne fin de journée !

si ce n'est pas indiscret , tu travailles dans quel domaine , la programmation n'est qu'un loisir ?

Oups J'allais oublier, vous avez opté pour un abonnement pack office ou une licence perpétuelle multi poste ?

Salut Brice,

- pour la 1ère question, il faudrait d'abord... le fichier!
- pour la 2e, pas de souci que ce soit en italique mais comment feras-tu ça... ?


A+

Edit : euh, perpétuel mono-poste sans abonnement...

oups désolé,

pour ta question , je me dis que si je remplace ABS par ABS, ça devrait marcher j'essais ça ce soir, je dois y aller , je reviens tout à l'heure ;)

10doc1.zip (962.01 Ko)
Rechercher des sujets similaires à "listes deroulantes filtrees"