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é
c'est fait je viens de voir un peut le code en effet ca a l'air pas trop mal, crois tu que je puisse réinterpréter l'ensemble de mon projet sous cet forme et surtout, est ce qu'il sera possible de pouvoir avoir des champ calculé et des mise en forme font aproprié en fonction du résultat?
je vais regarder demain matin ce que je peux faire avec mon fichier sous ce format
 

Dranreb

XLDnaute Barbatruc
Oui pareil, met des Resize(, x) pour préserver les formules.
Ben l'avantage c'est que quelques évènements peuvent être déclenchés par le ControlsAssociés si on le déclare avec l'attribut WithEvents devant, comme pour le ComboBoxLiées, ce qui permettrait de n'avoir qu'une procédure pour les traiter tous.
 

gbstyle

XLDnaute Impliqué
D'après toi en fonction du projet que je t'ai fait parvenir, crois tu que je dois tout regrouper sur un meme userform ou le dupliquer comme dans ton exemple sur plusieur userform, moi j'aimai bien avoir l'info sur un seul :/
Certe ca me fait un tableau avec un nombre de colonne enorme mais tout est regroupé visuellement au meme endroit j'ai toute mes infos
 

Dranreb

XLDnaute Barbatruc
On peut utiliser plusieurs objets des deux type dans un même UserForm, pas de problème.
Toujours sous réserve que deux ComboBoxLiées s'appuyant sur des tableaux différents ne soient actif en même temps s'il prennent en charge une même ComboBox.
 

gbstyle

XLDnaute Impliqué
salut Dranreb, alors programme de ce jour ci joint mes modif apporter en fonction de tes préco,
ma commande btn ouvrir de l'userform ne fonctionne plus( j'ai pourtant bien modifier le nom de l usf)
Peux tu jeter un coup d'œil aux écriture pour voir si ca correspond ?
Ah oui est ce que dans les référence le gigldx.xlam doit etre activer?
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Bonjour.
Ça fait beaucoup de chose tout ça. je nai pas trouvé le bouton indiqué.
Par contre j'ai vu un CL.Add TBxNomjf, "Nom Jeune Fille" à supprimer au début. Le CA.Add TBxNomjf, "Nom Jeune Fille" correct est plus bas.
Le GigIdx doit être coché dans les références pour utiliser la fonction Gignogne sans les modules de service. Mais ça me semble disparate de ne pas faire soit tout soit rien avec les compléments.
 
Dernière édition:

gbstyle

XLDnaute Impliqué
Cc cayé grosse mise à jour d'effectuer ouverture de l'userform ok
Gestion des nom de colonne identique aux déclaration ok

Par contre petit message d'erreur lors d'un souhait de modif
VB:
Private Sub CBnModifier_Click()
   CA.ValeursVers TVL
   CL.Lignes(LCou).Value = TVL '=> Erreur sur cette ligne
   End Sub
Est ce du a la commande resize ? afin de ne pas remplacer mes données calculé ?

Fichier mis à jour ;)
 

Dranreb

XLDnaute Barbatruc
Compilez votre projet VBA se temps en temps. Là il y a des appels à d'autres UserForm par des boutons qui n'existent pas.
Oui c'est curieux. Il faut croire que je n'avais pas testé. Il manque Range :
VB:
   CL.Lignes(LCou).Range.Value = TVL
Dailleurs plutôt comme ça, non ?
Code:
   CL.Lignes(LCou).Range.Resize(, 191).Value = TVL
 

gbstyle

XLDnaute Impliqué
en effet dis j'ai essayer de compiler mon proje mais je n'y arrive plus, peux tu me raffraichir la mémoire avec la manipulation faut que je me la note :/
Ensuite j'ai redimensionné pour ne pas modifié mes cellule calculer ca fonctionne par contre étant donner que j'ai suprimé le frame dans lequel se trouver mais valeur je n'ai plus le CL actualiser qui quand je clique dans un autre frame et revient sur mon frame d'origine ca me met a jour mes infos suite à ma modif.

Dois je remettre mes valeur dans un frame d'origine et crée un 2ème sur le coté juste pour faire un clic et suivre la mise à jour ?
j'avais ce type d'info qui me permetter de suivre l'actualisation :
If Not Me.ActiveControl Is FrmC Then CL.Stopper

Et deuxième point, dois je rajouter les format de valeur de type:
CA.Add TBxLoyer, Format(TVLF("Loyer"), "0.00 €")
pour affichage monétaire dans mes textbox?

j'ai essayé un compilage du projet vba un premier message de type : … mais je ne vois pas l'erreur ca doit pas etre la bonne manip que j'ai effectué
1585671011220.png
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Oui, en effet, il manquait = TVL.
La méthode Add des deux objets admet deux arguments facultatifs derrière le contrôle et la colonne. Ils sont normalement suggérés si on tape une virgule derrière cette dernière. Le mieux c'est de les nommer. Il y a Format:="0.00 €" par exemple et Mode:=Ce que tu veux, ce sera pour le retrouver plus tard. Mets y la même chose pour toutes les TextBox dont tu voudras changer les couleurs en fonction des valeurs.
 

gbstyle

XLDnaute Impliqué
salut Ch'ti 160 ca faisait longtemp ;)
Pour te répondre donc Dranreb je dois écrire comme ceci donc :
CA.Add TBxLoyer, "Loyer", (Format = "0.00 €")
CA.Add TBxLoyer, "Loyer" = Format(("Loyer"), "0.00 €")
CA.Add TBxLoyer, "Loyer", (Format("Loyer", "0,00 €"))
mais après plusieur essais j'ai dans le premier cas rien du tout
Sinon je n'ai pas très bien assimiler la différence entre Format et mode :/
 
Dernière édition:

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 215
Messages
2 086 329
Membres
103 184
dernier inscrit
Di Martino