Bonjour à tous,
j’ai une base de données de prospects sur Excel (raison sociale, adresse complète, numéro de téléphone fixe à 10 chiffres). J’ai besoin d’automatiser leur éligibilité à la fibre de façon simple et rapide… Après plusieurs essais sur différents forums, Chat Gpt et autres, je suis dans l’impasse… Quelqu’un serait-il expert en codage (VBA pour module Excel) et pourrait m’aider, svp ?, c’est capital pour ma poursuite de missions au sein de mon entreprise…
Merci d’avance
Hello @AnthonyJoutel,
J’aurais eu tendance à le faire dans Google Sheets avec Apps Script.
Tu as essayé de faire ça avec Chatgpt ? N’hésite pas à lui retourner les erreurs que tu rencontres.
Il faut que tu trouve un service qui permet de tester l’éligibilité en API : FAI habituels(?) ou peut-être des services de speed test.
VBA code for fiber eligibility - Model: GPT-4
Voici sa réponse avec ta demande (au risque d’en faire râler certains ) :
Bonjour,
Je peux vous aider à créer un code VBA simple pour vérifier l’éligibilité à la fibre de vos prospects. Vous pouvez utiliser une API pour obtenir cette information. Par exemple, vous pouvez utiliser l’API d’un fournisseur de services Internet (FSI) pour vérifier l’éligibilité à la fibre.
Voici un exemple de code VBA pour interroger une API fictive et vérifier l’éligibilité à la fibre en fonction de l’adresse de chaque prospect. Remplacez l’URL « http://api.example.com/checkFiberEligibility » par l’URL de l’API réelle que vous utiliserez.
Option Explicit
Sub VerifierEligibiliteFibre()
Dim ws As Worksheet
Dim LastRow As Long
Dim i As Long
Dim xmlhttp As Object
Dim jsonResponse As Object
Dim apiURL As String
Set ws = ThisWorkbook.Worksheets("Feuil1") ' Remplacez "Feuil1" par le nom de la feuille contenant vos données
LastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
For i = 2 To LastRow ' Commence à 2 pour ignorer l'en-tête de la colonne
apiURL = "http://api.example.com/checkFiberEligibility?address=" & ws.Cells(i, 2).Value
Set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP.6.0")
xmlhttp.Open "GET", apiURL, False
xmlhttp.setRequestHeader "Content-Type", "application/json"
xmlhttp.send
Set jsonResponse = ParseJson(xmlhttp.responseText)
If jsonResponse("eligibility") = "true" Then
ws.Cells(i, 5).Value = "Éligible"
Else
ws.Cells(i, 5).Value = "Non éligible"
End If
Next i
End Sub
Vous devrez également ajouter une référence à la bibliothèque « Microsoft Scripting Runtime » pour utiliser la fonction ParseJson. Pour ce faire, dans l’éditeur VBA :
- Allez dans le menu « Outils » > « Références ».
- Cherchez « Microsoft Scripting Runtime » dans la liste.
- Cochez la case à côté de « Microsoft Scripting Runtime » et cliquez sur « OK ».
Assurez-vous de remplacer l’URL de l’API et les références de cellules appropriées en fonction de la structure de votre feuille de calcul. Ce code suppose que l’adresse est dans la colonne B et que le résultat de l’éligibilité sera inscrit dans la colonne E.
Veuillez noter que ce code est un exemple et qu’il devra être adapté à vos besoins spécifiques, en fonction de l’API que vous utilisez et des données dont vous disposez.
Ok merci pour votre retour si rapide…alors dans mon VBA, en ayant adapté votre code; il m’en ressort l’erreur suivante : Erreur de compilation/Sub ou fonction non définie avec ParseJson surlignée
Après ça je te laisse voir avec ChatGPT directement
Sa réponse :
Je m’excuse pour la confusion. J’ai omis de mentionner que vous devez ajouter une référence à la bibliothèque « Microsoft Scripting Runtime » pour utiliser la fonction ParseJson
. Suivez ces étapes pour ajouter la référence nécessaire et résoudre l’erreur de compilation :
- Ouvrez l’éditeur VBA (Visual Basic for Applications) en appuyant sur
Alt
+F11
dans Excel. - Dans l’éditeur VBA, accédez au menu « Outils » > « Références ».
- Dans la boîte de dialogue « Références », faites défiler la liste jusqu’à ce que vous trouviez « Microsoft Scripting Runtime ».
- Cochez la case à côté de « Microsoft Scripting Runtime » et cliquez sur « OK ».
Après avoir ajouté la référence à la bibliothèque, vous devriez être en mesure d’utiliser la fonction ParseJson
sans erreur de compilation.
Si vous ne souhaitez pas utiliser la bibliothèque « Microsoft Scripting Runtime », vous pouvez également remplacer la fonction ParseJson
par la fonction suivante :
Function JsonDecode(jsonString As String) As Object
Dim scriptControl As Object
Set scriptControl = CreateObject("ScriptControl")
scriptControl.Language = "JScript"
scriptControl.AddCode "function jsonDecode(jsonString) { return eval('(' + jsonString + ')'); }"
Set JsonDecode = scriptControl.Run("jsonDecode", jsonString)
End Function
Et dans la partie principale du code, remplacez :
Set jsonResponse = ParseJson(xmlhttp.responseText)
par
Set jsonResponse = JsonDecode(xmlhttp.responseText)
Cette alternative utilise un contrôle de script JScript pour analyser la chaîne JSON et ne nécessite pas de référence supplémentaire.
Bonjour, il y a plus simple avec une formule si(; tu peux imbriquer jusqu’à 10 si , soit vérifier que la localisation respecte 10 critère)
Voici l’api du gouvernement pour la couverture de fibre
Ce sujet a été automatiquement fermé après 730 jours. Aucune réponse n’est permise dorénavant.