Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Cellule format décimal suite saisie via userform

frasylest

XLDnaute Nouveau
Bonsoir à tous, après maintes recherches sur le forum, je n'ai pas trouvé la réponse, donc je vous pose mon problème, je joins un fichier exemple.
Je voudais, si c'est posible, que quand je saisis en décimal via l'userform et que j'enregistre, la cellule de destination se formate en nombre décimal.
Merci de vos connaissances sur ce sujet, cordialement Sylvain
 

Pièces jointes

  • essai userform mef.xlsm
    25.1 KB · Affichages: 8
Solution
Toutes mes exxcuses pour cette questtion ... idiote, ma fille vient de me donner la solution, il faut que je saisisse un POINT . et non une VIRGULE , dans la textbox de mon userform. Encore milles pardons, mes neurones foncionnenet moins buen, cordialement Sylvain

frasylest

XLDnaute Nouveau
Toutes mes exxcuses pour cette questtion ... idiote, ma fille vient de me donner la solution, il faut que je saisisse un POINT . et non une VIRGULE , dans la textbox de mon userform. Encore milles pardons, mes neurones foncionnenet moins buen, cordialement Sylvain
 

vgendron

XLDnaute Barbatruc
Hello

à savoir
sur le clavier tu as deux touches distinctes pour la virgule (touche ?,) et le point (touche . ; )
ET tu as sur le pavé numérique une touche (. suppr) . Cette touche.. malgré le point dessiné, inscrit le séparateur numérique de l'application..
donc;. selon que ton excel est configuré avec un point ou une virgule, tu n'auras pas le meme caractère..

ET VBA utilise (quelque soit la version Fr ou En) le point en tant que séparateur. parce que VBA est Anglais

pour pouvoir utiliser le pavé numérique sans pb, dans ta fonction tu peux modifier comme ceci
VB:
Function copy_from_form_without_repeat_Ref()
Dim LastRowValue As Long
Dim sep As String
sep = Application.DecimalSeparator 'récupère le separateur décimail excel
    LastRowValue = ActiveWorkbook.Sheets("Feuil1").Range("A1000000").End(xlUp).Value
    TextBox1 = LastRowValue + 1
    Dim rng1 As Range
    Dim str_search As String
    str_search = TextBox2.Value
    ActiveWorkbook.Sheets("Feuil1").Activate
    Set rng1 = Sheets("Feuil1").Range("B:B").Find(str_search, , xlValues, xlWhole)
    If rng1 Is Nothing Then
    Dim LastRow As Long
    LastRow = ActiveWorkbook.Sheets("Feuil1").Range("A1000000").End(xlUp).Row
    LastRow = LastRow + 1
    With ActiveWorkbook.Sheets("Feuil1")
        .Range("A" & LastRow).Value = TextBox1.Value
        .Range("B" & LastRow).Value = CDbl(Replace(TextBox2.Value, ",", sep)) 'remplace la virgule du clavier par le séparateur num, et on transforme le tout en nombre
        .Range("C" & LastRow).Value = TextBox3.Value
        .Range("D" & LastRow).Value = TextBox4.Value
        '.Range("E" & LastRow).Value = TextBox5.Value
        '.Range("F" & LastRow).Value = TextBox6.Value
    End With
    Else
        MsgBox str_search & " is Found"
    End If
End Function
 

job75

XLDnaute Barbatruc
Bonjour frasylest, vgendron, le forum,

OK mais il me semble préférable d'utiliser dans la TextBox :
VB:
.Range("B" & LastRow) = Replace(TextBox2, ",", ".")
qui ne crée pas d'erreur si l'on entre "aaa"...

Par ailleurs dans ce genre d'exercice on utilise une procédure Sub, pas une Function.

A+
 

vgendron

XLDnaute Barbatruc
juste pour le fun

avec un module de classe pour controler les saisies des CP, tel et poids
selon le type d'info saisie, on met le bon tag dans la propriété du textbox
ensuite, donner un nom à ton tableau (ici j'ai choisi "t_SuiviPoids") et l'exploiter dans le code (Tableau Structuré = Listobjects)


comme le dit Job (salut) en général, une fonction sert à retourner un résultat (pas obligé, mais c'est sa vocation) donc la.. une sub est suffisante

tes deux textbox qui calculent l'évolution du poids..1) j'ai pas vu comment tu avais empéché toute saisie dedans..?? et de toute façon, ils ne servent à rien puisque aucun calcul n'est effectué

ensuite.. l'incrémentation auto.. se fait à l'enregistretment?? étrange.. et juste sur une évolution du poids?
à priori, quand on suit l'évoution du poids, on ajoute une info date.. non?
 

Pièces jointes

  • essai userform mef.xlsm
    39.7 KB · Affichages: 1

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…