Je bute sur un problème qui est le suivant.
Je récupère des valeurs décimales depuis une table mysql à l'aide d'une macro .
Lorsque je les écris dans leur cellule respective, j'obtiens un entier quelque soit le format de la cellule.
Voici le code pour lire et affecter ces cellules
Code : Tout sélectionner
'-----------------------------------------------------------------------
'Recherche des transporteurs et l'affecter dans la plage A51:F100
'-----------------------------------------------------------------------
Function ListeT(NomFeuille, Requete)
dim maRequete As Object, resuQuery As Object
dim SQL As String, monSignet As Variant
dim tabResultat As Variant, uneLigne As Variant
dim l As long
dim LeCellRange As Object, FeuilleRes As Object, maCellule As Object
Requete=Trim(Requete)
ConnecterSource
maRequete = maConnexion.CreateStatement()
resuQuery = maRequete.executeQuery(Requete)
FeuilleRes=thisComponent.sheets.getByName(NomFeuille)
LeCellRange=FeuilleRes.getCellRangeByName("a51:f100")
LeCellRange.ClearContents(1+2+4)
l=0
If Not IsNull(resuQuery) Then
while resuQuery.next
'Affiche le contenu du 1ier et du deuxième champ
maCellule = LeCellRange.getCellByPosition(0,l)
maCellule.String = resuQuery.GetString(1)
maCellule = LeCellRange.getCellByPosition(1,l)
maCellule.Value = resuQuery.GetInt(2)
maCellule = LeCellRange.getCellByPosition(2,l)
maCellule.Value = resuQuery.GetInt(3)
'ici on récupère un entier avec GetDouble
maCellule = LeCellRange.getCellByPosition(3,l)
maCellule.Value = resuQuery.GetDouble(4)
maCellule = LeCellRange.getCellByPosition(4,l)
'ici on récupère aussi un entier avec Columns(n).Double
maCellule.Value = resuQuery.Columns(4).Double
maCellule = LeCellRange.getCellByPosition(5,l)
maCellule.Value = resuQuery.Columns(5).Double
maCellule = LeCellRange.getCellByPosition(6,l)
maCellule.Value = resuQuery.Columns(6).Double
l=l+1
wend
End If
DeconnecterSource
End functionCode : Tout sélectionner
ListeT("Technique", "SELECT nom, idx_tra, poidspalette, surcharge /100, forfait *100/100, participe_surete *100/100 FROM cr_transporteurs")
Code : Tout sélectionner
CREATE TABLE IF NOT EXISTS `cr_transporteurs` (
`idx_tra` int(11) NOT NULL auto_increment,
`nom` varchar(45) collate utf8_bin NOT NULL,
`poidspalette` int(11) default NULL,
`surcharge` double(5,2) default NULL,
`forfait` double(5,2) default NULL,
`participe_surete` double(5,2) default NULL,
PRIMARY KEY (`idx_tra`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=2 ;
Je soupçonne un problème de point ou virgule pour les décimales mais je n'arrive pas à voir où !!!
Cordialement



