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é
Comment dois je procéder ?

Sinon j'ai commencer la procédure de suppression justement mais j'ai un petit soucis d'éxecution erreur 424
Private Sub CBnSupprimerF_Click()
If LCouF = 0 Then Exit Sub
If MsgBox("Etes-vous sûr de vouloir supprimer ce fournisseur ?", _
vbYesNo + vbExclamation, Me.Caption) = vbNo Then Exit Sub
CLsF.Lignes(LCouF).Delete
CLsF.Actualiser
 

gbstyle

XLDnaute Impliqué
Bonjour dranreb, a prioris c'est bon après réécriture de la procédure, la suppression du fournisseur et ou de l'article fonctionne en cliquant sur leur bouton respectif.
J'ai ajouter après actualiser dans ma procédure de suppression
Set DicF = DicoSujet(CLsF.Item(CBxFournisseur).SujetBdD)


Par contre j'ai toujour le soucis de ne pas avoir les infos sur la fiche article lié aux fournisseur du type délais/facturation/frais de transport lorsque je crée un nouvelle article :/
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Dans les CLsx_Change, lorsque NbrLgn = 0, il doit préparer un TVLx vierge, c'est à dire essentiellement composé de valeurs vides. Mais il est possible avant d'appeler la Garnirxxx de mettre dans certaines colonnes certaines valeurs prédéfinies telles que la date du jour, ou comme vous dites des valeurs reprises de la TVLF.
 

gbstyle

XLDnaute Impliqué
Ca veut donc qu'il faut que après la selection du fournisseur je récupére les infos du tableau fournisseur pour venir les copier dans la fiche article

Concrètement, si je comprend bien c'est que lors de la création d'une nouvelle fiche je pourrais dire que ma textbox "date crée le" et la "date de mise à jour" se remplisse automatiquement à la date du jour
 

gbstyle

XLDnaute Impliqué
Ca veut dire qu'il faut que j'ajouter les infos de ce type par contre je n'arrive pas à comprendre comment faire la liaison
Private Sub CLsA_Change(ByVal Complet As Boolean, ByVal NbrLgn As Long)
If NbrLgn = 1 Then CBnValiderA.Caption = "Modifier": Exit Sub
If NbrLgn = 0 Then LBxA.Clear
LCouA = 0
ReDim TVLA(1 To 1, 1 To 20)
'Me.TxtACréele.Value = Format(Now, "yyyy/mm/dd")
'TVLA(1, 11) = TVLF(1,16)
'TVLA(1, 12) = TVLF (1,17)
'TVLA(1, 13) = TVLF (1,18)

GarnirArticle
CBnValiderA.Caption = "Ajouter"
End Sub

********
ah oui J'ai aussi un petit soucis de débogage de temp en temp qui me ramène à une des procédure pré établis, ca arrive parfois lorsque j'effectue des changement de fournisseur sans modifier un article ou autre je crois.
Je crois que c'est du en fonction des choix des clic de zone, je vais essayer de refaire la manip

Private Sub CBx_Change()
Parent.CBM_Change Me
End Sub
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Je ne comprends pas où est le problème. On ne peut pas définir un article sans avoir défini et enregistré ou rappelé le fournisseur. Parce que la CBxFournisseur fait partie des ComboBox identifiant aussi l'article. Et même si ça ne devait un jour plus être le cas, il faudrait reporter le fournisseur courant dans l'article créé et donc interdire la création d'un article si LCouF=0. Donc le TVLF ne peut être que renseigné me semble-t-il.

Il faudra néanmoins je pense pouvoir rappeler un article de la même façon qu'un fournisseur, mais pour tout autre chose: lors de la sélection d'une ligne de commande.

Me.TxtACréele.Value = Format(Now, "yyyy/mm/dd") c'est pas bon. La GarnirArticle vas l'écraser.
C'est tout simplement TVLA(1, 9) = Date
 
Dernière édition:

gbstyle

XLDnaute Impliqué
quand je crée un article j'ai bien l'information du founisseur qui vient s'intégrer dans la base article, lui c'est ok par contre ce sont les 3 autres infos lié à la fiche fournisseur qui ne s'ajoute pas. (délais livraison, facturation, et frais de transport)
c'est ce que j'avais essayé au démarrage pour la date mais ca n'avait pas fonctionner je vais recommencer
 

Dranreb

XLDnaute Barbatruc
Le problème c'est qu'elle peut ne pas être renseignée, la fiche fournisseur, si le FrmF n'a pas été activé.
Cette procédure a l'air d'y remédier :
VB:
Private Sub CLsF_ChangeStop(ByVal CBM As ComboBoxMmbr)
If Not CBM.CBx Is Me.CBxFournisseur Then Exit Sub
AppelF Me.CBxFournisseur.Text
End Sub
Je me demande même si à terme on ne pourrait pas y mettre tout simplement le code de la AppelF dedans et se passer de celle ci. Mais ce n'est pour l'instant qu'une question que je me pose.

Pourquoi les TVLA(1, 11 à 13) = TVLF(1, 16 à 18) sont-elles en commentaires dans la CLsA_Change ?
Ah, c'est parce que TVLF peut ne pas être initialisé suite à des Nettoyer…
Alors mets peut être :
VB:
If LCouF > 0 Then
   TVLA(1, 11) = TVLF(1, 16)
   TVLA(1, 12) = TVLF(1, 17)
   TVLA(1, 13) = TVLF(1, 18)
   End If
 

Statistiques des forums

Discussions
312 080
Messages
2 085 149
Membres
102 794
dernier inscrit
espinata