Base de donnée et userform
bonjour
une ame charitable pourrais t'elle regarder mon fichier
1) quand je clique sur entrer un nouveau lot cela me l'écris sur l'onglet DataBL cela fonctionne (le code et t'il corrctement ou peut t'il être raccourci ??
2 je cherche que si je clique sur "modifier un lot" pouvoir aller dans la base de données chercher les produits puis en sélectionner les lot correspondant aux produits (j'espère m'être correctement expliquer)
de plus j'aimerais que l'onglet DataBL soit masquer continuellement mais quand il et masquer je ne peut plus ecrire sur la base de donnée en passant par entrer un nouveau lot
amicalement
Bonjour
Tu écris
je cherche que si je clique sur "modifier un lot" pouvoir aller dans la base de données chercher les produits puis en sélectionner les lot correspondant aux produits
C’est ce que fait désormais la macro ci-jointe. Tu ne dis pas ce que doit faire la macro quand tu cliques sur le bouton Valider de la boite de dialogue. Ce sera donc à toi d’écrire le code.
Tu écris encore :
de plus j'aimerais que l'onglet DataBL soit masquer continuellement mais quand il et masquer je ne peut plus ecrire sur la base de donnée en passant par entrer un nouveau lot
Pour cela, chaque fois que la macro a fini son travail, il faut qu'auparavant elle ait eu comme instruction de masquer cette feuille :
Sheets("DataBL").Visible = False
Je te l’ai mis dans les instructions des boutons Valider des Userforms « archives » et « modif »
Mais pour afficher la feuille et y écrire, pourquoi ne mets-tu pas un bouton sur ta feuille « Modèle » où tu en as d’autres ? Je te l’ai fait mais si tu n’en veux pas, supprime-le.
Tu peux aussi demander à la macro d'afficher la feuille en mettant la même instruction qu'indiquée plus haut, mais avec "true" dans les userform_initialize()
Bye !
re
merci gmb d'avoir pris le temps de regarder mon fichier
je vais bosser dessus celui que tu m'a envoyer pour aller de l'avant cela fonctionne comme je le voulais je ne suis pas fort en vba (voir nul de nul) mais je vois bcp de possibilités mieux que avec un fichier ordinaire excel j'aurais certainement bcp de chose a demander mais petit a petit je cherche a comprendre les actions faite par les macros
le seul hic est que quand je suis sur l'onglet modèle et que je veux rentrer un nouveau lot il se met bel et bien dans l'onglet DataBl mais sur la feuille modèle cela insère automatiquement une ligne si c'est la feuille modèle qui et en fond
amicalement
Bonjour
Ok.
En repartant du fichier que je t’ai retourné, j’ai modifié ta macro pour supprimer cet effet indésirable dû au fait que la feuille « DataBL » est désormais masquée. Il suffit de l’ouvrir avant d’afficher la boite de dialogue « Cliquer pour avoir un nouveau lot :
Private Sub UserForm_Initialize()
[color=#FF0080]Sheets("DataBL").Visible = True[/color]
Dim i&, a&, x&, bb, fin&, cel As Range
Du coup, j’ai fait pareil pour la boite de dialogue qui s’ouvre quand on a cliqué sur « Cliquez pour modifier un lot »
Dans la commande du bouton « Valider la ligne » de la boite de dialogue « Archives », j’ai précicé à la macro qu’elle devait ajouter une ligne non pas à la feuille active mais à la feuille « DataBL », sans pour autant activer celle feuille : ce n’est pas nécessaire :
Private Sub Bt1_Click() ' Bouton Valider une ligne
[color=#FF0080]Sheets("DataBL").Rows("2:2").Insert T1 = xlDown, CopyOrigin:=xlFormatFromLeftOrAbove[/color]
Unload archives
A te relire
Bye !
merci pour ta réponse
je me pose ce week end et je revient
amicalement
re
quand je clique sur modifier un lot cela me rappelle bien le lot puis je clique sur le lot tout et ok tout s'affiche correctement
mais si je veux rectifier la ligne changer un des textbox cela me ré injecte une ligne mais la ligne rappeler ne se modifie pas "snif"
amicalement
Bonjour
Tu écris :
si je veux rectifier la ligne changer un des textbox cela me ré injecte une ligne
Curieux ! J’aimerais bien savoir comment tu fais pour avoir ce résultat.
En principe, il ne devrait rien se passer car il n’y a rien dans le code du bouton Valider de l’userform « modif ».
C’est ce que je t’ai signalé dans un précédant message :
gmb a écrit :Tu ne dis pas ce que doit faire la macro quand tu cliques sur le bouton Valider de la boite de dialogue. Ce sera donc à toi d’écrire le code.
Il y a, à mon avis, 2 possibilités : Soit modifier la ligne correspondante de DataBL soit y ajouter une nouvelle ligne avec les modifications apportées dans la boite de dialogue.
Ton dernier message me laisse penser que c’est la première solution que tu souhaites. Si tu confirmes, je peux te le faire…mais dis-moi bien comment tu arrives à insérer une ligne vide.
A te lire
Bye !
re
dans le fichier joint je clique sur valider la ligne (j'y ai ajouter un code) mais attention comme j'ai dis précédemment je suis nul de chez nul je cherche a comprendre (sourire) mais ce n'est pas gagné
bien sur je vois que tu avais compris si je clique sur le bouton valider de "modifier un lot" je veux que les modifs soit apporter a la ligne et non pas en crée une autre
amicalement
Et voici la version 3, à tester.
Il y a encore des boutons sans code mais tu ne m’as pas dit à quoi ils doivent servir, ex : addition de poids.
A te lire
Bye !
re
je te remercie bcp cela fonctionne
pour ce qui et de l'addition de poids j'ai la macro qui déclenche un userform pour additionner les poids mais j'aurais certainement bcp de chose a demander encore.....
car pour remplir la listbox je ne sais pas faire mais je persiste je cherche je recherche et bientôt je n'aurais plus de cheveux (sourire) déjà que j'en ai pas bcp
mais grâce a vous tous amis du forum j'ai déjà bcp progressé sur excel
maintenant je m'attaque a un gros morceau les macro ect... et la c'est une autre histoire
mais encore un grand merci
bonjour le forum
j'avance pas a pas dans mon projet
mais je cale sur plusieurs points
1) quand je remplis mon userform j'obtient une erreur a cette ligne
If T7 > 0 Then T10 = T3 - T7[code] qand je valide la ligne certainement un manque de logique de ma part mais je ne trouve pas de solution
2) quand mon userform(la listbox) et remplis de plusieurs lignes je cherche a mettre la colonne entière dans une cellule de ma BD colonne 1 en G colonne 2 en H ect et sur la ligne correspondant au produit et la je cale compétemment mes connaissance ne me permette pas de trouver même après plusieurs recherche sur le net
amicalement
Bonjour
Pour le 1) , fais tourner la macro pas à pas et tu verras que lorsque la macro arrive à cette instruction, elle a déjà effacé le contenu des T3 , T7 et T10. D’où le bug !
Pour le 2) je regarde…
Bye !
re
(Pour le 1) , fais tourner la macro pas à pas et tu verras que lorsque la macro arrive à cette instruction, elle a déjà effacé le contenu des T3 , T7 et T10. D’où le bug !)
je l'avais déjà fait mais comment le contourner le but etant d'avoir le nombre restant une fois la ligne validé
@++
Bonjour
Il te faut ruser !
Avant d’effacer T7, mets sa valeur dans une variable :
C3 = ""
NbColis = T7
For i = 6 To 9
Controls("T" & i) = ""
Next i
End Sub
Private Sub Bt4_Click()
Et lorsque tu fais ton test, au lieu de prendre T7 qui a été effacé, tu prends cette variable :
Private Sub T7_Change()
If NbColis > 0 Then T10 = T3 - NbColis
If T10 < 0 Then MsgBox "Il y a une erreur, trop de produits ont été sorti de ce lot", vbCritical, "ERREUR": Exit Sub
End Sub
Bye !
Re Bonjour
J’ai regardé un peu plus en détail ton userform «TRACABILITE » et les macros qu’il contient.
Avant d’aller plus loin et ne pas faire fausse route, j’aimerais que tu me répondes à quelques questions.
Quand tu es dans la boite de dialogue « Traçabilité » et que tu as choisi une N° de lot dans le menu déroulant,
1 - La macro renseigne plusieurs contrôles sur la boite de dialogue mais pas celui de T2 . Est-ce voulu ?
2 - Quand on a cliqué sur « Valider la ligne, la date, le NB colis et le nom du client s’inscrivent dans la list box. OK . Mais pourquoi le Stock restant qui s’inscrit dans un contrôle est-il modifiable puisqu’il est calculé en fonction d’autres données ?
3 - Ne serait-il pas plus judicieux qu’il s’inscrive dans un contrôle non modifiable quand on écrit le NB colis ?
4 - Et toujours après le même clic, (Validez la ligne) pourquoi toutes les données ne sont-elles pas effacées ? Les 2 combobox et les données qui en dépendent restent affichées. Est-ce voulu ?
5 - Quand on a validé la ligne et qu’on a choisi un autre produit et un autre lot, le stock restant de la saisie précédente reste affiché : c’est gênant et peut induire en erreur. Non ?
Quant à ce que j’ai vu de la macro « Valider la feuille », l’idée y est, même s’il faut revoir un peu et compléter.
A te relire
Bye !
re
bonjour gmb
je répond a tes interrogations
1) en t2 c'est la date d'arrivage si elle a bien été rentré en rentrant le lot elle doit s'afficher
2) le stock restant et une infos pour l'utilisateur et je voulais y mettre un textbox pour ne pas sortir plus de produits que l'on en a rentrer éviter les erreurs il et calculé T10=T3-T5 et c'est la qu'il y a une erreur qui apparait même en faisant ce que tu m'as indiquer plus haut
[3 - Ne serait-il pas plus judicieux qu’il s’inscrive dans un contrôle non modifiable quand on écrit le NB colis ?] je ne voit pas ce que tu veux dire mais je suis ouvert a toutes propositions
[4 - Et toujours après le même clic, (Validez la ligne) pourquoi toutes les données ne sont-elles pas effacées ? Les 2 combobox et les données qui en dépendent restent affichées. Est-ce voulu ?] non du tout cela doit s'effacer pour pouvoir éventuellement continuer la saisie pour d'autre clients
[5 - Quand on a validé la ligne et qu’on a choisi un autre produit et un autre lot, le stock restant de la saisie précédente reste affiché : c’est gênant et peut induire en erreur. Non ?] oui tout a fait on saisie sur un lot on valide la ligne autant de fois qu'il a de clients puis on valide la feuille pour enregistrer sur le lot concerné puis "rest" la feuille et totalement vierge et on peut sélectionner un autre produit et autre lot
je te joint la derniere version
amicalement
Bonjour
Ci-joint une nouvelle version à tester. J’y ai un peu remaniée l’userform « Archives » mais si cela ne te convient pas, change
J’ai encore quelques questions :
1 - Comment se calcule la perte qui doit s’inscrire en T11 et en colonne L sur la feuille DataBL ?
J’ai supposé que c’était en faisant Poids du produit arrivé moins poids du produit expédié. Est-ce correct ?
2 – Pourquoi y a-t-il une ligne vide sous la ligne des titres de DataBL ? Je l’ai supprimée mais s’il le faut, je peux la remettre
3 – Que doit faire la macro quand on clique sur « Valider la feuille » ? Il ne reste affiché que les 4 valeurs de la ListBox : Date( d’expédition), Nb Colis (expédiés), <nom du cient (Expédition) Poids expédié) ? C’est insuffisant pour savoir où reporter ces valeurs dans DataBL …
4 – Et pour mon info :
4-1 Pourquoi appeler « Archives » l’Userform qui sert à créer un nouveau produit ?
4-2 Qu’est-ce que le « Poids Blanc » ?
A te relire
bonjour
pour repondre aux questions que tu te pose
1 - Comment se calcule la perte qui doit s’inscrire en T11 et en colonne L sur la feuille DataBL ?
J’ai supposé que c’était en faisant Poids du produit arrivé moins poids du produit expédié. Est-ce correct ? oui tout a fait mis a part que c'est soit le poids arrivé soit le poids a blanc suivant quelle textbox et rempli
2 – Pourquoi y a-t-il une ligne vide sous la ligne des titres de DataBL ? Je l’ai supprimée mais s’il le faut, je peux la remettre (non elle ne sert a rien )
3 – Que doit faire la macro quand on clique sur « Valider la feuille » ? Il ne reste affiché que les 4 valeurs de la ListBox : Date( d’expédition), Nb Colis (expédiés), <nom du cient (Expédition) Poids expédié) ? C’est insuffisant pour savoir où reporter ces valeurs dans DataBL …elles doivent se reporter sur la feuille databl dans les colonnes G a L mais la je cale je n'ai pas l'idée
pour pouvoir la rappeler et éventuellement la compléter au fur et a mesure des départs
4 – Et pour mon info :
4-1 Pourquoi appeler « Archives » l’Userform qui sert à créer un nouveau produit ? il fallait lui donner un nom et vu que une fois saisie cela s'archive....
4-2 Qu’est-ce que le « Poids Blanc » ? le poids a blanc c'est quand on fabrique le fromage quand il a deux jours le fromage et tout blanc (d'où le nom poids a blanc) la coloration de la croute se fait au fur et a mesure de l'affinage
alors que le textbox poids c'est pour du fromage que nous rentrons déjà semi affiné
espérant avoir répondu a tes questions
amicalement
Bonjour
Tu écris :
elles doivent se reporter sur la feuille databl dans les colonnes G a L
A mon avis, tel que se présente ton userform Traçabilité, ce n’est pas possible. Il faudrait pouvoir le modifier pour que l’on puisse retrouver dans la listbox les données nécessaires à retrouver le produit et son lot dans DataBL . C’est-à-dire y ajouter 2 colonnes.
Il faudrait ensuite que sur DataBL on ait une colonne pour identifier le fournisseur, et une autre qui serait celle du client. Si cette dernière colonne existe, la première fait défaut. N’est-ce pas l’objectif de la traçabilité que savoir d’où est venu un produit et où il est allé ?
La colonne fournisseur serait (toujours à mon avis) à renseigner lors de l’entrée d’un nouveau lot : il vient bien de quelque part !. D’où la nécessité de créer un nouveau contrôle dans l’userform Archive.
Il restera encore un problème à régler : s’il existe un stock restant sur DataBL pour un produit et son lot, il faudra créer, le cas échéant, une autre ligne, avec les mêmes renseignements d’origine et les données d'une nouvelle expédition, jusqu’à ce que le stock soit nul. Mais ce n’est pas insurmontable…
Qu’en dis-tu ?
A te lire.
re
Il faudrait ensuite que sur DataBL on ait une colonne pour identifier le fournisseur non du tout pas besoin de cela
l’objectif de la traçabilité que savoir d’où est venu un produit si bien sur mais surtout de savoir ou il a été vendu
Il restera encore un problème à régler : s’il existe un stock restant ( la c'est clair que le total du lot peut partir en plusieur fois voir une centaine de ligne etalé sur plusieurs semaines
@+