Envoyer SMS par feuille excel via Macro - CODE EXISTANT à modifier

PatLac

XLDnaute Occasionnel
Bonjour à tous !
Je désire envoyer des SMS par l'intermédiaire d'une macro inclue dans une feuille Excel.:)

J'ai 2 codes : un qui fonctionne, et l'autre pas.

Celui qui fonctionne à une coût/SMS plus important que celui qui ne fonctionne pas :(

Je voudrais bien sur utiliser celui qui ne fonctionne actuellement pas , car 2 fois moins cher que celui qui fonctionne. :confused:

Je sollicite vos capacités en VBA pour m'aider.

Je mets ci-dessous les 2 codes et vous remercie pour votre bienséance.
Cordiales salutations.

Code fonctionnel
Code:
Sub SendSMS()

    Dim strReturn As String
    Dim Apikey As String
    Dim Number As String
    Dim Message As String
    Dim Expediteur As String
    Dim i As Integer
    
    Apikey = "VotreApiKey"
    
    Message = Worksheets("Feuil1").Cells(2, 2).Value
    Expediteur = Worksheets("Feuil1").Cells(1, 2).Value
    
    i = 5
    While (Worksheets("Feuil1").Cells(i, 1).Value <> "")
    
        Worksheets("Feuil1").Cells(i, 2).Value = ""
        Number = Worksheets("Feuil1").Cells(i, 1)
        strReturn = send(Apikey, Number, URLEncode(Message), URLEncode(Expediteur), False)
        Worksheets("Feuil1").Cells(i, 2).Value = strReturn
        i = i + 1
    Wend
End Sub

Function send(Apikey, Number, Message, Expediteur, MsgID) As String
    Dim objWinHTTP As Object
    Dim strReturn As String
    Dim Request As String
    Dim url As String

    Set objWinHTTP = CreateObject("WinHttp.WinHttpRequest.5.1")

    url = "http://www.envoyersms.org/api/v1/?method=send"
    Request = "&apikey=" & URLEncode(Apikey) & "&number=" & URLEncode(Number)
    Request = Request & "&message=" & URLEncode(Message)
    Request = Request & "&expediteur=" & URLEncode(Expediteur) & "&msg_id=" & MsgID

    objWinHTTP.Open "GET", url & Request, False
    objWinHTTP.SetTimeouts 30000, 30000, 30000, 30000
    objWinHTTP.send
    If objWinHTTP.StatusText = "OK" Then
        strReturn = objWinHTTP.ResponseText
        Debug.Print strReturn
    End If

    Set objWinHTTP = Nothing
    send = strReturn
End Function


Public Function URLEncode(sRawURL) As String
    On Error GoTo Catch
    Dim iLoop As Integer
    Dim sRtn As String
    Dim sTmp As String
    Const sValidChars = "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz:/.?=_-$()~&"
    If Len(sRawURL) > 0 Then
        For iLoop = 1 To Len(sRawURL)
            sTmp = Mid(sRawURL, iLoop, 1)
            If InStr(1, sValidChars, sTmp, vbBinaryCompare) = 0 Then
                sTmp = Hex(Asc(sTmp))
                If sTmp = "20" Then
                    sTmp = "+"
                ElseIf Len(sTmp) = 1 Then
                    sTmp = "%0" & sTmp
                Else
                    sTmp = "%" & sTmp
                End If
            End If
            sRtn = sRtn & sTmp
        Next iLoop
        URLEncode = sRtn
    End If
Finally:
        Exit Function
Catch:
        URLEncode = ""
        Resume Finally
End Function

Code NON-FONCTIONNEL que vous pouvez retrouver ici également
Code:
Imports System.Diagnostics.CodeAnalysis
Imports System.Security.Principal
Imports System.Web.Routing
Imports System.Net
Imports System.IO
Imports System.Xml
 
 
Const ENVOYER_SMS_PRO_HOST As String = "www.envoyersmspro.com"
Const ENVOYER_SMS_PRO_PROTOCOL As String = "https://"
Const ENVOYER_SMS_PRO_LOGIN As String = ""
Const ENVOYER_SMS_PRO_PASSWORD As String = ""
Const ENVOYER_SMS_PRO_URL As String = "/api/message/send"
 
Dim strPost As String
' Build POST String
strPost = "text=" + System.Web.HttpUtility.UrlEncode("Nouveau message via l'API d'Envoyer SMS Pro depuis un script VB .NET") + "&recipients=" + System.Web.HttpUtility.UrlEncode("33600000000") + "&sendername=" + System.Web.HttpUtility.UrlEncode("SOCIETE")
 
' Create POST
Dim request As WebRequest = WebRequest.Create(ENVOYER_SMS_PRO_PROTOCOL + ENVOYER_SMS_PRO_HOST + ENVOYER_SMS_PRO_URL)
request.Method = "POST"
Dim byteArray As Byte() = Encoding.UTF8.GetBytes(strPost)
 
Dim myCred As New NetworkCredential(ENVOYER_SMS_PRO_LOGIN, ENVOYER_SMS_PRO_PASSWORD, "")
 
request.ContentType = "application/x-www-form-urlencoded"
request.Credentials = myCred
request.ContentLength = byteArray.Length
Dim dataStream As Stream = request.GetRequestStream()
dataStream.Write(byteArray, 0, byteArray.Length)
dataStream.Close()
' Get the response.
Dim response As WebResponse = request.GetResponse()
dataStream = response.GetResponseStream()
Dim reader As New StreamReader(dataStream)
Dim responseFromServer As String = reader.ReadToEnd()
' Clean upthe streams.
reader.Close()
dataStream.Close()
response.Close()
' Return result to calling function
If responseFromServer.Length > 0 Then
    Dim textResponse As String
    ' Create an XmlReader
    Using readerXML As XmlReader = XmlReader.Create(New StringReader(responseFromServer))
        readerXML.ReadToFollowing("status")
        If readerXML.ReadElementContentAsString() = "success" Then
            readerXML.ReadToFollowing("message_id")
            textResponse = "Le messageid : " + readerXML.ReadElementContentAsString()
        Else
            textResponse = "Impossible d'envoyer le message"
            While readerXML.Read()
                ' Check for start elements.
                If readerXML.IsStartElement() Then
                    ' See if perls element or article element.
                    If readerXML.Name = "request" Then
                        textResponse += "La requête : " + readerXML.ReadElementContentAsString + ControlChars.NewLine
                        textResponse += "L'errorid : " + readerXML.ReadElementContentAsString + ControlChars.NewLine
                        textResponse += "L'error message : " + readerXML.ReadElementContentAsString + ControlChars.NewLine
                    End If
                End If
            End While
        End If
    End Using
    ViewData("Message") = textResponse
Else
    ViewData("Message") = CType(response, HttpWebResponse).StatusDescription
End If

:)
 

PatLac

XLDnaute Occasionnel
Re : Envoyer SMS par feuille excel via Macro - CODE EXISTANT à modifier

Merci Hasco !
Je dois dire que je ne comprend pas bien comment cela fonctionne, du moins dans le principe ...:confused:
Comment envoyer un message sur une unité mobile (tel portable), sans utiliser un réseau ?
J´ai intégré le code dans un module, mais il bug ... ce que je trouve plus ou moins normal.
C´est comme si je voulais appeler un Iphone avec un talky-walky ...
Je ne comprend pas bien, suis un peu perdu à vrai dire . :(

Non, de toute facon le principe de "paiement du sms" est accepté.
Au pire je prend le premier code, les sms sont plus chers, mais il fonctionne.

Merci.
 

soan

XLDnaute Barbatruc
Inactif
Bonjour escouger, le fil,

hier, j'ai tout de suite vu quand tu as supprimé ton ancien post #8, et je t'en remercie, même si j'avais pensé que tu allais simplement supprimer le fichier confidentiel et le remplacer par un fichier anonyme. ;)

bien sûr, quand on demande de supprimer au plus vite un fichier comportant des données confidentielles, c'est par rapport au RGPD (Règlement Général sur la Protection des Données), et par rapport à la Charte du forum ; mais c'est aussi et surtout pour éviter qu'un visiteur malintentionné du forum risque de t'importuner s'il connaît ton email réel, en t'envoyant des spams directement ou par l'intermédiaire d'une société diffuseuse de spams ; ou pire : si c'est un hacker qui essaye de pirater ton PC (envoi de virus, tentative de phishing, vol de données persos ou autres) ; je t'écris tout ça pour que tu saches que ça n'a rien de personnel. :)

j'ai voulu t'écrire tout ça hier, mais j'ai vraiment été débordé (affaires persos et autres), c'est pourquoi je t'écris seulement maint'nant.​



je te retourne ton fichier anonymisé ; attention : le problème n'est sans doute pas réglé, mais le nouveau code VBA t'aidera peut-être ? (lis bien attentivement tous les commentaires)

je n'ai rien d'autre à proposer ! 😭 alors si tu ne trouves pas quelle est la bonne adaptation à faire, j'espère qu'un autre intervenant qui connaît mieux que moi les envois par SMS pourra t'aider davantage ! 🍀

soan
 

Pièces jointes

  • Test_sms.xlsm
    19.5 KB · Affichages: 55

soan

XLDnaute Barbatruc
Inactif
@BrunoM45

question subsidiaire : je ne sais pas si un membre a le droit d'utiliser un avatar qui est déjà utilisé par un Barbatruc ? 😜 je t'assure qu'en voyant l'avatar de PatLac, j'ai cru qu'c'était toi ! 😄

à propos du déterrage de sujet : ah oui, c'était un sujet de 2013 ! à propos, tu pourras peut-être aider escouger mieux que moi ? 🍀 car moi j'm'y connais pas en communications, ni en envois par SMS ! j'sais seulement utiliser un peu Outlook, sans plus.

soan
 
Dernière édition:
C

Compte Supprimé 979

Guest
@BrunoM45

question subsidiaire : je ne sais pas si un membre a le droit d'utiliser un avatar qui est déjà utilisé par un Barbatruc ? 😜 je t'assure qu'en voyant l'avatar de PatLac, j'ai cru qu'c'était toi ! 😄

à propos du déterrage de sujet : ah oui, c'était un sujet de 2013 ! à propos, tu pourras peut-être aider escouger mieux que moi ? 🍀 car moi j'm'y connais pas en communications, ni en envois par SMS ! j'sais seulement utiliser un peu Outlook, sans plus.

soan
Moi son avatar je le vois blanc 🤔 sinon pas de droit d'auteur là-dessus 🤣

Sinon pouvoir envoyer des SMS sans devoir payer, je n'y crois absolument pas... rien n'est plus gratuit dans ce monde :( arf si, l'aide sur les forums ✌️
 

fanch55

XLDnaute Barbatruc
Salut,
Pour envoyer un sms/mms via Pc, il faut passer par un serveur idoine .
Chacun a ses propres tarifs .

Le 1er serveur cité EnvoyerSms: 127€ Ttc pour 500 sms
Le 2ème serveur cité SmsPro : 37€ Ht pour 500 sms

C'est sûr, le premier est extrêmement cher ...😭

J'ai fait un programme d'envoi "de masse" pour mon club de Pétanque,
Le serveur est AllMySms avec 27€ Ttc pour 500 sms.

Les serveurs ont tous leur propre Api ( interface de communication ) et il faut bien gérer les transcriptions de caractères, certains cars spéciaux comptent double, la longueur d'un Sms normal est 160 .

Pour vous répondre efficacement, il faut savoir quel est le serveur que vous retiendrez . 🤔
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil

Sauf erreur de ma part, à part la poussière de 2013, je ne vois aucune question récente liée à l'envoi de SMS
(A moins qu'en 2021, quelqu'un dans le fil ait appuyé sur le bouton Supprimer, ceci expliquant cela ;))

EDITION: Effectivement, j'ai relu le fil de A à S, le message a été supprimé, reste la poussière ;)
 

Discussions similaires

Réponses
6
Affichages
269

Statistiques des forums

Discussions
311 726
Messages
2 081 955
Membres
101 852
dernier inscrit
dthi16088