Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    mai 2008
    Messages
    2 595
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mai 2008
    Messages : 2 595
    Points : 4 138
    Points
    4 138

    Par défaut Contribution : recherche de taux de change en ligne

    Bonjour,

    Voici un bout de code qui permet d'aller chercher les taux de change des différentes devises et de mettre à jour une table locale (sans archiver les anciennes valeurs)
    Il peut s'appeler par exemple la nuit par une tache programmée ou à la demande

    Il nécessite d'appeler la référence "Microsoft XML" (et ADODB si comme moi vous utilisez ce protocole mais ça marche aussi en DAO bien sûr) et je crois que c'est tout

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    '16.5d LECTURE DE DEVISES AU FORMAT JSON
    Public Sub MajDevises
    Dim http As MSXML2.ServerXMLHTTP, Liste As String, rado As New ADODB.Recordset, nb As Integer, i As Long, s As String
    100 nb = 0 'nombre de devises mises à jour
    102 Liste = ""
     
        'Lecture du flux
        If Not Mode_debug Then On Error GoTo suite
    105 Set http = New MSXML2.ServerXMLHTTP
    '106 http.Open "GET", "http://api.fixer.io/latest", False
    106 http.Open "GET", "http://www.floatrates.com/daily/eur.json", False  '18.6 changement de service (le précédent nécessite une inscription)
    107 http.send ""
        'En cas de réussite, le code renvoyé est 200
    110 If http.Status <> 200 Then
    112   Liste = ""
    113   If bilan Then MsgBox "Erreur en lecture de devises code " & http.Status
          Exit Sub
        Else
    115   Liste = http.responseText
        End If
    116 Set http = Nothing
    'MsgBox Liste
    '{"code":"USD","alphaCode":"USD","numericCode":"840","name":"U.S. Dollar","rate":1.1652270771017,"date":"Thu, 5 Jul 2018 00:00:01 GMT","inverseRate":0.73651036638205},"gbp":{"code":"GBP","alphaCode":"GBP","numericCode":"826","name":"U.K. Pound Sterling","rate":0.88154654761594,"date":"Thu, 5 Jul 2018 00:00:01 GMT","inverseRate":0.97351844187397},"jpy":{"code":"JPY","alphaCode":"JPY","numericCode":"392","name":"Japanese Yen","rate":128.81482993197...
    suite:
    If Not Mode_debug Then On Error GoTo err 'Pour info ma gestion d'erreur standard nécessite de numéroter les lignes comme au 20e siècle !
    120 If Liste > "" Then
    122   rado.Open "SELECT * FROM devises WHERE code3<>'EUR' order by code3;", cnx, adOpenStatic
    124   While Not rado.EOF
    126     i = InStr(Liste, """" & rado!code3 & """:")
    128     If i > 0 Then
    129       While i < 30000 And Mid(Liste, i, 7) <> """rate"":"
                i = i + 1
              Wend
    130       If Mid(Liste, i, 7) = """rate"":" Then
    131         s = Mid(Liste, i + 7, 12)
    132         If InStr(s, ",") > 1 Then s = Left(s, InStr(s, ",") - 1) 'ne prend que le texte avant la virgule
    133         s = Replace(s, ".", ",")
    134         If IsNumeric(s) And s > "0" Then
    136           currentDB.Execute "UPDATE devises SET taux=" & Num(1 / s, 6) & ", Dmodif=date() WHERE code3='" & rado!code3 & "'", dbfailonerror
    138           nb = nb + 1
            End If: End If: End If
    140     rado.MoveNext
          Wend
        End If
        Set rado = Nothing
        Exit Sub
    err: Call message("Erreur " & err.Number & "/" & Erl & " dans api_stock.MajDevises(statut " & nb & ") : " & err.description)
    End Sub
    Ah oui Num est une procédure maison qui remplace , par . décimal et arrondit à n chiffres

    C'est ma 1e contribution, tout arrive
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  2. #2
    Membre expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    mai 2005
    Messages
    2 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mai 2005
    Messages : 2 122
    Points : 3 256
    Points
    3 256

    Par défaut

    Bravo Nico
    Voila une contribution originale et bien sympa.
    Je n'en ai pas l'utilité actuellement mais je m'en vais la tester ASAP !

    Cordialement
    "Always look at the bright side of life." Monty Python.

  3. #3
    Membre confirmé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    août 2004
    Messages
    513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : août 2004
    Messages : 513
    Points : 576
    Points
    576

    Par défaut recherche de taux de change en ligne

    Bonjour Nico,

    Merci de ta contribution!

    J'utilise aussi le web service FloatRates pour importer les cours de devises dans ma base de gestion commerciale, ce qui me permet de fabriquer des devis en plusieurs devises et de les facturer (vidéo ici).

    J'aurais cependant une question à te poser: as-tu des informations légales concernant l'émission de devis en devises?

    PS: Si çà t'intéresse, je tiens à ta disposition ma procédure d'import de devises, légèrement plus simple.
    Essayer. Rater. Essayer encore. Rater encore. Rater mieux. (Samuel Beckett)

  4. #4
    Membre chevronné Avatar de hyperion13
    Homme Profil pro
    Calot120 - Enseignant Post Bac
    Inscrit en
    octobre 2007
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Calot120 - Enseignant Post Bac
    Secteur : Enseignement

    Informations forums :
    Inscription : octobre 2007
    Messages : 1 187
    Points : 1 827
    Points
    1 827

    Par défaut

    Citation Envoyé par Ric500 Voir le message
    J'aurais cependant une question à te poser: as-tu des informations légales concernant l'émission de devis en devises?
    Salut. D'un point de vue organisation comptable ?
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    GMT+4 - 21°19'18" S - 055°25'32" E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse est pertinente. N'oubliez pas svp de clôturer le sujet en cliquant sur

  5. #5
    Membre confirmé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    août 2004
    Messages
    513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : août 2004
    Messages : 513
    Points : 576
    Points
    576

    Par défaut Contribution : recherche de taux de change en ligne

    @hyperion13

    Salut. D'un point de vue organisation comptable ?
    Exactement!

    Pour l'instant je stocke les valeurs en devises ET en Euros et je me sers par exemple de la valeur en Euros pour une balance agée.
    Essayer. Rater. Essayer encore. Rater encore. Rater mieux. (Samuel Beckett)

  6. #6
    Membre chevronné Avatar de hyperion13
    Homme Profil pro
    Calot120 - Enseignant Post Bac
    Inscrit en
    octobre 2007
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Calot120 - Enseignant Post Bac
    Secteur : Enseignement

    Informations forums :
    Inscription : octobre 2007
    Messages : 1 187
    Points : 1 827
    Points
    1 827

    Par défaut

    Je vais me dispenser de faire une énumération des BOFIP et compagnie sur les opérations en devises étrangères.
    En compta on ne retient que la parité Euro (Taux de change) et on joue avec les gains ou pertes sur le change du BC au règlement.
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    GMT+4 - 21°19'18" S - 055°25'32" E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse est pertinente. N'oubliez pas svp de clôturer le sujet en cliquant sur

  7. #7
    Membre confirmé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    août 2004
    Messages
    513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : août 2004
    Messages : 513
    Points : 576
    Points
    576

    Par défaut Contribution : recherche de taux de change en ligne

    Si je comprends bien, j'ai tout bon ?

    Je n'émets vers le client qu'une facture en devises, alors que je ne considère en compta que son alter-ego en Euros au taux de change en date du devis.

    Merci de ta réponse, Hyperion13, je vais quand même jeter un oeil sur ces fameux BOFIP ...

    PS: Est-il possible de facturer en devises... (site officiel de l'administration française)
    Essayer. Rater. Essayer encore. Rater encore. Rater mieux. (Samuel Beckett)

  8. #8
    Membre confirmé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    août 2004
    Messages
    513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : août 2004
    Messages : 513
    Points : 576
    Points
    576

    Par défaut Contribution : recherche de taux de change en ligne

    La notion "d'avant-dernier mercredi du mois" reste un peu nébuleuse pour moi, surtout si on est dans la première quinzaine dudit mois
    Essayer. Rater. Essayer encore. Rater encore. Rater mieux. (Samuel Beckett)

  9. #9
    Membre chevronné Avatar de hyperion13
    Homme Profil pro
    Calot120 - Enseignant Post Bac
    Inscrit en
    octobre 2007
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Calot120 - Enseignant Post Bac
    Secteur : Enseignement

    Informations forums :
    Inscription : octobre 2007
    Messages : 1 187
    Points : 1 827
    Points
    1 827

    Par défaut

    Dans les errements en vigueur il existe 4 méthodes pour la manipulation de la parité euro dans les documents commerciaux.
    Les douanes utilisent une méthode sur laquelle tu peux te baser.
    Les comptables ont leurs bibles PCG, CGI, Legifrance principalement.
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    GMT+4 - 21°19'18" S - 055°25'32" E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse est pertinente. N'oubliez pas svp de clôturer le sujet en cliquant sur

  10. #10
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    mai 2008
    Messages
    2 595
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mai 2008
    Messages : 2 595
    Points : 4 138
    Points
    4 138

    Par défaut

    Sans être spécialiste, c'est aussi ce que j'avais retenu : toujours stocker la contre-valeur en euros quand on émet une facture (ou un devis ?) en devise
    C'est d'ailleurs pour cette raison que je n'archive pas l'historique des taux de change !
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  11. #11
    Membre confirmé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    août 2004
    Messages
    513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : août 2004
    Messages : 513
    Points : 576
    Points
    576

    Par défaut Contribution : recherche de taux de change en ligne

    Merci Hyperion13,

    Je vais gratter le sujet, mais sans être comptable je sens que çà va être une partie de plaisir avec tous ces acronymes.

    @Nico84,

    Je stocke les changes (avec possibilité de RAZ) pour vérifier les courbes de variation des taux afin d'optimiser les achats à l'étranger.
    Essayer. Rater. Essayer encore. Rater encore. Rater mieux. (Samuel Beckett)

Discussions similaires

  1. Taux de change en ligne et automatisation avec Access
    Par ange180190 dans le forum Access
    Réponses: 10
    Dernier message: 02/02/2016, 15h44
  2. XML + Taux de Change
    Par Ylias dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 15/08/2009, 01h46
  3. Récupération Taux de Change
    Par Ylias dans le forum Regex
    Réponses: 3
    Dernier message: 25/01/2006, 21h13
  4. Recherche de composant pour tracer des lignes
    Par n1portki dans le forum Composants VCL
    Réponses: 5
    Dernier message: 21/09/2005, 02h44
  5. [WebServices] - Taux de change
    Par malbaladejo dans le forum Général Dotnet
    Réponses: 7
    Dernier message: 03/02/2004, 17h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo