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 Function

avec 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 ?

Rechercher des sujets similaires à "correspondre conditions disponibilites"