Dans l'hôpital où je travaille, il existe une application web permettant d'envoyer des SMS en interne sur certains N° de postes.
Grâce à l'aide du forum, j'ai réalisé une application sous excel (2002-2003) permettant d'envoyer un mail aux membres du groupe PMO quand un patient est amené aux urgences avec un score de Glasgow inférieur ou égal à 6.
Mon objectif serait d'envoyer un SMS sur le téléphone du coordonnateur d'astreinte en plus du mail envoyé.
Dans ma page web, la variable "no" correspond au N° de téléphone à entrer (de type INPUT); la variable "msg" est le champ dédié au message à envoyer (de type TEXTAREA); sendMsg correspond au bouton à cliquer pour envoyer le message.
J'ai activé les références suivantes:
Microsoft Internet COntrols
Microsoft HTML object library
Ensuite, j'ai créé un UserForm que j'ai maissé nommé par défaut "UserForm1", dans lequel j'ai ajouté le contôle WebBrowser que j'ai laissé nommé par défaut "WebBrowser1".
puis voici le code que j'ai essayé d'adapter (sans succès...)
Code:
Sub EnvoiSMS()
Dim htmlPage As HTMLDocument
Dim htmlElement As HTMLObjectElement
Dim no As HTMLObjectElement
Dim msg As HTMLObjectElement
Dim sendMsg As HTMLObjectElement
UserForm1.WebBrowser1.Navigate ("http://10.30.11.210/")
Do
DoEvents
Loop Until Not UserForm1.WebBrowser1.Busy
Set htmlPage = UserForm1.WebBrowser1.Document
Set no = "4009" 'N° de poste sur lequel envoyer le SMS"
Set msg = "test envoi sms depuis appli VBA excel"
sendMsg.Click
End Sub
Je ne suis pas très doué en VBA, encore moins en HTML...
Si quelqu'un parmis-vous pouvait éclairer ma lanterne, je lui serais vraiment reconnaissant...
Vous remerciant par avance pour l'aide que vous pourrez donc m'apporter,
Bien cordialement.
A l'évidence, tu sais beaucoup mieux que moi utiliser la fonction "recherche" sur le forum, car je n'avais pas trouvé ce fil de discussion... C'est pour ça que je m'étais rabattu sur mon ami google...
Pour le moment, je n'ai pas encore réussi à résoudre mon problème, mais grâce aux indices que tu me fournis, j'arrive à compléter mes champs "no" et "msg".
Il ne me reste plus qu'à trouver comment simuler le click sur sendMsg et l'affaire sera dans le sac!
C'est bon, j'ai résolu mon problème!
Là où je n'arrivais pas à atteindre le bouton "envoi" (j'ai l'impression que sendMsg n'est pas une variable, mais une instruction javascript), j'ai contourné le problème en utilisant des "sendkeys"... C'est pas très propre comme code, mais ça a le mérite de fonctionner! (vu mon niveau, je vais m'en contenter....)
Donc, si quelqu'un un jour tombe sur mon sujet, voici comment j'ai modifié le code:
Code:
Sub EnvoiSMSv2()
Const READYSTATE_COMPLETE = 4
Dim IE
Dim elementHtml As Object
Set IE = CreateObject("internetExplorer.Application")
IE.Visible = True
With IE
.Navigate "http://10.30.11.210/"
Do Until .ReadyState = 4 '
DoEvents
Loop 'attend la fin du chargement
End With
Dim bOk As Boolean
Set elementHtml = IE.Document.getElementById("no")
If Not elementHtml Is Nothing Then
bOk = True
elementHtml.Value = "4009"
Set elementHtml = IE.Document.getElementById("msg")
If Not elementHtml Is Nothing Then
bOk = True
elementHtml.Value = "test envoi SMS par macro VBA"
SendKeys "{TAB}"
SendKeys "{TAB}"
SendKeys "{ENTER}"
Else
bOk = False
End If
Else
bOk = False
End If
DoEvents
Set IE = Nothing
If bOk Then MsgBox "connexion réussie!" Else MsgBox "connexion échouée!"
End Sub
Un grand merci au forum, particulièrement à Klin89 qui m'a aidé à me mettre sur la bonne voie...
Dans ton code, pour simuler le click de ton bouton, as-tu essayé ceci ?
Code:
.../....
Set elementHtml = IE.Document.[COLOR="Red"]forms(0)[/COLOR]'Voir si changer l'index
If Not elementHtml Is Nothing Then
bOk = True
[COLOR="red"]elementHtml.submit[/COLOR]
Else
bOk = False
End If
.../...
Bonjour Klin89,
effectivement, j'avais essayé avec
Code:
Set elementHtml = IE.Document.forms(0)
mais ça ne simulait pas mon click.
j'avais donc essayé avec forms(1), sans plus de succès.
Alors ensuite, j'avais essayé avec ces deux possibilités (forms(0) et forms(1)) mais en remplaçant
Code:
elementHtml.submit
par
Code:
elementHtml.click
toujours sans succès.
Je dois avouer que n'étant pas très à l'aise avec le VBA, je fais beaucoup de tests... (je ne connais pas toutes les fonctions et leurs nuances comme par exemple la différence entre .submit et .click, je suis donc obligé de tester... mais c'est comme ça que j'apprends!)
En tout cas, encore un grand merci à toi de t'être penché sur mon problème