Code VBA pour copier valeurs selon conditions

Bonjour,

Je suis actuellement bloqué pour finir mon script VBA. Je recherche un script pour quand on mets dans la case C5 un CB endo, et que la valeur (valeur prise dans la feuille PARAMETRAGE) est déjà présent dans la BDD Temp (juste en-dessous : C20:I20). Puis les valeurs de la ligne retrouver sois copier dans la saisie, puis que les valeurs dans la BDD Temp sois supprimé. Autre problème mon script active un module quand il détecte en changement de valeur dans la case E8, hors le script que je recherche remplie cette casse et vas donc déclenché mon script.

Explication de mon document étapes par étapes pour faire simple :

1 - Rentrer les données B8 a E8 (CB opérateur et patient, test (ok ou hs) puis CB LDE).
2 - Rentrer CB endo (C5) --> enregistrement la lignes (dans la BDD temporaire en dessous et effaçage des données dans la saisie).
3 - Faire de même que l'étape 1 et 2 (avec d'autre données).
4 - Pouvoir revenir sur une ligne avec étapes 1 et 2 complétées. (grace a au CB de l'Endo)
5 - Rentré les données B9 et F9 (opérateur qui pose l'endo a l'ESET).
6 - Puis que cette information (Une fois la saisie complété) soit supprimer (de la saisie et de la BDD temporaire en dessous) et écrit dans la feuille BDD.

Aide :
CB = Code Barre
LDE = Outils de lavage
ESET = Outils de Séchage
Endo = Outils
BDD = Base De Données

Bonjour Loukio49,

L'étape 4, je comprends son objectif par contre je ne comprends pas comment tu localises l'endo à compléter dans la BDD temporaire. Tu indiques "grâce au code barre" en fait c'est le NUM_ENDO (c'est bien ça ?) mais dans la BDD temporaire il peut être présents plusieurs fois, comment localiser celui qui est concerné ?

Bonjour,

Quand je parles de CB endo c'est "NUM_ENDO". Pour ta question quand les agents nettoieront les endoscopes, Il ce peut qu'ils en nettoient plusieurs a la fois, hors il a plusieurs étapes : Donc il enregistre l'ID patient/opérateur avec cette endoscope, puis test et NUM_LDE (Lavage), puis cette ligne s'enregistre dans la BDD temporaire. Ils vont en faire d'autre entre temps. Et quand ils vont les mettre au séchage (NUM_ESET), il devront scanner le CB de l'endo et la ligne déjà écrite dans le BDD temporaire sera supprimer et écrit dans saisie. Une fois le NUM_ESET enregistré avec le CB opérateur. La saisie coupe les informations et colle les informations dans la feuille BDD

Ok pour la séquence des opérations. Si je comprends bien, une référence de NUM_ENDO, ne peut être présente qu'une seule fois dans la BDD temporaire, et les saisies complémentaires se font en resélectionnant le NUM_ENDO, c'est cela ?

Si oui, concernant le CB, tu utilises une douchette ? et re si oui, l'alimentation du CB en "C5" (NUM_ENDO) est opérationnelle ?

Oui il n'y aura que un NUM_ENDO, et les saisies supplémentaire seront ajouter quand le scan du CB de l'endo avec une douchette (ça le copiera les informations déjà rentré qui sont écrite dans BDD temporaire dans la saisie). Pour la CB de NUM_ENDO, c'est opérationnelle j'ai juste volontairement enlevé les valeurs par 1234.....21.

Bonjour,

Ci-jointe une proposition. J'ai modifié le code lié à la feuille TRACENDO et mis les procédures dans le module1. Sur la feuille "TRACENDO", j'ai mis une formule dans la cellule "F3", elle donne le n° de ligne de la BDD temp lorsqu'un NUM_ENDO (cellule"C5") y est présent sinon F3 = 0.

Je te laisse regarder et me dire si cela te convient. Il y aurait quelques améliorations / optimisations à faire mais après que tu ais fait tes retours.

Bonjour,

Cela me convient parfaitement. J'ai d'autre spec. de saisie a rajouter. Je te tien au courant si j'ai d'autre soucis ou que ça fonctionne.

sinon merci beaucoup ! tu me sauve !

Bonjour,

Voici ou j'en suis. J'ai rajouter une étapes et modifier quelque case, puis j'ai essayer de comprends le script et de testé des choses. Actuellement, j'ai 3 soucis principaux.
1er soucis : Quand je fais l'étape 1 (1er ligne de la saisie), ça l'enregistre et l'enlevé de la saisie, normal. Mais quand je resélectionne l'endo il remet les informations dans la saisie mais ne supprime pus la ligne dans BDD Temp.
2eme soucis : Quand je fini de remplir l'étape 3 (3eme ligne de la saisie), ça suppr ce que j'ai rempli, mais dans la BDD définitive Il me manque des éléments et il me manque les informations de l'étape 3.
3eme soucis : Il n'y a pu l'heure n'y la date. (normalement elle doit être enregistré a chaque étapes.)

Merci beaucoup de l'aide et du temps que tu m'accordes.

Tu as déplacé des cellules et tu en as ajouté d'autres ... il y avait 2 opérateurs, maintenant il y en a 3 ..., les tableaux étaient prévus sur 2 lignes maintenant tu en a 3, etc. Mais plus impactant, visiblement tu ajoutes une étape (sauf erreur, elle n'était pas mentionné dans la demande initiale).

Donc c'est sûr, ces changements impliquent pas mal de modifications dans le code et peut-être dans l'articulation du code puisqu'il y a une étape supplémentaire.

Il faut que tu poses complètement le problème (les étapes, leur séquencement, les actions à l'issue de chaque étape, etc.) après on verra car dans le cas contraire, ça va être des allers / retours incessants.

Bonjour,

Oui je vais expliqué comment ça doit fonctionner.

1 : L'agent doit scanner le CB de l'endo (C5).
2 : Il doit ajouter le CB opérateur (B8), puis scanner le CB du patient (C8).
(Fin de la partie 1. Vu qu'il y en n'a plusieurs (opération/endo). Il va refaire l'étape 1 plusieurs fois. Donc il faut que dès que l'agent scan un autre CB d'endo, que ça supprime la saisie actuel et l'enregistre dans la BDD Temp. en dessous (B20:J20)
3 : L'agent re-scan le CB d'un endo qui est sortie de l'opération. (les informations dans le BDD Temp, sont supprimer et remis dans la saisie.)
4 : l'agent doit scanner s'on CB opérateur (B9), faire un test (D9), puis mettre le CB du LDE dans la qu'elle l'endo est lavé (E9)
(Fin de la partie 2. Vu qu'il y en n'a plusieurs (endo). Il va refaire l'étape 2 plusieurs fois. Donc il faut que dès que l'agent scan un autre CB d'endo, que ça supprime la saisie actuel et l'enregistre dans la BDD Temp. en dessous (B20:J20))
5 : L'agent re-scan le CB d'un endo qui est sortie de LDE. (les informations dans le BDD Temp, sont supprimer et remis dans la saisie.)
6 : l'agent doit scanner s'on CB opérateur (B10), et mettre le CB de l'ESET dans la qu'elle l'endo séche (F10)
(Fin de la partie 3. Donc il faut que dès que l'agent scan le CB de l'ESET (G10) que ça supprime la saisie actuel et l'enregistre dans la BDD Définitive. Page BDD (C4:K6))

Note :- Il faut une date a chaque Endo (C6). Il faut un heure a chaque étapes (G8:G10).
- Que l'agent n'est pas besoins de toucher au PC (maximum automatisé).

Merci beaucoup de ton aide.

Bonjour Loukio49,

Je reprends les séquences :
1 : L'agent doit scanner le CB de l'endo (C5).

=> OK

2 : Il doit ajouter le CB opérateur (B8), puis scanner le CB du patient (C8).
(Fin de la partie 1. Vu qu'il y en n'a plusieurs (opération/endo). Il va refaire l'étape 1 plusieurs fois. Donc il faut que dès que l'agent scan un autre CB d'endo, que ça supprime la saisie actuel et l'enregistre dans la BDD Temp. en dessous (B20:J20)

=> L'enregistrement et la raz des rubriques de saisie doivent plutôt se faire dès que toutes les infos ont été saisies et que la BDD temp a été actualisée et ce sans attendre le scan d'un autre endo. D'accord ?

3 : L'agent re-scan le CB d'un endo qui est sortie de l'opération. (les informations dans le BDD Temp, sont supprimer et remis dans la saisie.)

=> Remise dans la saisie => OK. La suppression ne devrait intervenir qu'à la fin de l'étape 3. A cette étape, on actualise les données dans la BDD temp. D'accord ?

4 : l'agent doit scanner s'on CB opérateur (B9), faire un test (D9), puis mettre le CB du LDE dans la qu'elle l'endo est lavé (E9)
(Fin de la partie 2. Vu qu'il y en n'a plusieurs (endo). Il va refaire l'étape 2 plusieurs fois. Donc il faut que dès que l'agent scan un autre CB d'endo, que ça supprime la saisie actuel et l'enregistre dans la BDD Temp. en dessous (B20:J20))

=> L'enregistrement et la raz des rubriques de saisie doivent plutôt se faire dès que toutes les infos ont été saisies et que la BDD temp a été actualisée. D'accord ?

5 : L'agent re-scan le CB d'un endo qui est sortie de LDE. (les informations dans le BDD Temp, sont supprimer et remis dans la saisie.)

=> Remise dans la saisie => OK. La suppression ne devrait intervenir qu'à la fin de l'étape 3. A cette étape, on actualise les données dans la BDD temp. D'accord ?

6 : l'agent doit scanner s'on CB opérateur (B10), et mettre le CB de l'ESET dans la qu'elle l'endo séche (F10)
(Fin de la partie 3. Donc il faut que dès que l'agent scan le CB de l'ESET (G10) que ça supprime la saisie actuel et l'enregistre dans la BDD Définitive. Page BDD (C4:K6))

=> OK

Questions complémentaires :
1 - L'heure est répétée à chaque ligne d'étape mais pas la date. Cela signifie t il que les opérations sont obligatoirement faites le même jour (Donc jamais commencé un soir et terminée le lendemain.) ?
2 - Les tests OK et (surtout) HS n'ont pas d'incidence sur les étapes et leur enregistrement dans la BDD temporaire et définitive ?

3 - Il serait plus simple d'avoir une seule ligne dans les tableaux plutôt que 3. La lecture des différents opérateurs seraient moins lisible par contre, si les données des tableaux doivent être exploitées, il me semble que ce serait plus simple ou alors à minima répéter "IEP_PATIENT" et "NUM_ENDO" à chaque ligne et éventuellement numéroter les étapes. Je te laisse voir ...

Bonjour,

Je suis d'accord avec ta compréhension des étapes.

Question :
1 ) L'heure doit être enregistrer a chaque ligne/étape.

2 ) Effectivement, dès que un des tests est "HS" il part dans la BDD Définitive

3 ) Je ne sais pas, car en ligne, l'heure/l'opérateur est répété 3 fois et 2 fois pour TEST. Mais on ma déjà suggéré de mettre en ligne. Donc oui en ligne ça serai surement mieux pour la traçabilité dans la BDD Définitive

Pour le 1) tu me reconfirmes pour l'heure mais ma question portait sur la date ...

Oui excuse moi, pour la date c'est une date pour le cycle de l'endo

Dans le dernier fichier transmis (v18), l'armoire a disparu des zones de saisie mais pas des tableaux ... tu peux renvoyer un fichier avec le bon masque de saisie et les tableaux en phase (même s'ils sont sur 3 lignes) ?

Bonjour,

En faite je n'avais pas compris les demandes et les Armoires et ESET sont les mêmes chose

OK

Une nouvelle version ci-jointe. Je te laisse tester et me faire tes retours.

Bonjour,

Cela me convient parfaitement, juste une version aucun message de prévention sera possible stp ?

Sinon merci beaucoup. Je t'ai voté quand même ;)

Rechercher des sujets similaires à "code vba copier valeurs conditions"