Communiquez entre Excel et PHP

Table des matières

J'apprécie vraiment les trucs WinHTTP et Web Services (en particulier REST). Même si j'ai besoin de faire pas mal de recherches pour chaque petite chose que j'apprends, et que je ne fais que commencer, ça en vaut la peine.

Hier soir, j'ai compris comment faire un aller-retour d'une variable de VBA à PHP et vice-versa. En d'autres termes, j'ai appris à passer une variable VBA à une fonction PHP (résidant dans un fichier sur le serveur AutomateExcel), à manipuler la variable, puis à renvoyer le nouveau résultat à VBA.

Remarque : La variable est envoyée sous forme de chaîne.

Par exemple, la boîte de message de cette image a été atteinte par :

1. Envoi d'une variable contenant le numéro 15 via HTTP à un fichier PHP sur AutomateExcel

2. Une fonction PHP prend la variable, la multiplie par 500, puis renvoie la réponse, dans ce cas 7500

3. VBA lit la réponse et renvoie la réponse dans une msgbox

Voici à quoi ressemble le code PHP. Ouvrez le bloc-notes, copiez et collez ces informations, enregistrez le fichier avec l'extension php et téléchargez-le sur votre serveur :

12345678910111213141516

Je n'ai pas renvoyé la réponse en XML pour garder l'exemple simple. Voici le code VBA pour envoyer et recevoir les données, modifiez la chaîne de connexion pour qu'elle pointe vers le fichier php que vous venez de créer :

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 ' Ajouter une référence aux services Microsoft WinHTTPConst HTTPREQUEST_SETCREDENTIALS_FOR_SERVER = 0Sous-titres privés GetItems()Dim MyCon en tant que nouveau WinHttpRequestDim sendthis en tant que doubleDim myanswer As String'variable à envoyerenvoyer ceci = 15'Chaîne de connexion à envoyerMyCon.Open "GET", _"https://www.automateexcel.com/excel/pl/server500.php" & _"?PassThis=" & envoyer ceci'envoie-leMyCon.Envoyer'rends lemaréponse = MyCon.ResponseTextMsgBox ma réponseFin du sous-marin

Remarque : ajoutez une référence aux services Microsoft WinHTTP

C'est génial!

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave