Fonction compliqué avec plusieurs conditions et critères

Bonsoir,

Je débute et j'ai besoin d'aide pour trouver une fonction.

Je vais essayer d'être le plus clair possible :/

J'ai un fichier excel étudiant qui regroupe les actes CCAM que je réalise à la clinique.

Ce fichier me permet de calculer le nombre de points réalisé tout au long de l'année. Chaque acte CCAM à son nombre de point propre.

Parallèlement, je dois valider certaines compétences et j'essaye d'automatiser le calcul des compétences : soit validé soi non validé.

J'ai réussi à créer les fonctions pour toutes les compétences sauf pour une qui demande énormément de conditions...

J'ai plusieurs colonnes dont les principales sont :

  • Nom
  • Prénom
  • Assistance ou Opérateur
  • Code CCAM

La fameuse compétence est la suivante :

Sur un même patient (même nom et même prénom), je dois réaliser tous ces actes CCAM : MHBD Paro ; HBJD001 ; HBGB006 (ce dernier acte peut être réalisé 1 fois ou plusieurs) et tous en mode "Opérateur".

Comment faire pour créer une fonction qui va rechercher tous ces actes sur un même patient et qui va me dire "Validé" ou à l'inverse "Non Validé" s'il manque un seul de ces critères ?

J'espère avoir été assez clair.

Merci d'avance !

32fonction-excel.xlsx (56.07 Ko)

Bonjour

Pas simple car chaque ligne correspond à un nom et on peut avoir plusieurs fois HBGB006.

Peut être via un TCD où l'on trouverait le nombre d'acte réalisé par patient. En ayant en colonne les actes réalisés et leur quantité. Le fait d'avoir un chiffre 4 dans le total pourrait servir pour savoir le nbre d'acte réalisé et savoir si le patient est validé ou non

Le mode opérateur peut être choisi en entête du TCD

Si ok, vian un TCD, ce serait plus pratique d'avoir une colonne avec nom et prénom je pense

Si cela ne convient pas, je pense que le mieux serait de passer par code VBA

Le fichier en pièce jointe est à titre d'exemple bien entendu

Crdlt

22fonctionexcel.xlsx (60.24 Ko)

Merci pour votre réponse !!

Je ne connaissais pas le TCD, et ça à l'air de convenir pour ce que je veux faire !!

Par curiosité, le code VBA aurait pu faire quoi de mieux ?

Par contre, est-il possible que le TCD se mette à jour automatiquement à chaque fois que je rentre de nouvelle donnée dans l'onglet saisie ?

Merci infiniment !!!

Re

Par contre, est-il possible que le TCD se mette à jour automatiquement à chaque fois que je rentre de nouvelle donnée dans l'onglet saisie ?

Oui bien entendu c'est possible. Un petit code VBA qui s'exécute lors de l'activation de la feuille où se trouve le TCD par exemple. Un exemple dans le fichier joint.

J'ai également ajouté une liste déroulante dans la colonne CodeCCAM. Bine que la liste soit longue, il me semble que c'est plus pratique et cela évite les erreurs

Crdlt

26fonctionexcel.xlsm (66.51 Ko)

Merci pour votre réponse.

Grâce à vous, je progresse très vite

Je vous ai mis en pièce jointe, le fichier quasi terminé.

J'ai quelques petits soucis sur le TCD :

Pour des raisons fonctionnels :

- Est-il possible de conserver l'ordre des cellules Q21 à T21 (comme sur le fichier en pièce jointe) ? J'aimerai faire un fichier vierge (sans le patient "B B" dans l'onglet "Paro") mais lorsque je supprime ce patient et que je re-rentre un nouveau patient, l'ordre de ces cellules se fait dans un ordre anarchique.

En effet, dans l'option du TCD, onglet "Données", dans "Conserver les éléments supprimés de la source de données", j'ai sélectionné "Aucun" afin qu'aucun nom de patient s'enregistre, une fois qu'ils sont supprimés de l'onglet "Paro". Et j'ai l'impression que ça remet à 0 le tri des cellules Q21 à T21 lorsque j’inscris un nouveau nom...

- De la même manière lorsque mon fichier est vierge, j’obtiens une colonne "Vide". J'aimerai qu'elle n'apparaisse jamais même si le TCD est vierge...

- Pour le code VBA, je n'ai pas réussi à le recopier dans le nouveau fichier Excel.

J'ai essayé de le faire moi même mais je n'ai pas trouvé le code dans le fichier que vous m'avez envoyé. C'est bien dans "macro" que je dois chercher ? Et le seul code que j'ai réussi à faire fonctionner, devait être enregistrer en ".xlsm" et je préférerai en ".xlsx" comme vous avez fait.

Pour des raisons esthétiques :

- Est-il possible de supprimer les cellules P18 et Q18 sans que ça influence sur le filtrage ?

- Pouvez-vous afficher dans la colonne P, le nom et le prénom du patient sur la même ligne ?

  • Pouvez-vous fixer définitivement la couleur de remplissage des cellules Q20 et P21:T21 comme sur la cellule P20 ? Et mettre en gras l'écriture des cellules Q21 à T21. En effet, lorsque j'enregistre et que je ré-ouvre le fichier, le style ne se conserve pas..
  • Idem pour la cellule P22 à fixer définitivement par rapport à la cellule Q22 ?

- Est-il possible d'automatiser l'apparition des cellules situé dans la colonne "O" en fonction de la présence de nouvelle ligne dans le TCD ?

J'espère que le nb de questions posés de vous aurai pas fait fuir

Je vous remercie pour votre aide !!

Cordialement,

Re

- Est-il possible de conserver l'ordre des cellules Q21 à T21 (comme sur le fichier en pièce jointe) ? J'aimerai faire un fichier vierge (sans le patient "B B" dans l'onglet "Paro") mais lorsque je supprime ce patient et ......... lorsque j’inscris un nouveau nom.

C'est un peu le souci du TCD. Il faut le créer dès que l'on a des données. Mon conseil est d'avoir au moins une ligne remplie.

- De la même manière lorsque mon fichier est vierge, j’obtiens une colonne "Vide". J'aimerai qu'elle n'apparaisse jamais même si le TCD est vierge...

Cela toujours le cas si aucune donnée n'est enregistrée. Une solution est de passer par code VBA ou de faire une mise en forme conditionnelle qui mets la police en blanc si le mot "(vide)" est constaté

- Pour le code VBA, je n'ai pas réussi à le recopier dans le nouveau fichier Excel.

Ce n'est pas dans macro que le code se trouve. Faites Clique droite sur l'onglet contenant le TCD, puis choisir l'option "visualiser le code". Ensuite faire copier et coller dans le nouveau fichier. Il faudra remplacer A3 par P20. Le fichier doit avoir l'extension XLSM.

- Est-il possible de supprimer les cellules P18 et Q18 sans que ça influence sur le filtrage ?

Non pas possible cela. Mais est-ce si gênant ? Le conserver pemete de voir qu'il faut que ce soit le mot "opérateur" qui doit être présent. Sinon mettre une police de caractère blanche. Mais là on ne siat plus qu'il y a quelque chose dans la cellule

- Pouvez-vous afficher dans la colonne P, le nom et le prénom du patient sur la même ligne ?

Non, c'est pour cela que je vous suggérais de faire une colonne reprenant les deux noms plutot que de séparer en deux colonnes

- Pouvez-vous fixer définitivement la couleur de remplissage des cellules Q20 et P21:T21 comme sur la cellule P20 ? Et mettre en gras l'écriture des cellules Q21 à T21. En effet, lorsque j'enregistre et que je ré-ouvre le fichier, le style ne se conserve pas..

Dans les options du TCD, il faut cocher la case de conservation de mise en forme disponible dans l'onglet "Disposition et mise en forme"

- Est-il possible d'automatiser l'apparition des cellules situé dans la colonne "O" en fonction de la présence de nouvelle ligne dans le TCD ?

Pourquoi ne faites vous pas une seule base de données avec une colonne spécifique pour les options Paro, chr, ... et mettre ce choix dans le TCD en champ de page comme pour "opérateur". Après le choix on pourrait réactualiser la tableau entre les colonnes A et M

Attention à vos cellules fusionnées dans les colonnes, C àF, G a I, L a M (A supprimer cela n'a pas de sens de faire cela). Idem pour vos lignes. Source d'erreur et à éviter surtout si l'on devait utiliser des macros

Dan a écrit :

- Est-il possible de conserver l'ordre des cellules Q21 à T21 (comme sur le fichier en pièce jointe) ? J'aimerai faire un fichier vierge (sans le patient "B B" dans l'onglet "Paro") mais lorsque je supprime ce patient et ......... lorsque j’inscris un nouveau nom.

C'est un peu le souci du TCD. Il faut le créer dès que l'on a des données. Mon conseil est d'avoir au moins une ligne remplie.

- De la même manière lorsque mon fichier est vierge, j’obtiens une colonne "Vide". J'aimerai qu'elle n'apparaisse jamais même si le TCD est vierge...

Cela toujours le cas si aucune donnée n'est enregistrée. Une solution est de passer par code VBA ou de faire une mise en forme conditionnelle qui mets la police en blanc si le mot "(vide)" est constaté

Je dois donc créer plusieurs lignes "test" avec les code CCAM que je souhaite ordonné ?

Je viens de le faire sur les dernières lignes de l'onglet "PARO". Est-ce que vous pouvez me dire si c'est bien ça ?

Pour la colonne "Vide", tant pis, je décocherai la case manuellement, puisque quoi qu'il arrive, je dois mettre une ligne test afin d'avoir les codes CCAM ordonnés.

Dan a écrit :

- Pour le code VBA, je n'ai pas réussi à le recopier dans le nouveau fichier Excel.

Ce n'est pas dans macro que le code se trouve. Faites Clique droite sur l'onglet contenant le TCD, puis choisir l'option "visualiser le code". Ensuite faire copier et coller dans le nouveau fichier. Il faudra remplacer A3 par P20. Le fichier doit avoir l'extension XLSM.

Merci, je vois enfin le code

Dan a écrit :

- Est-il possible de supprimer les cellules P18 et Q18 sans que ça influence sur le filtrage ?

Non pas possible cela. Mais est-ce si gênant ? Le conserver pemete de voir qu'il faut que ce soit le mot "opérateur" qui doit être présent. Sinon mettre une police de caractère blanche. Mais là on ne siat plus qu'il y a quelque chose dans la cellule

En réfléchissant, c'est très bien comme ça !

Dan a écrit :

- Pouvez-vous afficher dans la colonne P, le nom et le prénom du patient sur la même ligne ?

Non, c'est pour cela que je vous suggérais de faire une colonne reprenant les deux noms plutot que de séparer en deux colonnes

En faite, les colonnes de A à G sur les onglets "PARO" etc, ne peuvent pas être modifié car ils devront être copier lors du relevé de point de fin de semestre par les prof puis copié dans leur base de données. Dommage, je me contenterai que du nom de famille.

Dan a écrit :

- Pouvez-vous fixer définitivement la couleur de remplissage des cellules Q20 et P21:T21 comme sur la cellule P20 ? Et mettre en gras l'écriture des cellules Q21 à T21. En effet, lorsque j'enregistre et que je ré-ouvre le fichier, le style ne se conserve pas..

Dans les options du TCD, il faut cocher la case de conservation de mise en forme disponible dans l'onglet "Disposition et mise en forme"

Il me semblait l'avoir fait une bonne dizaine de fois sans succès mais maintenant que vous me l'avez écrit, ça fonctionne !!

Dan a écrit :

Attention à vos cellules fusionnées dans les colonnes, C àF, G a I, L a M (A supprimer cela n'a pas de sens de faire cela). Idem pour vos lignes. Source d'erreur et à éviter surtout si l'on devait utiliser des macros

Corrigé !!


Dan a écrit :

- Est-il possible d'automatiser l'apparition des cellules situé dans la colonne "O" en fonction de la présence de nouvelle ligne dans le TCD ?

Pourquoi ne faites vous pas une seule base de données avec une colonne spécifique pour les options Paro, chr, ... et mettre ce choix dans le TCD en champ de page comme pour "opérateur". Après le choix on pourrait réactualiser la tableau entre les colonnes A et M

Je n'ai pas compris ce que vous me conseillez de faire.

Ce qui faut savoir, c'est que je ne peux pas regrouper tous les onglets "Chir", "Paro", OCE", "OP" et "Pédo" en un seul car ils doivent être séparé lors du relevé de points et de compétences à la fin de chaque semestre dans chaque service (et donc matière).

J'ai un autre problème vis-à-vis du TCD.

Lorsque je rentre un nouveau patient et que j'actualise pour l'afficher dans le TCD, la mise en forme et le style se modifie au niveau des cellules : J12, J15, K14 ainsi que la ligne correspondant au nouveau patient.

Comment corriger ce soucis ?

Merci pour tout !

Salut,

Finalement, j'ai réussi

J'ai fais un code VBA pour automatiser la mise en forme à chaque actualisation.

Est-ce que vous pouvez-vérifier si je n'ai pas fais d'erreur ou de choses inutiles (comme pour la fusion des cellules) ?

Ou alors optimiser le code ?

Merci d'avance

Re

Le code revu et à essayer :

Private Sub Worksheet_Activate()
Application.DisplayAlerts = False
With ActiveSheet
    .Range("J14").PivotTable.RefreshTable
    With .Range("J12")
        .BorderAround LineStyle = xlNone
        .Font.Bold = True
        .Font.Underline = xlUnderlineStyleSingle
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
    End With
    With .Range("J16:J34")
        .BorderAround LineStyle = xlNone
        .Font.Bold = True
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
     End With

    .Range("J14").Copy
    .Range("J15,K14").PasteSpecial Paste:=xlFormats
    .Range("J16:N34").BorderAround LineStyle = xlContinuous
    .Range("O16:T34").BorderAround LineStyle = xlContinuous
    .Range("J16:T34").BorderAround LineStyle = xlContinuous
    With .Range("K16:T34")
        .Font.Bold = False
        .Font.ThemeColor = xlThemeColorLight1
    End With
End With
End Sub

Je ne pense pas que cela n'était pas nécessaire de créer autant de lignes en dessous de la feuille Paro. 1 Ligne suffisait mais dans ce cas le code devrait être revu pour adapter les mise en forme en fonction de la grandeur du TCD

Cordialement

Parfait merci

Rechercher des sujets similaires à "fonction complique conditions criteres"