Faire correspondre des conditions à des disponibilités
Bonjour,
Je fait appel à une fonction personnalisée (merci H2OSO4) en colonne W (sheet nouvelle demande) qui me permet de sélectionner les personnes reprises en sheet disponibilités dont les disponibilités correspondent aux nouvelles demandes.
Jusque là tout va bien.
J'aimerais intégrer une autre condition.
En effet les mots de la chaine présente dans la cellule de la colonne AF de ma feuille nouvelle demande devraient tous être présents dans la chaine de la cellule de la colonne J de ma feuille disponibilités. (cela me permet d'évincer du résultat les travailleurs qui ne savent pas repasser alors qu'il y a du repassage de prévu, entre autre), même si les disponibilités correspondent. Par contre si des mots sont présents en J mais pas en AF ça c'est pas grave (car le travailleur peut savoir repasser mais que le client ne le demande pas.
Ca fait une semaine que j'essaie de trouver la solution mais sans succès...
Pouvez-vous m'aider ?
Enfin, last but not least, je souhaiterais que la disponibilité sélectionnée en Z pour le travailleur repris en X, lorsque je cliquerai sur mon bouton placé, supprime automatiquement la disponibilité correspondante du travailleur dans la feuille disponibilité. C'est possible ?
Merci beaucoup, bonne après midi
Lorence
bonjour,
voici une adaptation de la fonction.
Function disponibles(creneaux, criteres, tableau)
' donne la liste des personnes disponibles pour un des créneaux donnés et correspondant aux autres critères
' créneaux donnés = liste de créneaux, séparés par un caractère nouvelle ligne (alt-entrée)
' criteres =liste des autres criteres exigés, séparés par un caractère nouvelle ligne (alt-entrée)
' tableau = liste des personnes avec leur nom en colonne A, leurs disponibilités en colonne C, et leurs caractéristiques (à faire correspondre aux autres critères) en colonne J
' les personnes ayant un des creneaux demandés et ayant tous les autres critères demandés seront affichées
creneau = Split(creneaux, vbLf) ' on isole chaque créneau
critere = Split(criteres, Chr(10)) 'on isole chaque critère
For Each r In tableau.Rows 'on parcourt le tableau ligne par ligne
If r.Cells(1, 1) = "" Then Exit For 'plus de nom dans le tableau
For i = LBound(creneau) To UBound(creneau) 'on vérifie chaque créneau de la ligne des disponibilités (tableau)
If InStr(r.Cells(1, 3), Trim(creneau(i))) > 0 Then
For k = LBound(critere) To UBound(critere)
If critere(k) <> "" Then
listecritere = r.Cells(1, 10) ' on vérifie les autres critères
If InStr(listecritere, Trim(critere(k))) = 0 Then k = 100: Exit For 'critère manquant, la personne ne convient pas
End If
Next k
If k < 100 Then 'tous les critères satisfaits,on retient le nom de la personne
Dispo = Dispo & r.Cells(1, 1) & ","
End If
Exit For 'on trouve un match pour les disponibilités
End If
Next i
'on vérifie les autres critères
Next r
If Dispo <> "" Then Dispo = Left(Dispo, Len(Dispo) - 1)
disponibles = Split(Dispo, ",") 'on retourne un tableau
End Functionavec exemple d'utilisation dans le fichier joint
super méga génial !
Mille mercis, ça fonctionne parfaitement
Aurais tu une idée pour moi, pour qu'en fin de parcours, une fois le travailleur et le créneau sélectionné en X et Z, pour que ce créneau se supprime automatiquement de ses disponibilités, que je pourrais ajouter à ma sub lorsque je déplace les lignes traitées ?
bonjour,
que je pourrais ajouter à ma sub lorsque je déplace les lignes traitées
quelle sub ? tu parles également d'un bouton "placé", qui n'est pas dans le classeur fourni.
Bonjour à toi,
J'avais allégé le fichier pour réduire sa taille, mais pas de la bonne façon, le voici complet.
Il s'agit du module "DeplacerPlaces", lorsque je clique sur le bouton "placé par X" ma ligne au statut "placé" se déplace dans mon onglet "placés". J'aimerais y intégrer le fait que le créneau ("Z") du travailleur choisi ("X") se supprime de ses disponibilités (onglet disponibilités).
Peux tu aussi jeter un oeil à la formule disponible2 ? Dans le fichier ci joint, la demande devrait matcher avec AZZI Said (tous les mots repris en Nouvelledemande/AE3 sont dans Disponibilités/J6) mais la formule me renvoie qu'aucun travailleur ne correspond. J'ai fait quelque chose de travers ?
Bonne journée à toi, et merci beaucoup ;)
rebonjour,
pour que la fonction personnalisée donne le bon résultat, j'ai adapté tes formules dans le fichier que je t'ai fourni précédemment. Dans le fichier que tu as mis, je ne retrouve pas ces modifications que j'avais faites et donc cela ne peut pas donner le résultat attendu.
Bonjour,
Désolée j'ai trainé, j'ai été malade la semaine dernière, me voilà de retour :)
Autant pour moi, je n'avais pas vu, c'est corrigé. Merci à toi.
Aurais tu une idée pour moi pour pouvoir, lorsque je déplace la ligne du client qui a été
placé, supprimer la disponibilité sélectionnée (Z) de ce travailleur (X) dans son listing de disponibilités ?