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é
Au bureau je crois que ca plante à partir du Clsc.ValeurVers Tvlc ou juste aprés
j'incorpore donc ton code juste aprés cette instruction.

Ce qui est hallucinant c'est que meme avec des erreur potentiel à l'instant ou je te parle tout les fichiers fonctionne sur mon office 2010
Quel genre de minuscule classeur tu souhaiterai que je fasse ?
 

Dranreb

XLDnaute Barbatruc
Il faudrait un classeur avec juste une plage de 10 lignes mise sous forme de tableau,
Et dans une macro, ben simplement écrire une ligne de valeurs sur la 11ième. Si ça ça plante, il y a de quoi remonter les bret… heu l'incident à Microsoft. Naturellement si ça ne plante pas il faut compliquer en essayant d'abord de le faire depuis un UserForm, etc. jusqu'à ce que ça plante.
 

Dranreb

XLDnaute Barbatruc
Moi j'aimerais même savoir si cette simple procédure ne plante pas déjà :
VB:
Sub VérifBogue1()
Dim LOt As ListObject, Rng As Range
Set LOt = ActiveSheet.ListObjects(1)
Set Rng = LOt.HeaderRowRange.Offset(LOt.ListRows.Count + 1)
Rng.Value = "X"
End Sub
 

Dranreb

XLDnaute Barbatruc
Ben il faut se rapprocher progressivement du cas de figure où ça plante.
Comme ça ça marche toujour ?
VB:
Option Explicit
Private LOt As ListObject, Rng As Range
Private Sub UserForm_Initialize()
Set LOt = ActiveSheet.ListObjects(1)
End Sub
Private Sub CBnValiderF_Click()
Set Rng = LOt.HeaderRowRange.Offset(LOt.ListRows.Count + 1)
Rng.Value = "X"
End Sub
 

Dranreb

XLDnaute Barbatruc
L'étape suivante c'est d'ajouter un nouveau module de classe avec ce code :
VB:
Option Explicit
Public PlgTablo As Range
Public Sub Init()
Set PlgTablo = ActiveSheet.ListObjects(1).DataBodyRange
End Sub
Et dans l'UserForm :
VB:
Option Explicit
Private CLs1 As Classe1
Private Sub UserForm_Initialize()
Set CLs1 = New Classe1
CLs1.Init
End Sub
Private Sub CBnValiderF_Click()
CLs1.PlgTablo.Rows(CLs1.PlgTablo.Rows.Count + 1).Value = "X"
End Sub
Mais ça commence à m'impatienter…
Es-tu sûr que ton classeur d'application plante toujours ?
Que disent les msgbox, les espions, tout ça ?
 

Statistiques des forums

Discussions
311 712
Messages
2 081 802
Membres
101 819
dernier inscrit
lukumubarth