• Initiateur de la discussion Initiateur de la discussion jpmetge
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

jpmetge

XLDnaute Nouveau
Bonjour à tous,
J'ai trouvé un code VBA fort intéressant (Merci à l'auteur,voir PJ) permettant d'envoyer des SMS depuis un PC.
Or lorsque je l'exécute, j'obtiens l'erreur suivante :
1571541234987.png


en mode débogage celà donne :
1571541145509.png

Je pense que le problème vient de ma variable
Apikey = "VotreApiKey" qui n'est pas renseignée.
Où puis-je trouver la valeur à renseigner?
Merci pour votre aide.
 

Pièces jointes

Bonjour
À tout hasard prenez ce code dans un module standard :
VB:
Option Explicit
Function UHexaTexte(ByVal Texte As String) As String
Rem. —— Renvoie un texte dont chaque caractères de code ASCII > 127 est remplacé
'     par "\u" suivi de ce code en hexadécimal de 4 de long.
   Dim TJn() As String, P As Long, C As String * 1, A As Integer, J As Long
   ReDim TJn(0 To 0)
   For P = 1 To Len(Texte)
      C = Mid$(Texte, P, 1): A = AscW(C)
      If A > 127 Then
         J = J + 1: ReDim Preserve TJn(0 To J)
         TJn(J) = Right$("000" & Hex$(A), 4)
      Else
         TJn(J) = TJn(J) & C
         End If: Next P
   UHexaTexte = Join$(TJn, "\u")
   End Function
Function TexteUHexa(ByVal UHexa As String) As String
Rem. —— Renvoie un texte dont chaque groupe "\u" suivi d'un code hexadécimal de 4 de long
'     est remplacé par le caractère ayant cette valeur pour code ASCII.
   Dim TJn() As String, J As Long
   TJn = Split(UHexa, "\u")
   For J = 1 To UBound(TJn): TJn(J) = ChrW$(Val("&H" & Left$(TJn(J), 4))) & Mid$(TJn(J), 5): Next J
   TexteUHexa = Join$(TJn, "")
   End Function
Et utilisez UHexaTexte à la place de URLEncode
 
Bonjour le fil

=>jpmetge
Sans clé API, ça ne peut pas fonctionner
Integrer facilement un systeme d'envoi de SMS sur votre site Internet.
N'oubliez pas de recharger votre compte pour que l'API puisse fonctionner correctement.
 
bonjour
a tu ta propre keyapi? si tu n'en a pas ça risque pas de fonctionner
et ça m'étonnerait que cela soit gratuit 😉
d'autant plus que ça ne m’étonnerait pas non plus que l'on doit paramétrer le header de la requête vu l'objectif un minimum de sécurité quand même
 
Bonjour patricktoulon

patricktoulon
C'est ce que je viens d'écrire dans le message#3... 🙄
Mais on n'est pas trop de deux pour rappeler l'évidence 😉

Et pour avoir une clé, il faut ouvrir le porte-monnaie
(comme c'était déjà évoqué ici à l'époque)
 
Re

=>patricktoulon
Je disais cela parce que tu ne m'as pas ajouté dans tes salutations, ni réagi à mes messages.
C'est jamais agréable d'avoir l'impression d'être invisible dans un fil.

Pour revenir à la question
Ce fil est plus prometteur

NB: Il faut juste une Raspberry
(et dans le fil cité, il y a de quoi faire côté VBA (merci tatiak))
 
Vous ne savez pas ce que je viens de trouver de mon coté en Excel 2016 ?
Une fonction =URLENCODAGE(UnTexte) et surtout une correspondante WorksheetFunction.EncodeURL !
Je pense qu'il vaut mieux l'utiliser plutôt qu'une moulinette perso, tant la logique du truc est incompréhensible !
Ça aboutit à un codage plus long qu'avec les \uHexa, mais évidemment, mêmes si les espaces et peut être d'autre caractères doivent obligatoirement être rendus complètement incompréhensibles humainement … Quel merdier infâme, les langages d'internet !!
 
Dernière édition:
re
@Staple1600 , @Dranreb

j'ai repris ton idée Dranreb pour G translate

VB:
Function EncodeText2(chaine) As String    'sur la base Dranreb exceldownload
    Dim chaine2$, P&, c$, A&
    chaine2 = chaine
    For P = 1 To Len(chaine)
        c = Mid$(chaine, P, 1): A = AscW(c)
         If A > 127 Then
            chaine2 = Replace(chaine2, c, "\u" & Right$("000" & LCase$(Hex$(A)), 4))
       ElseIf A = 32 Then
            chaine2 = Replace(chaine2, c, "+")
        ElseIf A = 39 Then chaine2 = Replace(chaine2, c, "%" & Hex$(A))
        End If
    Next
    EncodeText2 = chaine2
End Function

resultat
Les+\u00e9l\u00e8ves+vont+\u00e0+l%27\u00e9cole.

je suis quand même étonné de la flexibilité de G translate qui a sa propre code de conversion

Capture.JPG
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour