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é
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
 

Dranreb

XLDnaute Barbatruc
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:

gbstyle

XLDnaute Impliqué
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
 

gbstyle

XLDnaute Impliqué
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
 

Dranreb

XLDnaute Barbatruc
À 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.
 

Dranreb

XLDnaute Barbatruc
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.
 

gbstyle

XLDnaute Impliqué
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:

Dranreb

XLDnaute Barbatruc
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.
 

gbstyle

XLDnaute Impliqué
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
 

Statistiques des forums

Discussions
312 300
Messages
2 087 020
Membres
103 435
dernier inscrit
azizou31