Problème avec Macro Excel

Résolu/Fermé
Kriss - 20 janv. 2009 à 20:30
 Kriss - 21 janv. 2009 à 10:34
Bonjour,

N'étant pas du tout programmeur et à l'origine du fichier dont je vais vous parler, je me heurte à un petit problème sur Excel.

Pour résumer:

J'ai une base access qui me gère des données tel que base des noms, offres commerciales...
Cette base access collecte aussi mes données qui elles sont rentrées via un fichier excel.
Tous les champs fonctionnent à l'exception du champs "gross rate" car j'ai changé mes prix en ajoutant des chiffres après la virgule.

Mon problème, lorsque la macro va chercher mes datas, elle arrondit systématique mes prix... ce qui est un gros problème pour moi.

voici le code qui doit poser problème:

Public Function Lookup_Rate(strFormat As String, strSite As String) As Long
Dim strSQL As String
Dim rsData As Recordset

strSQL = "SELECT [" & strFormat & "], Thematic_Content FROM Offers WHERE Thematic_Content = '" & Replace(strSite, "'", "''") & "'"
Set rsData = New ADODB.Recordset
rsData.Open strSQL, strConnect, adOpenStatic, adLockReadOnly

If Not IsNull(rsData.Fields(0)) And Not IsNull(rsData.Fields(1)) Then
Lookup_Rate = rsData.Fields(0)
ElseIf IsNull(rsData.Fields(0)) And Not IsNull(rsData.Fields(1)) Then
MsgBox "Format not available on this thematic content!"
Else
Exit Function
End If
End Function

------------------------------------

Pouvez vous m'aider ? honnêtement je ne comprends rien a ce qui est écrit ci dessus.

merci d'avance.
A voir également:

2 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 712
21 janv. 2009 à 08:54
bonjour

Si dans ta base access tu as défini ton champ en "nombre entier" il ne faut pas t'étonner qu'il n'accepte pas les décimales : ne serait-ce pas là le problème ?
0
Bonjour,

merci pour ton retour.

Tous mes champs sont bien définis dans Access. Je pense que le problème vient du code de VB sur Excel.
J'ai fait plusieurs essais avec differents types de champs (ex : nombre, numerique avec plus ou moins de décimale...)
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
21 janv. 2009 à 10:00
Bonjour Kriis, Gbinforme

Ta fonction est"typée" en"Long"

donc passe la en "double" (je me méfie du "single" mais...)

Public Function Lookup_Rate(strFormat As String, strSite As String) As Double
Dim strSQL As String
0
Hello Michel,

Merci beaucoup pour ce petit conseil !
Cela marche à merveille.


Kriss
0