Autres Demande d'aide pour un fichier concernant des professionnels de santé et le diagnostic des troubles DYS (dyslexie.....)

Mionnetjl

XLDnaute Nouveau
Bonjour à toutes et tous.
J'annonce la couleur je suis kiné, pas informaticien ou programmeur et vraiment novice en VBA et je ne maitrise pas du tout les macros.
Je vous remercie à l'avance car je suis sur que vous allez régler facilement mon problème vu que mon niveau se situe à plus près des huîtres et lombrics.

Bref voilà!
Nous mettons au point, avec différents professionnels de santé, un protocole de prise en charge des troubles DYS chez les enfants.
Nous voulons un outil à mettre à disposition des médecins pour établir un diagnostic et sortir les différents courriers aux professionnels concernés.

J'ai rédigé quelques macros que vous verrez dans mon fichier encore au stade de projet. Que je vous joins.
Concernant les courriers, je voudrais que les différents items concernant chaque profession dans la page de BILAN (réalisé par le médecin) soient repris dans les différentes pages les concernant (items "ergo" repris dans la page ergo, items "kiné" dans la page kiné etc...)
Chaque item est repris dans la page BILAN par une croix si l'enfant est concerné ce qui fait apparaitre un "1" dans la colonne des pros concernés pour calculer en bas de page l'urgence ou non de la prise en charge par profession.

Mon soucis est de créer une macro pour que quand on clique sur un bouton en page "Bilan" on ait tous les items d'un professionnel cochés l'un au dessus de l'autre dans la page du professionnel avec les titres de la page "BILAN" colonnes A et B si concernés et en horizontal si possible.

En gros j'ai fait un truc qui me donne toutes les lignes avec les items non concernés barrés (voir feuille "Ergo2" et les suivantes) mais c'est trop lourd!!! la macro que j'ai essayé de mettre en place à partir de ce que j'ai pu trouver sur le forum concerne la page "Ergo" mais est très longue et ne met pas le texte à l'horizontale.

Le fichier est protégé avec le code "DYS".

Voilà, voilà. Si c'est trop compliqué c'est pas grave, laissez tomber mais merci quand même d'avoir pris le temps de me lire.
Bonne journée à toutes et tous.

Jean-Louis
 

Pièces jointes

  • Version efface lignes 22 octobre 22.xlsm
    207.7 KB · Affichages: 11

Staple1600

XLDnaute Barbatruc
Bonsoir @Mionnetjl

J'ai regardé ton fichier.
Pour ce qui est de cette partie
Nous voulons un outil à mettre à disposition des médecins pour établir un diagnostic et sortir les différents courriers aux professionnels concernés.
A mon avis, tu te compliques la tâche.
Personnellement, j'opterai plus pour un publipostage Word+Excel
(un modèle de courrier unique mais modulable grâce à des champs de fusion conditionnels)
On peut aussi dans le cadre d'un publipostage cocher ou pas des cases à cocher.

Qu'en penses-tu ?
 
Dernière édition:

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Mionnetjlr, et bienvenu sur XLD, bonjour Staple,
J'annonce la couleur je suis kiné, pas informaticien
Et si maitriser le VBA n'était rien d'autre qu'une séance de kiné pour le cerveau ? 😂

Juste une question, est ce que chaque item de Bilan n'est et ne sera présent qu'une et une seule fois dans les onglets ?
Par ex, "Accès à la symétrie difficile " ne figure qu'une seule fois dans un des onglets ?
C'est important pour faire la synthèse. Si ce n'est pas le cas il faut arriver à corréler un nom de feuille avec l'item Géométrie. Dans ce cas comment fait on ?
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Just for the fun ....
En PJ on parcourt chaque item de Bila, on regarde s'il figure dans une des feuilles.
Si l'item n'est pas barré, alors on met un "X" dans Bilan. Avec :
VB:
Sub RemplissageBilan()
Dim L%, Item$, F, Ligne%
Application.ScreenUpdating = False                      ' On fige l'écran
With Worksheets("BILAN")
    [d11:d102].ClearContents                            ' On efface le bilan précédent
    For L = 11 To .Range("C65500").End(xlUp).Row        ' Pour tous les items de Bilan
        Item = .Cells(L, "C")                           ' On mémorise l'item
        For Each F In Worksheets                        ' Pour toutes les feuilles
            Application.StatusBar = "Feuille analysée : " & F.Name  ' Commentaire dans le status pour suivi macro
            If F.Name <> "A lire en premier" And F.Name <> "BILAN" Then  ' Excepté ces deux feuilles
                If Application.CountIf(Sheets(F.Name).[C1:C200], Item) > 0 Then ' Si l'item est présent
                    ' Attention, plage limitée à 200 lig,nes pour gagner du temps, peut être augmenté si nécessaire.
                    Ligne = Application.Match(Item, Sheets(F.Name).[C1:C200], 0)
                    If Sheets(F.Name).Cells(Ligne, "C").Font.Strikethrough = False Then   ' Si item non barré
                        .Cells(L, "D") = "X"            ' On met un X dans bilan
                    End If
                End If
            End If
        Next F
    Next L
End With
Application.StatusBar = ""
Application.ScreenUpdating = True
End Sub
 

Pièces jointes

  • Version efface lignes 22 octobre 22.xlsm
    209.7 KB · Affichages: 3

Mionnetjl

XLDnaute Nouveau
Bonsoir @Mionnetjl

J'ai regardé ton fichier.
Pour ce qui est de cette partie

A mon avis, tu te compliques la tâche.
Personnellement, j'opterai plus pour un publipostage Word+Excel
(un modèle de courrier unique mais modulable grâce à des champs de fusion conditionnels)
On peut aussi dans le cadre d'un publipostage cocher ou pas des cases à cocher.

Qu'en penses-tu ?
 

Mionnetjl

XLDnaute Nouveau
Bonjour et merci de votre réponse staple1600.
En fait en fonction des items cochés, chaque profession à un score en bas et en fonction de ce score, on a la couleur verte, Orange ou rouge. Rouge étant la ou les profession(s) prioritaire(s).
Le médecin decide alors à qui il demande d'intervenir en premier. Ça peut donc ne concerner que une ou plusieurs professions. C'est pourquoi j'avais pensé qu'il se rende sur les pages concernées pour imprimer la ou les prescription(s).
En fait on aura pas les coordonnées des professionnels car les patients ont le libre choix.
J'espère que je ne suis pas trop flou dans mes explications... En tous cas merci pour ta réactivité.
Bon week-end à tous.
Jlouis
 

Mionnetjl

XLDnaute Nouveau
Re,
Just for the fun ....
En PJ on parcourt chaque item de Bila, on regarde s'il figure dans une des feuilles.
Si l'item n'est pas barré, alors on met un "X" dans Bilan. Avec :
VB:
Sub RemplissageBilan()
Dim L%, Item$, F, Ligne%
Application.ScreenUpdating = False                      ' On fige l'écran
With Worksheets("BILAN")
    [d11:d102].ClearContents                            ' On efface le bilan précédent
    For L = 11 To .Range("C65500").End(xlUp).Row        ' Pour tous les items de Bilan
        Item = .Cells(L, "C")                           ' On mémorise l'item
        For Each F In Worksheets                        ' Pour toutes les feuilles
            Application.StatusBar = "Feuille analysée : " & F.Name  ' Commentaire dans le status pour suivi macro
            If F.Name <> "A lire en premier" And F.Name <> "BILAN" Then  ' Excepté ces deux feuilles
                If Application.CountIf(Sheets(F.Name).[C1:C200], Item) > 0 Then ' Si l'item est présent
                    ' Attention, plage limitée à 200 lig,nes pour gagner du temps, peut être augmenté si nécessaire.
                    Ligne = Application.Match(Item, Sheets(F.Name).[C1:C200], 0)
                    If Sheets(F.Name).Cells(Ligne, "C").Font.Strikethrough = False Then   ' Si item non barré
                        .Cells(L, "D") = "X"            ' On met un X dans bilan
                    End If
                End If
            End If
        Next F
    Next L
End With
Application.StatusBar = ""
Application.ScreenUpdating = True
End Sub
Bonjour Sylvanu.
Merci pour ta réponse.
Je ne suis pas chez moi et je te réponds depuis mon portable.
Je vais essayer ta solution dès mon retour, mardi.
Honnêtement je ne comprends pas toutes tes lignes de code mais les explications sur le côté semblent correspondre à ce que j'ai essayé de faire (sans succès ).
Merci pour ta réactivité.
Bon week-end.
Jlouis
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Au fait, je n'ai traité que le coté consolidation du bilan, pas le second point.
Mais on peut aborder les deux points de façon indépendante.

Juste un petit conseil de quelqu'un qui a déployé pas mal d'outils.
Un outil est réellement exploité que s'il est simple et naturel d'utilisation. Les usines à gaz sont morts nés.
La façon de valider rejeter les items ne me semble pas conviviale, surtout le "barré".
Une proposition en PJ, les validations/Rejets ne se font que pas clic. Les couleurs permettent d'avoir une vision claire de la page, en particulier les items qui n'ont pas été traités.
 

Pièces jointes

  • ValidationItem (V2) .xlsm
    17.7 KB · Affichages: 6

Mionnetjl

XLDnaute Nouveau
Bonjour Sylvanu.
Merci pour ta réponse.
Je ne suis pas chez moi et je te réponds depuis mon portable.
Je vais essayer ta solution dès mon retour, mardi.
Honnêtement je ne comprends pas toutes tes lignes de code mais les explications sur le côté semblent correspondre à ce que j'ai essayé de faire (sans succès ).
Merci pour ta réactivité.
Bon week-end.
Jlouis
Bonjour Sylvanu
Je viens de tester ce code sur mon fichier.
Si j'ai bien compris, ça permet de mettre des croix partout dans le bilan mais si je décoche une case, pour un item qui ne serait pas retenu, ça met toujours une ligne barrée dans les courriers concernés et ce que j'aimerais, c'est n'avoir que les items retenus sans les lignes barrées pour plus de visibilité et pour que chaque courrier soit le plus succin possible.
Sinon la solution des couleurs dans la macro "validationdesitems" est top.
On ne mettrait plus de croix mais des clics pour définir si l'item a été testé puis retenu ou non.
J'aime bien cette solution.
Merci beaucoup.
je vais essayer d'adapter ça!!! c'est pas gagné lol mais j'aime bien chercher aussi.
Bonne journée à toutes et tous.
JLouis
 

Mionnetjl

XLDnaute Nouveau
Bonjour,
Non moi j'avais compris le contraire.
On met des croix dans toutes les feuilles et on consolide le bilan comme ce quje cela sous entendait :
Ah oui je me suis mal exprimé.
En fait le médecin met une croix si l'item est retenu. Cette croix va donner des 1 dans chaque profession concernée par cet item. D'où une somme en bas et une couleur par priorité des professionnels à consulter.
Ensuite, le médecin decide quel(s) professionnel(s) voir et imprime la ou les prescription(s).
Mais mon problème, c'est d'imprimer les titres (colonnes A et B de "BILAN") en horizontal avec les items dans chaque courrier sans les lignes barrées.
J'en demande beaucoup...
Par contre ta solution des clics sur les items choisis et des couleurs plutôt que des croix est top. Plus intuitive et plus rapide que de cocher des croix en effet.
Mais alors il faut que l'item "testé et retenu" se transforme par des 1 dans les colonnes correspondantes aux professionnels....
Merci beaucoup vraiment pour le temps que tu passes là dessus. C'est vraiment sympa.
Bonne soirée.
Jlouis
 

Mionnetjl

XLDnaute Nouveau
Bonjour,
Non moi j'avais compris le contraire.
On met des croix dans toutes les feuilles et on consolide le bilan comme ce quje cela sous entendait :
Bonjour Sylvanu
Concernant ta proposition de validation des items par couleur c'est top.
En fait il faudrait juste passer d'un item sans couleur de fond à 1 item avec couleur de fond verte et ecriture en gras pour un item retenu et testé avec en conséquence des 1 qui se mettent dans les cases correspondantes sur la même ligne dans les cases des professions concernées.
Ensuite il faudrait que le courrier de chaque profession ne comporte que les items (et les titres correspondants colonnes A et/ou B de BILAN) retenus avec textes horizontaux et suppression des lignes barrées pour simplifier au maximum ces courriers.
c'est là-dessus que je bloque.
Merci pour tout.
JLouis
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
bONJOUR?
Ah oui je me suis mal exprimé.
Ca aurait évité de faire deux fois le travail. :)

Donc si on résume :
1- Le praticien analyse Bilan et clic sur chaque item concerné, ce qui a pour effet de mettre un "X" en colonne D, ainsi que des 1 dans les métiers concernés, et mettre l'item en gras et fond vert.
2- Ensuite il consolide les feuille via un bouton. Ce qui provoque :
a- L'effacement des feuilles, hormis les entêtes,
b- La recopie chaque item concerné par Bilan avec les colonnes ABC de Bilan.

Mais à quoi serve donc les 1 dans chaque feuille en colonne L ?
 

Mionnetjl

XLDnaute Nouveau
Bonjour Sylvanu
Désolé pour l'incompréhension et la perte de temps.

1- Le praticien analyse Bilan et clic sur chaque item concerné, ce qui a pour effet de mettre un "X" en colonne D, ainsi que des 1 dans les métiers concernés, et mettre l'item en gras et fond vert.

Oui ok pour ça à moins qu'on puisse retirer la colonne D avec les croix si le fait d'avoir cliqué sur l'item met automatiquement des 1 dans les métiers concernés.
L'avantage de ta solution c'est qu'au lieu de mettre chaque fois une croix, là un simple clic suffit. Et moins ça prend de temps aux médecins, mieux c'est.


2- Ensuite il consolide les feuille via un bouton. Ce qui provoque :
a- L'effacement des feuilles, hormis les entêtes,
b- La recopie chaque item concerné par Bilan avec les colonnes ABC de Bilan.


En fait quand tous les items ont été sélectionnés, en fonction des capacités ou non de l'enfant, c'est là que le médecin décide, avec les scores du bas et les couleurs qui vont avec, la priorité des prescriptions. il clique alors en bas sur la profession choisie et l'idéal serait que ça imprime la prescription qui correspond au texte que j'ai mis dans chaque feuille "profession" avec uniquement les items qui ont été retenus (donc en gras sur fond vert sur la page BILAN) qui correspondent aux 1 de chaque colonne profession.

Ensuite, quand c'est imprimé, il peut enregistrer le bilan avec le nom du patient dans un dossier qu'il a indiqué en page BILAN en A8 (avec le bouton "enregistrer le dossier") et réinitialiser la feuille (moi en fait j'avais juste supprimé toutes les X mais je préfère nettement ta solution dans "validationitems"

Mais à quoi serve donc les 1 dans chaque feuille en colonne L ?

Enfin les 1 en colonne F?
Comme je n'arrivais pas à mettre les items non choisis les uns après les autres, j'ai bidouillé une mise en forme conditionnelle pour que si il n'y avait pas de 1 dans la colonne pro en face de l'item, le texte soit barré!!!
C'est tordu je sais mais c'est tout ce que j'ai trouvé mais du coup les prescriptions sont un peu indigestes car parfois, elles contiennent trop de texte barré au lieu de ne retenir que l'essentiel.

Merci pour ton attention en tous cas et désolé si je ne suis pas toujours précis car je suis plus habitué au langage anatomique que programmatique mais je ne demande qu'à apprendre lol.
Bonne journée.

JLouis
 

Discussions similaires

M
Réponses
9
Affichages
466
Maikales
M

Membres actuellement en ligne

Statistiques des forums

Discussions
312 105
Messages
2 085 350
Membres
102 870
dernier inscrit
Armisa