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

  • Initiateur de la discussion Initiateur de la discussion gbstyle
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
Non il ne tique pas par contre, je pensais que la combobox lié me permettait de faire une selection par la désignation, mais a prioris quand je veux faire une recherche par sur Clic désignation il ne me complete pas la fiche article, tout fonctionne par la Ref article.
Par contre je ne suis pas sur que les infos du type famille / sous famille/ peuvent être intégrer dans la déclaration suivante : ou alors je veux bien que tu m'explique

Set CLsA = New ComboBoxLiées
CLsA.Plage [TblBaseArticles]
CLsA.Add Me.CBxRefArticle, 1
CLsA.Add Me.CboAFamille, 2
CLsA.Add Me.CboASousfamille, 3
CLsA.Add Me.CBxDsgnArticle, 4
CLsA.Add Me.CboAFournisseur, 5
CLsA.Actualiser
' Me.TxtReffournisseur.Value = Format(Application.WorksheetFunction.Max(Worksheets("Clients_Fournisseurs").Columns(1)) + 1, "0000")
' Me.TxtCréele.Value = Format(Now, "yyyy/mm/dd") 'Procédure permettant de mettre la date du jour dans ma txtbox Fournisseur client
' Me.TxtACréele.Value = Format(Now, "yyyy/mm/dd") 'Procédure permettant de mettre la date du jour dans ma txtbox Base Articles
' Me.TXtCmdDate.Value = Format(Now, "yyyy/mm/dd") 'Procédure permettant de mettre la date du jour dans ma txtbox Commande
' test = Format(Application.WorksheetFunction.Max(Worksheets("Suivis_Commande").Columns(1)) + 1, "00000")
' Me.CBxCmdRefCmd.Value = "C" & test
 
Oui, une sélection par désignation est possible. Mais tu a actuellement plein de doublons, alors ça ne suffit pas.
Pourquoi, ça ne marche pas la sélection de famille et sous-famille ?
Ne les mets pas avec MatcheRequired = True: C'est une source de problème.
 
Dernière édition:
Aprés vérification je n'ai pas de doublon dans les désignation articles mais c'est bon tout fonctionne c'est moi qui est fait des fausse manip dans mes rechercher intuitive, fallait que j'assimile la méthode mais en effet au fur et à mesure de mes sélection les proposition se réduisent
 
Bon maintenant, va falloir que j'arrive à définir la meme chose pour la base Fournisseur à partir de 2 hypothèse :
- Soit affichage par rapport à la selection de l'article
- Soit affichage par une recherche diverse de comboboxlié à la base fournisseur
JE vais regarder ca
Je reviens vers toi rapidement je vais essayer de partir sur la meme hypothèse que le fonctionnement article
 
À priori ça ne fait pas de différence. Sauf qu'il ne faut pas perdre de vue que la ComboBox réf fournisseur sera aussi utilisée dans la recherche de l'article. J'interviendrai pour positionner la fiche fournisseur sur celui d'un article sélectionné tous fournisseurs confondus.
Attention: ne laisse pas les deux CBxA et CBxF actifs en même temps s'ils gèrent tous deux la CBxFourmisseur. Risque de plantage sévère par saturation de la pile.
 
Mettre un CLsA.Stopper juste après le CLsA.Actualiser.
Après il faudra prévoir une Private Sub Frame2_Click() pour le Réactiver
J'espère que ça va marcher.
Rien n’empêche en passant de le renommer d'abord FrameA

Pareil pour le fournisseur.
 
BonjourDranreb,
ci joint l'ajout :

Private Sub Frame1_Click()
Set CLsF = New ComboBoxLiées
CLsF.Plage [TblFournisseur]
CLsF.Add Me.CBxRefFournisseur, 1
CLsF.Add Me.CboAFournisseur, 2
CLsF.Add Me.CBxGroupe, 3
CLsF.Actualiser


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

End Sub
Private Sub CLsF_BingoUn(ByVal Ligne As Long)
LCouA = Ligne
TVLF = CLsF.Lignes(LCouA).Range.Value
GarnirFournisseur
End Sub
Private Sub GarnirFournisseur()
Me.TxtAdresse.Text = TVLF(1, 4)
Me.TxtCP.Text = TVLF(1, 5)
Me.TxtVille.Text = TVLF(1, 6)
Me.TxtPays.Text = TVLF(1, 7)
Me.TxtNom.Text = TVLF(1, 8)
Me.TxtPrénom.Text = TVLF(1, 9)
Me.TxtTel.Text = TVLF(1, 10)
Me.TxtFax.Text = TVLF(1, 11)
Me.TxtPortable.Text = TVLF(1, 12)
Me.TxtEmail.Text = TVLF(1, 13)
Me.TxtSiteinternet.Text = TVLF(1, 14)
Me.TxtCréele.Text = TVLF(1, 15)
Me.CBxDelaislivraison.Text = TVLF(1, 16)
Me.CBxFraistransport.Text = TVLF(1, 17)
Me.CBxFacturation.Text = TVLF(1, 18)
Me.TxtNote.Text = TVLF(1, 19)

End Sub

Par contre j'ai mis un CLsa Stopper
j'ai créer le code sur Private Sub Frame1_Click()

J'ai voulu faire le test avec le formulaire fournisseur
mais bien entendu message d'erreur du type :
"permission refusé" après une selection fournisseur et un clic dans la zone du frame1
A te Lire
 
Dernière édition:
Bonjour
Les initialisation, actualisation et stoppage des CLs doivent tous être faits l'un derrière l'autre dans la UserForm_Initialize.
Les Frame_Clic seront je pense comme ça:
VB:
Private Sub FrameA_Click()
CLsF.Stopper: CLsC.Stopper: CLsA.Réactiver
End Sub
Private Sub FrameF_Click()
CLsA.Stopper: CLsC.Stopper: CLsF.Réactiver
End Sub
Private Sub FrameC_Click()
CLsA.Stopper: CLsF.Stopper: CLsC.Réactiver
End Sub
Il ne faut toujours aucun RowSource dans les ComboBox pris en charge par un ComboBoxLiées.
 
Ca donnerai à peu prés ca alors :

Private Sub UserForm_Initialize()
Set CLsA = New ComboBoxLiées
CLsA.Plage [TblBaseArticles]
CLsA.Add Me.CBxRefArticle, 1
CLsA.Add Me.CboAFamille, 2
CLsA.Add Me.CboASousfamille, 3
CLsA.Add Me.CBxDsgnArticle, 4
CLsA.Add Me.CboAFournisseur, 5
CLsA.Actualiser
Set CLsF = New ComboBoxLiées
CLsF.Plage [TblFournisseur]
CLsF.Add Me.CBxRefFournisseur, 1
CLsF.Add Me.CboAFournisseur, 2
CLsF.Actualiser

End Sub

Private Sub FrameA_Click()
CLsF.Stopper: CLsC.Stopper: CLsA.Réactiver
End Sub
Private Sub FrameF_Click()
CLsA.Stopper: CLsC.Stopper: CLsF.Réactiver
End Sub
Private Sub FrameC_Click()
CLsA.Stopper: CLsF.Stopper: CLsC.Réactiver
End Sub

Private Sub CLsA_Change(ByVal Complet As Boolean, ByVal NbrLgn As Long)

End Sub
Private Sub CLsA_BingoUn(ByVal Ligne As Long)
LCouA = Ligne
TVLA = CLsA.Lignes(LCouA).Range.Value
GarnirArticle
End Sub

Private Sub GarnirArticle()
Me.TxtALongueurcolisage.Text = TVLA(1, 6)
Me.TxtALargeurcolisage.Text = TVLA(1, 7)
Me.TxtAHauteurcolisage.Text = TVLA(1, 8)
Me.TxtACréele.Text = TVLA(1, 9)
Me.TxtANotes.Text = TVLA(1, 10)
Me.TxtADelaislivraison.Text = TVLA(1, 11)
Me.TxtAFraistransport.Text = TVLA(1, 12)
Me.TxtAFacturation.Text = TVLA(1, 13)
Me.CboAModedegestion.Text = TVLA(1, 14)
Me.TxtAminicommande.Text = TVLA(1, 15)
Me.TxtAPrixUnitHT.Text = TVLA(1, 16)
Me.TxtStockmini.Text = TVLA(1, 18)
Me.TxtDateSI.Text = TVLA(1, 19)
Me.TxtSI.Text = TVLA(1, 20)

End Sub

Private Sub CLsF_Change(ByVal Complet As Boolean, ByVal NbrLgn As Long)

End Sub
Private Sub CLsF_BingoUn(ByVal Ligne As Long)
LCouA = Ligne
TVLF = CLsF.Lignes(LCouA).Range.Value
GarnirFournisseur
End Sub
Private Sub GarnirFournisseur()

Me.CBxGroupe.Text = TVLF(1, 3)
Me.TxtAdresse.Text = TVLF(1, 4)
Me.TxtCP.Text = TVLF(1, 5)
Me.TxtVille.Text = TVLF(1, 6)
Me.TxtPays.Text = TVLF(1, 7)
Me.TxtNom.Text = TVLF(1, 8)
Me.TxtPrénom.Text = TVLF(1, 9)
Me.TxtTel.Text = TVLF(1, 10)
Me.TxtFax.Text = TVLF(1, 11)
Me.TxtPortable.Text = TVLF(1, 12)
Me.TxtEmail.Text = TVLF(1, 13)
Me.TxtSiteinternet.Text = TVLF(1, 14)
Me.TxtCréele.Text = TVLF(1, 15)
Me.CBxDelaislivraison.Text = TVLF(1, 16)
Me.CBxFraistransport.Text = TVLF(1, 17)
Me.CBxFacturation.Text = TVLF(1, 18)
Me.TxtNote.Text = TVLF(1, 19)

End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour