Enregistrer le format d'une valeur textbox en monétaire

gbstyle

XLDnaute Impliqué
Bonjour, voila je souhaiterai lors de l'enregistrement sur mon tableau que le format nombre soit monétaire
ci joint mon bout de code
Private Sub BtnAenregistrer_Click()
Ref = Me.TxtARefArticles
With Sheets("Base_Articles")
Set trouvé = .Range("TblBaseArticles").Columns(1).Find(Ref, lookat:=xlWhole, LookIn:=xlValues)
If trouvé Is Nothing Then 'il s'agit d'un nouvelle articles
derlig = .Range("A" & .Rows.Count).End(xlUp).Row + 1 'on se positionne sur la dernière ligne
Else 'existe déjà
derlig = trouvé.Row
If MsgBox("Souhaitez vous modifier l'article ?", vbYesNo) = vbNo Then Exit Sub
End If

.Range("A" & derlig) = TxtARefArticles
.Range("B" & derlig) = CboAFamille
.Range("C" & derlig) = CboASousfamille
.Range("D" & derlig) = TxtADesignation
.Range("E" & derlig) = CboAFournisseur
.Range("F" & derlig) = TxtALongueurcolisage
.Range("G" & derlig) = TxtALargeurcolisage
.Range("H" & derlig) = TxtAHauteurcolisage
.Range("I" & derlig) = TxtACréele
.Range("J" & derlig) = TxtANotes
.Range("K" & derlig) = TxtADelaislivraison
.Range("L" & derlig) = TxtAFraistransport
.Range("M" & derlig) = TxtAFacturation
.Range("N" & derlig) = CboAModedegestion
.Range("O" & derlig) = TxtAminicommande
.Range("P" & derlig) = TxtAPrixUnitHT ' => données à afficher en format Euros lors de la saisie dans le text box et lors de l'enregistrement que sont format se mette en monétaire dans le tableau source
J'ai essaye un code avec .NumberFormat = "#,##0.00 $" mais je n'y arrive pas, il me manque une déclaration de variable je pense


End With

End Sub

D'avance merci
 

gbstyle

XLDnaute Impliqué
ci joint fichier, je crois que j'ai compris un petit peu la philosophie des cbx lié donc en effet j'ai supprime les doublon d'info
Par contre il faudra que j'arrive à gérer par l'intermedire d'un bouton l'enregistrement des infos nécessaires à une commande

N'hésite pas à me répondre par code si tu le souhaites ;) ca me permet de les manipuler en meme temp :/
Je crois que c'est aussi du au faite que je n'ai pas encore travailler sur la partie commande du formulaire
 

Dranreb

XLDnaute Barbatruc
Je me serais attendu à ce que ce soit la RéfFournisseur, puisqu'elle existe, qui fasse le lien Article - Fournisseur, mais bon…
Il faut initialiser le CBsC maintenant.
C'est le même schéma, sauf qu'on ne pourra prendre une CLsC_BingoUn, parce qu'il y aura en général plusieurs lignes si j'ai bien compris. Il faudra donc une CLsC_Résultat(Lignes() As Long) pour garnir la ListView commandes.
Supprime celle des articles du fournisseur. Quand la CBxFournisseur est renseignée, on ne peut choisir dans la fiche Article que l'un de ceux de ce fournisseur.
Ajoute la CLsA.Stopper avant de d'initialiser la CBxF et la CLsF.Stopper avant d'initialiser la CLsC, c'est plus prudent.
 

gbstyle

XLDnaute Impliqué
Alors en faite si j'ai une listview article par fournisseur c'est que j'ai d'un coup d'œil rapide tout mes articles lié aux fournisseur m'indiquant leur état de stock, en gros parfois pour limiter les frais de transport je peux éventuellement commander une référence meme si mon stock mini n'est pas atteind,
C'est en cela que je trouver que la listview article du fournisseur est vraiment intéressante

Et puis après réflexion je ne sais pas si j'ai réellement de combobox lié au niveau des commande vu que ce sont des infos manuscrite à renseigner
- J'étais partis dans l'idée que la recherche se faisait par la fiche article, je compléter les infos manquante et à chaque clic ajouter commande je venais remplir ma base commande et la listview
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Bon soit pour la ListView article.
Mais c'est un perfectionnement qu'on pourrait ajouter plus tard.
Il faudrait juste remplacer la CBxA_BingoUn aussi par une CBxA_Résultat et n'y appeler la GarnirArticle que si Ubound(Lignes) = 1, mais se servir de ce tableau Lignes passé en paramètre pour garnir la ListView articles. Elle afficherait aussi tous les articles ayant en commun les renseignements spécifiés, même si on n'aura pas précisé le fournisseur.
S'il n'y a que l'identification de la commande on pourrait à la rigueur se passer d'un ComboBoxLiées et juste maintenir dans une variable globale un truc obtenu par la fonction SujetCBx du module MSujetCBx. Mais moi je crois que ce serait plus simple si un seul tableau pouvait contenir toutes les lignes d'associations de ce genre. Et puis il m'avait bien semblé que toutes les lignes d'une commande concernait un même fournisseur. Alors, ComboBoxLiées pour fournisseur et identification commande.
 
Dernière édition:

gbstyle

XLDnaute Impliqué
La tu me perd :/
Je te renvois le fichier en gros il faudrait que la base-Commande se remplisse ainsi, et donc normalement à chaque enregistrement de ligne je devrais pouvoir alimenter mon tableau Suivis commande non ?
Et comme les infos de l'article sont présente sur le frame du dessus ne peut'on pas les chercher à l'enregistrement lors du clic ajout commande (par contre je pense qu'il faut aussi la possibilité de pouvoir rappeler la commande si erreur de saisie pour modification de l'article)
Qu'en penses tu?
Car non je ne peux pas faire rejoindre le tableau commande et article sur un seul cela m'empechera de faire une gestion de stock et facturation
 

Dranreb

XLDnaute Barbatruc
Oui, c'est bien le fonctionnement que j'avais prévu.
Les élément à récupérer dans la lignes de commande seraient présents à certaines colonnes des tableaux courants d'une ligne TVLA et TVLF (Si LCouA et LCouF sont > 1)
J'avais naturellement envisagé d'exposer une ligne de commande à la modification ou suppression par sélection de cette ligne dans la ListView. C'est le but prévu de LCouC de contenir le numéro de ligne dans la base commandes de la ligne sélectionnée dans la ListView.
Et aussi maintenant pouvoir exposer un article dans la fiche article par sélection d'un ligne de la ListView articles.
Je parlais de joindre en un seul tous les tableaux de genre suivis, pas de les mélanger aux bases fournisseurs et articles.
 

gbstyle

XLDnaute Impliqué
Ah d'accord donc, par ou dois je commencer pour le remplissage de la partie commande
Car on est entrain de se dire que je ne dois pas dupliquer ce qu'on a fait pour le frame fournisseur et le frame article.
On peut éventuellement rejoindre la baseSuivicommande et livraison puisque la ligne de commande sera une ligne à validé lors de la réception et donc du mouvement entrée définis dans le userform inventaire
 

Dranreb

XLDnaute Barbatruc
Initialiser le CBxC avec les ComboBox fournisseur et Idt commande
Vous avez vu qu'il y a deux larges liste déroulantes au dessus de la fenêtre de code ?
Dans celle de gauche (Objet), sélectionnez CBxC, dans celle de droite (Procédure): Résultat.
Commencez par y mettre de coté Lignes, car on va en avoir besoin ultérieurement pour retrouver nos petit. Donc: TLC = Lignes
Ensuite le mieux c'est de charger l'intégralité de la PlgTablo dans une table locale TDon
Dim TDon(), LDon As long, LLw As Long
TDon = CLsC.PlgTablo.Value
Puis vous faites une boucle
For LLw = 1 To Ubound(TLC)
LDon = TLC(LLw)
où vous envoyez vos TDon(LDon, x) dans les ListSubItems de la ListView…
 
Dernière édition:

gbstyle

XLDnaute Impliqué
Alors voila ou j'en suis à ce matin : Verdict pas pas de surpise ca ne fonctionne pas :/ lol


Ajout CLsC

Private sub user forme
Set CLsC = New ComboBoxLiées
CLsC.Plage [TblSuiviscommande]
CLsC.Add Me.CBxCmdRefCmd, 1
CLsA.Add Me.CBxFournisseur, 4
CLsC.Actualiser


Private Sub CLsC_Change(ByVal Complet As Boolean, ByVal NbrLgn As Long)
End Sub

Private Sub CLsC_resultat(Lignes() As Long)
LCouA = Ligne
TLC = CLsC.Lignes(LCouA).Range.Value
GarnirCommande
End Sub


Private Sub GarnirCommande()

Me.TXtCmdDate.Text = TLC(1, 2)
Me.TXtCmdEnregistrepar.Text = TLC(1, 3)
Me.CBxDelaislivraison.Text = TLC(1, 5)
Me.TxtAFraistransport.Text = TLC(1, 6)
Me.TXtCmddelailivraisonestime.Text = TLC(1, 7)

End Sub

Private Sub CLsC_Résultat(Lignes() As Long)
TLC = Lignes
Dim TDon(), LDon As Long, LLw As Long
TDon = CLsC.PlgTablo.Value
For LLw = 1 To UBound(TLC)
LDon = TLC(LLw)
Next
End Sub
 
Dernière édition:

gbstyle

XLDnaute Impliqué
Alors après essais petite synthèse :
J'ai simulé 2 commande directement en manuel dans mon tableau source pour avoir des donnée de consultation
1 - J'ai bien réussis à rapatrier un choix de numéro de commande
2- Lors de la selection d'une des 2 références, il m'affiche bien la liste du fournisseur souhaité
- Par contre impossible de rappeler la référence de la deuxième commande (toujour meme message d'erruer de type 9) le rapport me ramène toujour à ce code au niveau du débogage
Private Sub CBx_Change()
Parent.CBM_Change Me
End Sub


Par contre impossible d'initialiser la listview articles par fournisseur et la listviewcommande
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Bonjour.
Oups… Je voulais parler de CLsC pas CBxC
L'évènement s'appelle Résultat, avec un accent aigu sur le e. C'est pour être sûr que tout est bien orthographié et défini avec les bons paramètres qu'il vaut mieux ne jamais s'écrire soi même les instructions Sub des procédures évènements des objets, mais en installer les modèles corrects à l'aides des deux larges liste déroulantes qui surmontent le fenêtre de code.
Ah mais il y en a une deuxième plus bas, correcte, elle.
Aucune instruction nulle part qui alimente la ListView ?
Il en manque un paquet entre LDon = TLC(LLw) et Next LLw !

Je vois que tu a prévu une GarnirCommande. Doit elle être garnie d'après la 1ère des commandes trouvée ? Ce ne serait pas plutôt seulement quand on sélectionnera une ligne de la ListBox ? Heu… de la ListView, je veux dire. Remarque, tu ferait peut être mieux de partir sur des ListBox. Au moins on peut simplement affecter un tableau à leur propriété List. Pas comme les ListView où il faut d'abord faire un AddItem pour la 1ère colonne et ensuite des ListSubItem.Add pour chaque suivante. Sans compter les problèmes de portabilité régulièrement rencontrés avec ce contrôle…
 
Dernière édition:

gbstyle

XLDnaute Impliqué
Alors pour alimenter la Listview je ne sais pas par ou commencer a partir du moment ou on sélectionne un fournisseur plus haut
ET bien en effet la commande garnir commande me permet d'enregistrer les sélection et ou saisie d'infos dans la base Suivis-Commande, plusieur raison à ce suivis(la possibilité a partir du tableau de faire une edition automatique d'un bon de commande, d'analyser en fin d'année les conformité commande /livraison des fournisseurs etc...) et c'est la qu'il faut que je créer un bouton pour enregistrer tout mes réf commandé

Alors je devrais changer mes 2 LVw par des listbox c'est ce que tu me recommande ?
 

Dranreb

XLDnaute Barbatruc
Je pense que j'ai oublié de déclarer une TVLC() au début pour les valeurs de la ligne de commande. La TLC sert uniquement à conserver les numéros dans la base des lignes des commandes de la liste.
À toi de voir, mais une ListBox est plus simple d'emploi et pose moins de problèmes de portabilité. En revanche elle est visuellement moins chouette.
 

Statistiques des forums

Discussions
312 400
Messages
2 088 087
Membres
103 711
dernier inscrit
mindo