Comment effectuer des appels d’API dans VBA ?

Pour effectuer des appels d’API dans VBA (Visual Basic for Applications), vous pouvez utiliser l’objet `XMLHTTP` ou `WinHTTP`. Voici un exemple simple qui utilise `XMLHTTP` pour effectuer un appel GET à une API :

Exemple : Appel API avec `XMLHTTP`

  • Ouvrez l’éditeur VBA
    • Dans Excel, Word, ou une autre application Office, appuyez sur `ALT` + `F11` pour ouvrir l’éditeur VBA.
  • Ajoutez un module
    • Cliquez sur `Insertion` > `Module` pour ajouter un nouveau module où vous allez écrire votre code.
  • Écrivez le code VBA

Voici un exemple de code qui effectue un appel GET à une API publique :

   Sub GetAPIData()
       Dim http As Object
       Dim url As String
       Dim response As String

       ' Initialisation de l'objet XMLHTTP
       Set http = CreateObject("MSXML2.XMLHTTP")
       url = "https://api.exemple.com/data" ' Remplacez par l'URL de votre API

       ' Ouvrir la connexion avec la méthode GET
       http.Open "GET", url, False

       ' Envoyer la requête
       http.send

       ' Obtenir la réponse
       response = http.responseText

       ' Afficher la réponse dans une MsgBox pour cet exemple
       MsgBox response

       ' Libérer l'objet HTTP
       Set http = Nothing
   End Sub
  • Exécutez le code
    • Appuyez sur `F5` ou allez dans le menu `Exécution` > `Exécuter Sub/UserForm` pour exécuter votre macro.

Notes Importantes

  • Références : Pour certaines versions d’Excel, vous devez peut-être ajouter une référence à la bibliothèque “Microsoft XML, v6.0”. Pour ce faire, allez dans `Outils` > `Références` dans l’éditeur VBA et cochez la case correspondante.
  • Gestion des erreurs : Pensez à ajouter un bloc `On Error` pour gérer les erreurs dans votre code, spécialement lorsqu’il s’agit d’appels réseau.
  • API Sécurisées : Si l’API nécessite une authentification, vous devrez ajouter des en-têtes appropriés (comme `Authorization`) en utilisant `http.setRequestHeader`.

Cet exemple est pour une requête GET simple. Pour d’autres types de requêtes comme POST, vous devrez souvent envoyer des données supplémentaires, que vous pouvez inclure en modifiant les paramètres de `http.Open` et `http.send`.

Unlock Your Potential

Excel

Basic - Advanced

Access

Access Basic - Advanced

Power BI

Power BI Basic - Advanced

Help us grow the project