Problème de conversion textbox en nombre sur Userform
Bonjour et merci d'avance des précieux conseils que vous pourrez me proposer.
Je suis entrain de metre en place un classeur de gestion de clients et de prise de rendez-vous et de gestion des tarifs+ factures.
Dans mon userform2 , la "CboLot"(qui est une textbox car j'avais deja crée plein de fonction la considérant en combobox avant de changer son format) et CboDoc(aussi une textbox) doivent etre retranscrite en nombre et non en texte après avoir appuyer sur le bouton de commande "CmdAjout" qui ajoute une ligne de rendez vous. j'ai essayé ceci mais le code ne fonctionne pas bien qu'il ne renvoie pas d'erreur.
(Columns("K:L").Select
Selection.NumberFormat = "0")
" Après l'ajout, les cellules restent sous format texte." voici le reste du code pour bien comprendre:
Private Sub Cmdajout_Click() 'Pour le bouton Nouveau rdv
Dim L As Integer
If MsgBox("Confirmez-vous l'ajout du Rendez-vous ?", vbYesNo, "Demande de confirmation d'ajout") = vbYes Then
L = Sheets("RDV").Range("c65536").End(xlUp).Row + 1
Sheets("RDV").Range("D" & L).Value = CVDate(Me.TxtDate)
Sheets("RDV").Range("E" & L).Value = TxtInfo
Sheets("RDV").Range("K" & L).Value = CboLot
Sheets("RDV").Range("L" & L).Value = CboDoc
Sheets("RDV").Range("B" & L).Value = CboNom2
Sheets("RDV").Range("F" & L).Value = TxtBien
Sheets("RDV").Range("G" & L).Value = TxtPostal
Sheets("RDV").Range("H" & L).Value = TxtNo
Sheets("RDV").Range("I" & L).Value = TxtDestinataire
Sheets("RDV").Range("S" & L).Value = TxtVille
Sheets("RDV").Range("C" & L).Value = CboFacture
Columns("K:L").Select
Selection.NumberFormat = "0"
end sub.
J'avais également trouvé cette solution qui ne me conviens pas non plus:
Sub essai() Dim Tabl(), i As Long Tabl = Range("K2:k100") For i = LBound(Tabl, 1) To UBound(Tabl, 1) Tabl(i, 1) = CInt(Tabl(i, 1)) 'remplacer CInt par CDbl si nombres décimaux Next Range("k2").Resize(UBound(Tabl, 1), 1) = Tabl End Sub
Sub essai() Dim Tabl(), i As Long Tabl = Range("L2:L100") For i = LBound(Tabl, 1) To UBound(Tabl, 1) Tabl(i, 1) = CInt(Tabl(i, 1)) 'remplacer CInt par CDbl si nombres décimaux Next Range("L2").Resize(UBound(Tabl, 1), 1) = Tabl End Sub
Qui fait bien son travail de conversion mais qui me crée des lignes non voulues dans mon tableau, jusqu'à la ligne 100 .... alors que je ne souhaite pas créer de ligne supplémentaire, juste modifier les existantes!
Bref je pense qu'il faudrait modifier ce dernier code afin de lui demander de ne modifier le format que de la dernière ligne K et L ( ou du tableau dejà existant)
Dites moi s'il vous plait si je me trompe de jugement et de méthode !
Merci.
Une copie du ficher complet en annexes.
Bonjour,
As-tu essayé Cdbl devant le contenu de tes textbox à transformer en numérique?
Sheets("RDV").Range("L" & L).Value =Cdbl(CboDoc.value)
Cordialement
ddetp88
Bonsoir,
J'allais ajouter une série de solutions... mais pris d'un doute, j'ai fait un test.
Alors, avec ta syntaxe = TextBox1 les nombres sont transférés en format texte
mais en mettant = TextBox1.Value ils sont transférés en tant que nombres.
Pour les nombres décimaux, dans ce cas ils sont transférés en tant que nombres si dans le TextBox le séparateur décimal était le point (qui se transforme alors en virgule) ; s'il sagissait d'une virgule ils sont transférés en format texte.
Cordialement
Ferrand
Ton code règle effectivement le problème de conversion de texte en nombre !
Merci beaucoup pour ta rapidité et ton aide ddetp88! Sujet résolu !