Autres soucis de codage VBA

farnomar

XLDnaute Nouveau
Bonjour la communauté,

C'est la première fois que je fais appel à vous et pour tous ceux qui me auront pris la peine de se pencher sur mon sujet je vous remercie d'avance.
Alors voici mon soucis:
je dois réaliser des lignes de codes mais demeurant d'apprendre je m'y suis lancé.
Alors vous trouverez dans le fichier Excel les informations essentiels
mais je raconte quand même:
Je fais une extraction d'un fichier API (pipedrive) et comme l'extraction est une ligne de chaine de caractère " un peu galère"
je dois les mettre dans les bonne disposition pour en faire un bon de commande
mais j'ai un beug je n'arrive pas à figer le nom de la ville pour qu'il ne puisse pas bouger quant je mets le nom d'un autre fournisseur

Si vous avez besoin d'autres renseignements je vous les communiquerai

En vous remerciant "vous" les "crakcs de l'info :)" pour votre support
Cordialement
 
Dernière modification par un modérateur:

farnomar

XLDnaute Nouveau
Bonjour à tous
je suis encore présent
Du coup pour éviter de données un fichier dit confidentiel, je vais vous proposer ceci
Je résume donc mes propos
je fais une extraction via API pipedrive "ok je sais pas terrible"
et du coup je me retrouve avec ce type de code qui a été modifié mais en gardant les mêmes nombres de caractères.

{"success":true,"data":{"items":[{"result_score":0.428245,"item":{"id":*****,"type":"organization","name":"ADE - Atglixrs Dvs Groves","address":"************","visible_to":3,"owner":{"id":***********},"custom_fields":["https://www.********.com/, www.********.com","Atglixrs Dvs Groves","********@********","Bails ProtovoltqÏque","Fournisseurs \r\nCrmtailwaet"],"notes":[]}},{"result_score":0.21967,"item":{"id":****,"type":"person","name":"Palu","phones":["00 00 00 00 00"],"emails":["********@********.com"],"visible_to":3,"owner":{"id":**********},"organization":null,"custom_fields":["https://www.linkedin.com/*********/"],"notes":[]}}]},"additional_data":{"pagination":{"start":0,"limit":100,"more_items_in_collection":false}}}

et au final je voudrais que cela se décline dans un tableau qui ressemblerait à ca

FournisseurXXX
Adresse
Téléphone00 00 00 00
nom du contacthgghghhg
Mail sctéhgghghhg@hgg.com


du coup j'ai ceci comme code il fonctionne mais je souhaiterai le simplifié

Codage VBA

Option Explicit

Sub RecupDonnees()

Dim objRequest As Object
Dim strUrl As String
Dim blnAsync As Boolean
Dim strResponse As String 'Chaine de caractère réponse de l'API PipeDrive
Dim strAdresse As String 'Adresse de l'entreprise
Dim strPhones As String
Dim strAdress As String ' ville ou commune de l'entreprise
Dim strNom As String 'nom du contact

Set objRequest = CreateObject("MSXML2.XMLHTTP")
strUrl = "https://**************************=" & ThisWorkbook.ActiveSheet.Cells(1, 2).Value
blnAsync = True

With objRequest
.Open "GET", strUrl, blnAsync
.setRequestHeader "Content-Type", "application/json"
.send
While objRequest.readyState <> 4
DoEvents
Wend
strResponse = .responseText
End With



'Recherche de l'adresse
If InStr(strResponse, "address") <> 0 Then
strAdresse = Right(strResponse, Len(strResponse) - InStr(strResponse, "address") - 9)
strAdresse = Left(strAdresse, InStr(strAdresse, """") - 1)
ThisWorkbook.ActiveSheet.Cells(2, 2).Value = strAdresse

Else
ThisWorkbook.ActiveSheet.Cells(2, 2).Value = "Adresse non trouvée"
End If

'Recherche téléphone
If InStr(strResponse, "phones") <> 0 Then
strPhones = Right(strResponse, Len(strResponse) - InStr(strResponse, "phones") - 9)
strPhones = Left(strPhones, InStr(strPhones, """") - 1)
ThisWorkbook.ActiveSheet.Cells(4, 2).Value = strPhones
Else
ThisWorkbook.ActiveSheet.Cells(4, 2).Value = "téléphone non trouvée"
End If

'Recherche ville
If InStr(strResponse, "address") <> 0 Then
strAdress = Right(strResponse, Len(strResponse) - InStr(strResponse, "address") - 36)
strAdress = Left(strAdress, InStr(strAdress, """") - 1)
ThisWorkbook.ActiveSheet.Cells(3, 2).Value = strAdress
Else
ThisWorkbook.ActiveSheet.Cells(3, 2).Value = "Adresse non trouvée"
End If


'nom du contact
If InStr(strResponse, "person") <> 0 Then
strNom = Right(strResponse, Len(strResponse) - InStr(strResponse, "person") - 15)
strNom = Left(strNom, InStr(strNom, """") - 1)
ThisWorkbook.ActiveSheet.Cells(5, 2).Value = strNom
Else
ThisWorkbook.ActiveSheet.Cells(5, 2).Value = "Nom non trouvée"
End If
Debug.Print strResponse
End Sub


Je vous remercie infiniment tous pour le temps que vous consacrerez à étudier mon dossier et pour les solutions que vous m'apporterez
Cordialement
 
Dernière modification par un modérateur:

Hasco

XLDnaute Barbatruc
Repose en paix
Re,

Euh .... Soyez vigilant, vous recommencez à publier ce qu'il ne faut pas !!!!!

Essayez de traiter la chose par power query (A partir du web dans l'onglet données).

Cordialement
 
Dernière édition:

farnomar

XLDnaute Nouveau
Bonjour,

Je vous ai posté un message privé (lien sur la petite enveloppe sur la barre bleue en haut de l'écran entre la zone de connexion et la zone de recherche.)

Cordialement
Bonjour
Je reviens vers vous tout d'abord pour vous remercier pour le partage d'information, sans vous il serait impossible de faire ce que je devais faire.
Merci pour votre support vraiment merci
 

farnomar

XLDnaute Nouveau
Bonjour chère Communauté,
je veux pas faire de "l'esbroufferie" mais sans vous je ne suis pas grand chose o_O:oops:
Je reviens vers vous car j'ai un soucis de réflexion sur un fichier je n'arrive pas à faire le lien entre les différentes cellules, je vous joins le fichier avec des notes pour que vous puissiez m'aidez sur ce sujet
Je ne vous remercierai jamais assez je penses.
Cordialement

voir fichier en PJ
 

Pièces jointes

  • test excel.xlsx
    650.7 KB · Affichages: 4

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Votre demande ne concerne en rien l'objet de cette discussion. Créez-en une autre avec un titre explicite et des explications précises.
Relisez la charte du forum :
2.3 – Le titre de la question doit être clair et comporter explicitement le sujet de la demande. Cela sous-entend qu’une nouvelle demande fait l’objet d’un nouveau fil.

cordialement
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
311 725
Messages
2 081 941
Membres
101 848
dernier inscrit
Djigbenou