Enregistrement multiples and Copy-Past

Je suis entrain d’améliorer mon petit formulaire de gestion des médicaments et j’aurai encore besoin de votre aide s’il vous plait.

Dans mon fichier joint :

1- En cliquant sur le bouton « Lancer formulaire » qui se trouve dans la feuille « Feuil1», un formulaire s’affiche. Après avoir choisi mes 3 médicaments et en cliquant sur le bouton « VALIDER », j’ai la possibilité de rentrer en même temps l’ensemble des 3 médicaments, mais LES UNS A LA SUITE DES AUTRES dans la feuille LISTE PATIENTS. La macro fonctionne bien, mais j’aimerai savoir s’il est possible de faire « un code plus simple » car pour chaque ligne, j’ai dû reproduire le code 3 fois. J’aimerai aussi que NE S’ENREGISTRE que les champs PLEINS : par exemple, si j’ai choisi que 1 médicament sur les 3 possibles, seul ce médicament doit pourvoir s’enregistrer dans la feuille LISTE PATIENTS.

2- Autre chose, j’aimerai que lorsque je clic sur le bouton « COPIER », une macro va dans la feuille « LISTE PHARMACIE », me copie que « les lignes ayant des données » et va me les coller dans la feuille « INVENTAIRE ».

Pourriez-vous me donner une piste s’il vous plait ?
Dans l’attente,

Cordialement

BONJOUR pour commencer

Ensuite quand je regarde le code, je pense que vous finirez par avoir des ennuis

Dans votre USF, vous ne semblez utiliser aucun objet Worksheet et ne travaillez que sur Activecell... ouille

J'ai trouvé ceci pour vous, qui pourrait grandement vous aider
https://www.labri.fr/perso/hocquard/MIREFInfo/CoursVBA_M1IREF.pdf

A+

Bonjour

Je ne vois pas l'utilité de la feuille inventaire

Par contre dans la macro Validation je mets à jour la base RH(liste pharmacie)

A+ François

Bonjour à tous,

Merci encore pour votre rapidité légendaire.

* JExceL2fr je regarde votre document et je vous reviens dès que possible.

* Fanfan38, la feuille "Inventaire" est importante dans la mesure où elle fait une synthèse des données contenues dans la feuille "Liste Pharmacie".

En fait, la feuille "Liste Pharmacie" sera masquée et les utilisateurs ne pourrons voir les médicaments saisis quand dans la la feuille "Inventaire".

Bref,

Je regarde vos corrections set je vous reviens très vite.

Cordialement

ils le veront dans la feuille patient...

A+ François

Fanfan38, la feuille "Liste Patients" sera également masquée : elle sera visible par quelques utilisateurs pour des statistiques sur la vente de certains médicaments.

Bref,

J'ai regardé votre code et ça me va.

Si vous également me trouver une solution pour le point N°2, se sera parfait.

Rappel du point N°2 :

2- Autre chose, j’aimerai que lorsque je clic sur le bouton « COPIER », une macro va dans la feuille « LISTE PHARMACIE », me copie que « les lignes ayant des données » et va me les coller dans la feuille « INVENTAIRE ».

Merci encore pour votre aide.

Dans l'attente,

Cordialement

JExceL2fr, s'il vous plait, comment utiliser un objet Worksheet à la place d'un Activecell ?

Si vous pouviez me donner un petit exemple, ce sera parfait.

Dans l'attente

Re,

Avec inventaire...

A+ François

Ps: Worksheet c'est une feuille (ou onglet)..Quand tu copie des données sur une feuille (sauf tableau structuré)

Tu précise où copier les données exemple: sheets("Inventaire").range("F12").value=sheets("pharmacie").range("J35").value

Activecells c'est la cellule active.... (Voir Cours VBA) ci dessus

Excuse je n'avais pas utilisé le bouton copier

A+ François

Fanfan38, dans mon envie de compréhension du VBA (oui oui, je ne veux pas juste qu'on me conçoive des codes bien fait), j'arrive pas à comprendre d'où viennent les éléments suivants :

- "Medicament"

- "Quantité"

- "Prix" ...

Ces éléments sont contenaus dans la partie du code ci-dessus : 

[BasePATIENTS].Item(n, 2) = Format(Me.txtDate.Value, CLng(Value))

[BasePATIENTS].Item(n, 3) = Controls("Medicament" & i).Value 'Désignation

[BasePATIENTS].Item(n, 4) = CDbl(Controls("Prix" & i).Value) 'Prix d'Achat

[BasePATIENTS].Item(n, 5) = CInt(Controls("Quantité" & i).Value)

[BasePATIENTS].Item(n, 6) = CDbl(Controls("TTC" & i).Value)

[BasePATIENTS].Item(n, 7) = CLng(Controls("Stock" & i).Value)

En regardant ces éléments dans la feuille "LISTE PATIENTS", ils correspondent à :

Pourquoi ne sont-ils pas écrit de ma mm façon que dans la la feuille "LISTE PATIENTS" ?

Dans l'attente de votre réponse s'il vous plait ?

Ce sont les noms de tes contrôles. Medicament1,2 et 3 idem pour les autres contrôles.

Comme il faut faire une boucle j'appelle les contrôles par leur nom.

Ca n'a rien à voir avec les feuilles mais seulement avec l'userform

A+ François

Fanfan38 merci,

Je test et te reviens très vite.

Bonjour et bon dimanche à tous

Fanfan38, c'est bon, j'ai corrigé. J'avance et je vous reviens en cas de besoin.

Merci encore

Bonjour à tous,

J’espère que vous allez bien,

Fanfan38, votre code est correct et tout fonctionne à merveille.

Mais j’aimerai encore améliorer le formulaire.

Serait-il possible que lorsqu’on efface « partiellement » ou « intégralement » un « médicament », la textbox du Prix devienne vide au lieu d'afficher PRIX ACHAT ? (voir capture ci-dessous).

J’ai beau me casser la tête, mais je n’y arrive pas.

Quelqu’un pour me donner une piste s’il vous plait ?
Dans l’attente,

Cordialement

image

Bonjour

J'espère avoir répondu à ton problème

A+ François

M. François vous êtes un génie,

Merci beaucoup

Rechercher des sujets similaires à "enregistrement multiples copy past"