XL 2016 remplir des étiquettes selon multi critères

Sirberthoult

XLDnaute Occasionnel
Bonjour le forum,

je créer une application pour rédiger des étiquettes pour une biberonerie. confection de plusieurs dizaine de biberons par jour voir beaucoup plus en hiver...

j'ai bouclé ( je pense ...) la partie interface utilisateur pour rassembler les informations concernant la prescription...elle n'est surement pas parfaite...mais me convient.

Mon soucis, réside dans le remplissage de l'onglet "étiquettes" en fonction des informations sélectionnées grâce la SUB remplissage( ) de l'userform 2

en effet je dois optimiser chaque étiquettes en fonction de ce que chaque biberons contiendras.
j'ai réalisé un exemple avec le nom "AMANDO Gino", il faut cliquer sur le rond bleu de l'onglet "données" puis le bouton "réaliser des étiquettes" puis sélectionner dans le service de "HDJ" l'enfant amando gino et visualiser l'objectif de remplissage dans l'onglet "étiquette" : je n'ai pas besoin de couleur c'est juste pour l'exemple pour comprendre comment se repartisse les infos.

je cherche un début de solution pour adresser chaque infos à la bonne case dans chaque étiquettes. le bon lait en fonction de l'horaire (parfois 2 lait différents à des horaires différent), des compléments ( dans chaque biberons ou à part sur d'autres étiquettes ) et des épaississants ( dans chaque biberons ou à part sur d'autres étiquettes )...

bref comment remplir les étiquettes avec des informations qui peuvent varier selon les horaires qui varient aussi selon les patients...j'aimerais un exemple de codes que je pourrais compléter moi même.

merci d'avance pour vos propositions
 

Pièces jointes

  • les eti en neo 2 Remplissage 2.xls
    507 KB · Affichages: 13

vgendron

XLDnaute Barbatruc
oui nos chambre ont forcément 3 chiffres
on y reviendra plus tard.. à mon avis, le test n'est pas mis au bon endroit.. autant vérifier cela directement lors de la saisie d'un nouveau nourisson..

pour le remplissage des étiquettes,
j'ai réussi (je pense) à créer les etiquettes "standards" dans l'ordre chronologique

pour la gestion des enrichissements, j'ai commencé: à voir en PJ

Certains n'ont QUE la case "à part" pouvant etre cochée==> si elle est cochée, il faut faire autant d'étiquettes que de biberons ?
si elle n'est pas cochée, c'est qu'il n'y a pas de cet enrichissement
certains enrichissements ne sont appliquables qu'au lait 1 ou qu'au lait 2 ?
peux tu faire un tableau indiquant toutes ces contraintes

est ce que si on choisit deux enrichissements à part: faut il 2 * x étiquetes spécifiques? ou les enrichissemnts sont cumulés dans un meme biberon ?
 

Pièces jointes

  • les eti en neo 2 Remplissage 6.xlsm
    178.7 KB · Affichages: 2

Sirberthoult

XLDnaute Occasionnel
pour l'ordre chronologique c'est bien mais c'est pas obligatoire du moment que toute les étiquettes soient présente.

pour chaques enrichissements, si une dose est renseignée (pourcentage ou ml ) alors il est present.
si il est coché "a part " alors x nbr d'etiquettes supplémentaire. mais jamais il ne peut etre coché sans dose prescrite...j'aurais du le limiter à l'initialisation.

pour le LIQUIGEN : on peut cocher " dans tous les bib" ou " 1 bib sur 2" : je pense que c'est clair... c'est la dose prescrite partout quelque soit le ou les laits. ou alors "1 biberon sur 2". et si c'est coché "à part" alors on fait x/2 (du nbr de bib demandé ) à part. le "1 bib sur 2", n'est possible que si le nbr de bib est paire ( forcément...) sinon la coche "1 sur 2 " n'est pas accessible ( j'aurais du le faire aussi) si c'est plus simple de refaire des checkboxs du nombre de bib et selectionner les horaire de presence dans le cas du "1 sur 2", c'est faisable peut etre même mieux a voir ...

pour le FORTEMA : c'est un enrichissement qui ne peut être ajouté que dans un " lait maternel" jamais dans un lait 1er Age, ni Lait 2éme Age, ni Lait Pré. donc si le lait sélectionné est maternel alors fortema dans chaque bib. mais si on à 2 Laits différents ( dont forcement 1 lait Maternel...) alors fortema que dans le lait maternel. et si on dois le préparer "à part" alors on prépare que le nombre d’occurrences correspondant au nbr de bib de lait maternel.

pour la DEXTRINE MALTOSE : forcement dans chaques biberons quelque soit le lait et la quantité ( de toute facon c'est un pourcentage...)

pour le NaCl : idem forcement dans chaque biberons...

pour les épaississants : Epaississant 1 dans lait 1 et Epaississant 2 dans lait 2

on ne peut pas melanger plusieurs enrichissements préparé "a part"...( certain sont liquide d'autre poudre ) donc étiquette différente...

donc oui on peut avoir besoin d'imprimer 2 planches d'etiquettes différentes...

je peux faire un tableau si vraiment tu le souhaite ...
 

Sirberthoult

XLDnaute Occasionnel
Bonjour Vgendron, le forum

j'ai modifier un l'interface des enrichissements...pour que les coches "a part" n'apparaissent que si une dose est indiquée.
et j'ai ajouter des horaires pour "autres" car je pense que ça dois être plus facile a coder par la suite comme ça...enfin je pense.
 

Pièces jointes

  • les eti en neo 2 Remplissage 6.xlsm
    195.1 KB · Affichages: 2

Sirberthoult

XLDnaute Occasionnel
une petite précision qui à son importance... comme tu l'as compris dans un biberons il peut y avoir plusieurs enrichissement...donc dans la case qui s'y rapporte dans les étiquettes il faudrait "concaténer" l'intitulé des enrichissement présent...
ainsi, si dans les biberons il y a par exemple du liquigen 8 mlet du fortema 2%, on peut noter "Liq 8 + For 2%" pour condenser la place dans la case...
 

vgendron

XLDnaute Barbatruc
Question hors remplissage des étiquettes
pourquoi lorsqu'on selectionne une formule de lait 2, les checkbox de l'épaississant1 disparaissent??

de plus
pourquoi mettre du code dans les évènement _click et _change des checkbox?
 

Sirberthoult

XLDnaute Occasionnel
c'est super !

je constate la gestion du liquigen dans les bib ou "apart"
la gestion du fortema que dans le lait maternel ! nickel
et tu as réussi a mettre dans la même case liq 2 ml+ DM 2% par exemple c'es cool !

j'ai de mon coté revu la gestion des checkboxs des épaississants justement... voir PJ ca dois être mieux...tu me diras.

concernant le code dans _click et _change c'est surement que je n'ai pas su faire autrement...

l'application dois fonctionner sur une nouvelle création d'identité ou une connu mais rempli convenablement...or j'ai peut être créer des données incomplètes parfois pour des test concernant les NOMS

j'ai constaté un soucis aussi concernant les coches "a part" qui si on modifie les infos d'un patient déjà renseignés ne s'efface pas si je l'ai décoche avant d'imprimer...bref je vais me pencher dessus.
 

Pièces jointes

  • les eti en neo 2 Remplissage 6(3).xlsm
    222.4 KB · Affichages: 0

vgendron

XLDnaute Barbatruc
L'ennui, c'est que le code fait plein de choses à la fois, et les évènements se déclenchent les uns les autres sans que tu puisses voir ce qui se passe

et il y a des codes étranges
exemple dans le "Nom_Change"

VB:
If Me.Nom.ListIndex = -1 And IsError(Application.Match(Me.Nom, Clé, 0)) Then
        Me.Nom.List = Filter(Clé, Me.Nom.Text, True, vbTextCompare)
        Me.Nom.DropDown
    End If
pendant la saisie manuelle
si Me.nom.Listindex=-1 (la saisie en cours ne correspond pas à un nom complet
AND iserror(applicatio...) la saisie en cours ne correspond pas non plus à un nom partiel
il s'agit donc d'un nouveau nom
alors;. pourquoi faire un filtre??
 

Sirberthoult

XLDnaute Occasionnel
je comprend ce que tu veux dire...

j'avais trouvé ça ...( je t'avoue que je ne l'ai pas écrit...) pour faire une saisie "intuitive"
exemple en pédiatrie: si tu commence a tapé "f" puis "a" et ainsi de suite... cela réduit la liste des noms.
il se peut que l'on ai beaucoup de noms...je trouvais ça intéressant...

j'ai modifier les chekbox " a part" dont la valeur ne se "retenais" pas à l'impression... ca fonctionne maintenant.

et revu ta remarque sur "formule lait 2" et les épaississants...
 

Pièces jointes

  • les eti en neo 2 Remplissage 6(4).xlsm
    223.8 KB · Affichages: 3

vgendron

XLDnaute Barbatruc
Vu pour l'explication du filtre= ca permet de ne plus voir les noms de la liste

je suis en train de regarder tout le dérouler du code lors de la saisie d'un nouveau nourisson

après avoir choisi le nombre de biberons, on saisi la quantité 1==>il y a 3 conditions qui font exactement la meme chose.
il y a une quantité minimum à rentrer? (100 ou 10)
lorsque tu saisis une quantité: c'est TOUJOURS un nombre?
est ce que ca peut etre un nombre + unité ? (100ml) ou alors, la quantité est TOUJOURS en ml.??
pour l'instant; si tu rentres une lettre au lieu d'un chiffre, il n'y a aucun control..
 

Sirberthoult

XLDnaute Occasionnel
oui concernant les 3 conditions je t'explique...
la quantité sera toujours numérique et en "ml"

cela varie de 0.25ml à 250ml grossomodo...
majoritairement on a une quantité comprise entre 5 et 90 ml (notamment en néonat)
donc j'ai posé c'est conditions pour que l'utilisatrice evite une validation et passe au control suivant apres avoir inscrit 2 chiffres (sourtout si ca commence par 3,4,5,6,7,8,ou9)....mais si cela commence par 10 peut etre voulait elle inscrire 100 ou 110 ... bref mon code est "primaire" et inélégant, mes intentions peut etre trop "bizarre" ...c'était pour "aider" l'utilisatrice...mais je comprend que ce soit perturbant. et je n'ai pas limité le control non plus aux lettres...surement que ce doit l'etre.

comme tu l'auras compris, je n'ai pas ton niveau en vba, je trouve du code puis je l'adapte et le modifie...mais je n'ai pas de base solide pour l'écrire convenablement...ce qui donne ca... 😅

n'hesite pas pour d'autre expliquations...tu risques d'etre encore surpris 😁
 

vgendron

XLDnaute Barbatruc
hahaha
t'inquiète, on a tous été débutant un jour :)

Comme le fonctionnement du placement des frames au centre puis à leur place finale me perturbait, j'ai réorganisé le code.. et je ne comprenais pas pourquoi la frame Lait_1 se remettait parfois au centre alors qu'elle n'a rien à y faire.. et ho! surprise;. j'ai découvert ce petit bouton caché par un label sur la frame "biberon"

très mauvaise idée.. on clique dessus juste en faisant entrée au clavier...==> du coup, je l'ai supprimé

maintenant, il faut que j'arrive à "dissocier" le remplissage du formulaire suite à la selection d'un nourrisson existant, de la saisie d'un nouveau nourrisson... et c'est la qu'il faut bien choisir les évènements _change ou _click ou _afterupdate...

j'irai voir ca après avoir complété la saisie des étiquettes
 

Sirberthoult

XLDnaute Occasionnel
😓🙃 désolé pour le bouton surprise... je l'avais oublié celui là...
c'était encore une mauvaise idées pétrie de bonne intentions...

maintenant, il faut que j'arrive à "dissocier" le remplissage du formulaire suite à la selection d'un nourrisson existant, de la saisie d'un nouveau nourrisson... et c'est la qu'il faut bien choisir les évènements _change ou _click ou _afterupdate...

j'irai voir ca après avoir complété la saisie des étiquettes
merci encore heuresement que tu es là...
juste pour précision parce que tu en parle, ...j'avais l'intention par la suite d'ajouter une macro qui supprime les nourissons pour qui on n'a pas préparé de biberons depuis 5 jours...( ce qui signifie normalement qu'il sont sortie) pour alléger la liste de nom au fil du temps.

sinon j'ai testé ta derniere piece jointe un peu plus et j'ai quelque loupé parfois, peut etre t'en ai tu apercu...
j'ai du NaCl qui apparait ou persiste dans des biberons alors qu'il n'y en a pas de prescrit...je ne sais pas l'expliquer.

j'ai aussi tenté de combiner ta derniere piece jointe à la mienne suite au modif que j'avais apporté mais j'ai eu des erreurs quand j'ai juste tenté de remplacer la SUB remplissage( )...notamment a cause de ".type de lait"
je n'avais pas beaucoup de temps ... je re-essayerai demain a moins que tu ne l'ai deja fait de ton coté.

au plaisir de te lire.
 

vgendron

XLDnaute Barbatruc
Hello
voici une version 7
j'ai complété le remplissage des étiquettes avec tous les enrichissements
j'en ai profité pour corriger la partie "sauvegarde" dans BD3
le code initial permettait de mettre 1 si la case "a part" est cochée.. mais ne permet pas d'enlever le 1 si la case n'est plus cochée

j'ai donc remplacé les lignes
if checkbox=true then cells(...)=1
par
databodyrange(i)= iif(checbox,1,"")

la fonction IIF correspond à un if then else

pour les nouveaux checkbox de Autres, il doit y avoir une erreur: Les horaires ne correspondent pas tous aux horaires des biberons de lait 1 ou 2..


Je ne suis pas allé voir ta macro checkbuttonautres, mais j'ai l'impression qu'elle fait doublon avec celle qui existe déjà, non?
 

Pièces jointes

  • les eti en neo 2 Remplissage 7.xlsm
    207.1 KB · Affichages: 1

Sirberthoult

XLDnaute Occasionnel
bonjour

j'ai fais des petit tests, et c'est nickel dans certain cas mais j'ai eu aussi quelque manqué notamment avec les "à part" qui n'a pas généré d'étiquettes...
le code initial permettait de mettre 1 si la case "a part" est cochée.. mais ne permet pas d'enlever le 1 si la case n'est plus cochée
j'avais fais ca dans ma derniere piece jointe, mais avec else..., ce que tu as fait est plus court et plus simple.
merci pour les explications.

il y a un soucis quand on rentre une "quantité 2" quand on renseigne de type de lait 1 puis formule1 cela bascule sur le deuxieme lait et on doit a nouveau renseigner type de lait 1 et formule 1...à revoir.

par contre j'ai vu que tu as mis des "afterupdate" pour gérer l'apparition des checkbox "à part" et je ne trouve pas ca "réactif" et j'ai des loupés quand je supprime une prescription ...la coche "a part" persiste sans prescription. j'avais dans ma PJ utilisé des _click et _change
exemple:
VB:
Private Sub Dextrine_maltose_click()
    Me.Dextrine_maltose = Me.Dextrine_maltose.Value * 100 & " %" ' afficher le pourcentage correctement
     If Me.Dextrine_maltose.ListIndex = -1 Then CheckBox31.Visible = True
End Sub
Private Sub Dextrine_maltose_change()
  
   If Me.Dextrine_maltose.ListIndex = -1 Then CheckBox31.Visible = False
   If Me.Dextrine_maltose.Value <> "" Then CheckBox31.Visible = True
End Sub

ce ne doit pas etre trés "propre" mais je trouvais ca plus efficase quand je l'utilisé, je t'invite à essayer ma piece jointe 7(2)...et eventuellement m'expliquer pourquoi ce n'ai pas convenable ...


Je ne suis pas allé voir ta macro checkbuttonautres, mais j'ai l'impression qu'elle fait doublon avec celle qui existe déjà, non?
je l'ai recopier sur la tienne effectivement, et les coches apparaissent seulement si tu rempli la textbox...
au debut je l'avais ajouter à checkbutton comme toi mais les coches d'epaississant apparaissaient quand j'ajouter un truc dans autres... j'avais des soucis...et quand je te l'ai envoyé j'ai oublié d'effacer la gestion 'autres dans checkbutton bref cette fois ci je l'ai correctement copier dans la PJ 7(2)

et j'ai donc j'ai légérement modifier la tienne "checkbutton" pour que les coches n'apparissent que si l'épaississant est rempli...

dis moi ce que tu en dis ...et n'hesite pas à me dire si tu ne préfére pas que je touche a ce que tu écris pour ne pas provoquer des erreur par la suite...ou si je fais une modif si tu prefere que je te propose le code ici en note pour te le soumettre.
 

Pièces jointes

  • les eti en neo 2 Remplissage 7(2).xlsm
    190.2 KB · Affichages: 2

Discussions similaires

Statistiques des forums

Discussions
312 377
Messages
2 087 736
Membres
103 655
dernier inscrit
MOUNIRACH16