Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 09/03/2010, 11h21   #1
Membre confirmé
 
Avatar de bosk1000
 
Inscription : juin 2008
Messages : 526
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 526
Points : 257
Points : 257
Par défaut probleme comprehension entre virgule et point dans un formulaire

bonjour a tous

voici mon souci

une listbox, me fait apparaitre sur une première colonne un choix de reference et sur la deuxieme colonne le prix de la référence.
Ce prix apparaissant avec une virgule pour les centimes

lorsque je double clique, ce prix viens allimenter une textbox
le souci c'est qu'il vien avec la virgule, hors il faudrait qu'il vienne avec un point

voici le code pour le double click
Code :
1
2
3
4
5
6
7
8
9
 
Private Sub list_operation_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
I = list_operation.ListIndex
'j'alimente ma combobox avec le contenu de la première colonne
'de la listbox
pvht = list_operation.Column(0, I)
'Je donne a la textbox la valeur de la 2ème colonne de la listbox
boxref = list_operation.Column(1, I)
End Sub
le souci est sur boxref

a moins qu'une solution plus simple se trouve lors de la création de chaque référence, puisqu'elle se fait lors de la saisie d'une nouvelle reference dans ce formulaire
comme ceci
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
Private Sub boxref_AfterUpdate()
Dim c As Range
Dim LastLig As Long
With Sheets("BDD")
    LastLig = .Cells(Rows.Count, 5).End(xlUp).Row
    Set c = .Range("E2:E" & LastLig).Find(boxref, LookIn:=xlValues, lookat:=xlWhole)
    If c Is Nothing Then
        .Range("E" & LastLig + 1) = boxref
        .Range("A" & LastLig + 1) = boxtype
        .Range("B" & LastLig + 1) = boxmarque
        .Range("C" & LastLig + 1) = boxproduit
        .Range("D" & LastLig + 1) = Val(pvht.Value)
        .Range("D" & LastLig + 1).NumberFormat = "#,##0.00"
 
        boxtyte.ListIndex = -1
        boxtyte.RowSource = "BDD!E2:E" & LastLig + 1
        boxtyte.Value = boxtyte.List(boxtyte.ListCount - 1)
    Else
        boxtyte.Value = boxref.Value
    End If
    Set c = Nothing
End With
End Sub
et donc peu etre en manipulant la ligne avec numberformat, existe-til une solution simple
bosk1000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2010, 11h30   #2
Futur Membre du Club
 
Inscription : juin 2009
Messages : 20
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 20
Points : 19
Points : 19
Si je ne me trompe pas, tu peux utiliser :
Code :
boxref = Replace(list_operation.Column(1, I), ",", ".")
Galatane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2010, 11h50   #3
Membre confirmé
 
Avatar de bosk1000
 
Inscription : juin 2008
Messages : 526
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 526
Points : 257
Points : 257
merci

as-tu une idée ou je devrais placé ta ligne de code ?
bosk1000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2010, 11h59   #4
Futur Membre du Club
 
Inscription : juin 2009
Messages : 20
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 20
Points : 19
Points : 19
C'est là le hic ^^

Au moment ou tu recupere la valeur dans la cellule et que tu le copie dans ta variable. C'est tout ce que je sais te dire, car j'ai du mal avec ton code (j'ai pas sufisement de connaissance, desolé)
Galatane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2010, 07h12   #5
Membre confirmé
 
Avatar de bosk1000
 
Inscription : juin 2008
Messages : 526
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 526
Points : 257
Points : 257
trouvé
merci
la solution
modification de :

Code :
1
2
3
4
5
6
 
.Range("D" & LastLig + 1) = Val(pvht.Value)
 
en
 
.Range("D" & LastLig + 1) = pvht
l'erreur venait bien de la source
bosk1000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 05h07.


 
 
 
 
Partenaires

Hébergement Web