Macro qui ne fonctionne pas au boulot

  • Initiateur de la discussion Initiateur de la discussion didi7828
  • 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 !

didi7828

XLDnaute Nouveau
Bonjour,

J'ai une macro qui doit récupérer en live les cours de bourse sur boursorama. Elle fonctionne très bien chez moi mais pas au travail.

Quelqu'un a une idée sur le sujet ?
 
Re : Macro qui ne fonctionne pas au boulot

Voici le code :

Function valo_Boursorama(cod)
'renvoie le cours selon B, ou bien "" si échec
Dim texte_code As String * 200
page_à_lire = "http://www.boursorama.com/cours.phtml?symbole=" & cod

encr:
internet = 0
'boucle jusqu'à trouver une connexion internet
Do While internet = 0
internet = OuvreInternet("toto", 1, vbNullString, vbNullString, 0)
Application.Wait Now + 0.5 / 24 / 3600
Loop
URL = 0
'ouvre la page Web
URL = Ouvrepage(internet, page_à_lire, vbNullString, ByVal 0&, &H80000000, ByVal 0&)
Application.Wait Now + 0.5 / 24 / 3600

'lit le texte de la page jusqu'à trouver "dernier"
txtlu = ""
Do While InStr(txtlu, "<td>Dernier</td>") = 0 And InStr(txtlu, "</HTML>") = 0
code_page URL, texte_code, 200, nb_caractères_lus 'ajoute 200 caractères par sécurité
txtlu = txtlu & Left(texte_code, nb_caractères_lus)
If InStr(txtlu, "<HTML>") = 0 Then Exit Do
Loop
code_page URL, texte_code, 200, nb_caractères_lus
txtlu = txtlu & Left(texte_code, nb_caractères_lus)

fermeInternet URL 'ferme la page
fermeInternet internet 'ferme Internet

'si la page n'est pas une page B, recommencer
If InStr(Left(txtlu, 40), "Boursorama") <= 0 Then GoTo encr

valo_Boursorama = ""
'rechercher le nb qui est après "<td>Dernier</td>" et qui se termine par (c)
If InStr(txtlu, "<td>Dernier</td>") > 0 And InStr(txtlu, "(c)") > InStr(txtlu, "<td>Dernier</td>") Then
txtlu = Right(txtlu, Len(txtlu) - InStr(txtlu, "<td>Dernier</td>") - 16 + 1)
'chercher le premier nb
Do While Not IsNumeric(Left(txtlu, 1))
txtlu = Right(txtlu, Len(txtlu) - 1)
Loop
'chercher le cours de bourse
txtlu = Left(txtlu, InStr(txtlu, "(c)") - 1)
If IsNumeric(txtlu) Then valo_Boursorama = 1 * txtlu
End If
End Function
 
Re : Macro qui ne fonctionne pas au boulot

re, et bonjour à l'épée du forum😉

Alors chez moi, ça bloque à l'instruction
Code:
internet = OuvreInternet("toto", 1, vbNullString, vbNullString, 0)
une des premières instructions, que je n'ai pas trouvé dans la macro, donc il y en a sûrement une autre ou plusieurs autres.
En fait, il nous faudrait peut-être le dossier complet pour y réfléchir mieux, mais si c'est une chose que tu ne veux pas "divulguer", nous comprendrons.

Gruick
 
Re : Macro qui ne fonctionne pas au boulot

Bonjour à tous,

didi7828,
ton fichier fonctionne très bien pour moi à mon travail 😉

N'aurais-tu pas une règle de sécurité pour les macros !?

Voir paramètres de ton Internet Explorer (proxy)

Meilleurs voeux pour cette nouvelle année
 
Dernière modification par un modérateur:
Re : Macro qui ne fonctionne pas au boulot

Whooh, c'est du costaud

En déplaçant les déclaration des Public Const initialement situées avant la sub Lance Tache (du Paint Ball au boulot, bravo !)😛 en tout début de la feuille des macros PortfolioMonitor, ça ne bloque plus.

Il faut que je voie ce que ça donne sur PC, car je suis sur Mac actuellement, et il n'accepte pas certaines choses.

J'avoue être impressionné par ton travail, et être déçu de ne pas pouvoir t'aider tout de suite, mais il y a des pointures sur XLD qui trouveront peut-être.

A plus,

Gruick

PS : Bonne Année Pierre & Dany

2e PS : Bruno itou, mais il semble ne pas avoir de problème avec le fichier.
 
Dernière édition:
Re : Macro qui ne fonctionne pas au boulot

Re,

1) vérifier si sur ton poste tu peux aller sur le site de boursorama
directement de IE7 sans saisi de proxy ou mot de passe

2) vérifier que tu peux accéder aux valeurs boursières

3) Exécuter la macro en mode pas à pas, et regarder ou ça coince

A+
 
Re : Macro qui ne fonctionne pas au boulot

Pour faire avancer le schmillick j'ai fait une petite macro qui ouvre les pages internet et tout se passe bien sans qu'il me demande d'identifiant ou de mot de passe quelle que soit l'action choisie !

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _
ByVal lpParameters As String, ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long

Sub test()
Dim hwnd As Long
ShellExecute hwnd, "open", "http://www.boursorama.com/cours.phtml?symbole=1rPGSZ", "", "", 1
End Sub

Je me demande ou ca peut coincer !
La macro me met des 0 partout !
 
- 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

Discussions similaires

Réponses
2
Affichages
298
  • Question Question
Microsoft 365 Formule
Réponses
3
Affichages
150
Retour