![](https://codky.com/wp-content/uploads/2024/11/2820-1024x576.png)
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`.