Nombre a virgule

Fermé
Cap_ou_pas_cap - Modifié par pijaku le 3/10/2014 à 10:51
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 3 oct. 2014 à 10:59
Bonjour,

J'ai un petit probleme au niveau de mon Userform

J'aimerais un peu d'aide si vous plait, je fais un lsitebox avec le code suivant,

Set f = Sheets("FP") 'On rentre la feuil
  Set MonDico = CreateObject("Scripting.Dictionary") ' On cree le liste de dictionnaire
  a = f.Range("J3:J" & f.[J65536].End(xlUp).Row)   ' tableau a(n,1) pour rapidité
  For i = LBound(a) To UBound(a)
    If a(i, 1) <> "" Then MonDico(a(i, 1)) = Val(a(i, 1))
  Next i
  temp = MonDico.items
  Call Tri(temp, LBound(temp), UBound(temp))

  Me.ListBox2.List = temp


Le soucis c'est que dans mon tableau exel j'ai des chiffre a virgule mais quand je mets play dans mon userform il met qu'un nombre entier sans les virgule...

Pouvez vous m'aider ? deuxieme question est ce possible de faire plusieurs chooix avec une liste box et mon code dans ma feuille final du formulaire ?

Cordialement,

MErci encore

1 réponse

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 752
3 oct. 2014 à 10:59
Bonjour,

1- Lorsque l'on copie-colle un code fait par quelqu'un d'autre, on cite ces sources.
Pour votre cas, merci donc d'ajouter dans votre code ces 2 lignes :
'Sources :
'http://boisgontierjacques.free.fr/pages_site/Dictionnaire.htm#AlimenterListe 


2- pour votre souci de virgule, regardez ce petit (tout petit) test :
Sub test()
Dim mavaleur As Double
mavaleur = 12.75
MsgBox mavaleur
MsgBox Val(12.75)
End Sub


3- Pour créer une ListBox avec sélection multiple, ajoutez cette ligne dans le UserForm_Initialize() :

ListBox1.MultiSelect = fmMultiSelectMulti


4- pour placer les éléments sélectionnés dans votre feuille :

Private Sub commandButton1_Click()
'Sources :
'http://silkyroad.developpez.com/VBA/ControlesUserForm/#LII-G
    Dim i As Byte, Ligne As Long, Col As Integer
    
    'A ADAPTER : nom de la feuille et de la colonne
    Ligne = Sheets("Feuil3").Range("A" & Rows.Count).End(xlUp).Row + 1
    'A ADAPTER : commence en colonne B (2)
    Col = 2
    'boucle sur les éléments de la listbox
    For i = 0 To ListBox1.ListCount - 1
        If ListBox1.Selected(i) = True Then Cells(Ligne, Col) = ListBox1.List(i): Col = Col + 1
    Next i
End Sub

0