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é
Je doit vraiment etre con, je n'y arrive pas pourtant je me met a gauche de if je veux ajouter un espion il me marque expression vide
Et peu importe ma manip il me ramène constament sur cette déclaration de date

Mais je me demande de quoi ca peut venir alors que tu m'avais bien figé et que je n'y est pas touché, ca me laisse vraiment perplexe cette histoire :/
 

gbstyle

XLDnaute Impliqué
upload_2018-6-29_0-43-19.png
 

Dranreb

XLDnaute Barbatruc
Tu a mis un arrêt sur TVLC(1, 7) = CDate(Me.TBxCmddatelivraisonestime.Text)
Soit, bien que l'instruction que tu disais planter était après. Bon alors qu'est ce que tu veux savoir sur les tenant et aboutissants de cette instruction, quand on est arrêté dessus ?
si TBxCmddatelivraisonestime est défini ? Ben mets un espion sur TBxCmddatelivraisonestime ! Ou sur TBxCmddatelivraisonestime.Text si tu ne veux pas avoir dans le volet Espions à déplier la liste de toutes les propriétés de l'objet.
 

Dranreb

XLDnaute Barbatruc
Et bien il n'y a pas d'autre chance de trouver ce qui la fait planter qu'en examinant ses différents éléments par des espions.
Moi j'aurais tendance à penser que Me.TBxCmddatelivraisonestime.Text n'est pas convertible en date, et peut être vide.
 
Dernière édition:

gbstyle

XLDnaute Impliqué
Par contre j'ai réussis à créer une commande en remplissant tout mes champ dont datecmdlivraison estimé
l'erreur vient à partir du moment ou je laisse le champ vierge a prioris :/
par contre ca ne me dit pas pour mon problème de ce matin :/
 

Dranreb

XLDnaute Barbatruc
Ah, ça c'est sûr ! Si ça peut être vide il faut vérifier avant d'essayer de le convertir en date !
Mais pourquoi est-ce que tu t'obstine à faire exprès de jeter la tête contre de tels murs au lieu de faire TVLC(1, 7) = ValeurTBx(Me.TBxADelaislivraison, vbDate) ?
Elle veille au grain, elle, cette fonction ValeurTBx !
Pareil pour les autres TBx qui doivent donner lieu à une conversion de donnée, confie la donc à la fonction ValeurTBx !
 

Dranreb

XLDnaute Barbatruc
À la réflexion je crois que l'objet qui s'était déconnecté de ses clients, ça m'était surtout arrivé en phase de mise au point, quand que je tentais de poursuivre une exécution alors que j'avais modifier un truc dans l'UserForm, ou quelque chose comme ça.
En tous cas je n'ai jamais été conduit à le considérer comme quelque chose de grave.
 
Dernière édition:

gbstyle

XLDnaute Impliqué
Bonjour Dranreb, alor voici après quelque modification j'ai bien appliqué la fonction valeur Tbx comme tu me l'as demandé :
je suis actuellement revenus sur mon poste de travail et j'ai à ma découverte ce matin à nouveau "le message d'erreur de deconnection client "qui vient me planter la base.
Je n'ai pas fait de modif autre que la mise en place de la fonction Valeur Tbx, sinon la seule modification et que j'ai changer de poste informatique et je suis de nouveau sur excel 2016, je me demande si ca ne serait pas lié

VB:
Private Sub CBnValiderC_Click()
If LCouC = 0 Then ReDim TVLC(1 To 1, 1 To 11)

TVLC(1, 4) = TVLF(1, 2)
TVLC(1, 2) = ValeurTBx(Me.TBxCmdDate, vbDate)
TVLC(1, 3) = Me.TBxCmdEnregistrepar.Text
TVLC(1, 5) = Me.CBxDelaislivraison.Text
TVLC(1, 6) = ValeurTBx(Me.TBxMontant, vbCurrency)
TVLC(1, 7) = ValeurTBx(Me.TBxCmddatelivraisonestime, vbDate)
TVLC(1, 8) = Me.CBxRefArticle.Text
TVLC(1, 9) = Me.CBxDsgnArticle.Text
TVLC(1, 10) = ValeurTBx(Me.TBxCmdQtecmd, vbDouble)
TVLC(1, 11) = ValeurTBx(Me.TBxPrixUnitHT, vbCurrency)

If LCouC = 0 Then
    CLsC.ValeursVers TVLC
    CLsC.Lignes.Add.Range.Resize(, 11).Value = TVLC
    CLsC.Actualiser
    Rem. Refaire un Dictionary ? Refiltrer quelque chose ? On verra !
Else
   
    CLsC.Lignes(LCouC).Range.Resize(, 11).Value = TVLC '11=nombre de colonnes contenant des constantes
   
    End If
End Sub
 

Statistiques des forums

Discussions
312 216
Messages
2 086 351
Membres
103 195
dernier inscrit
martel.jg