PROBLEME SUR L'ELABORATION D'UNE MACRO sous EXCEL 2007

cid1277cid1277 Messages postés 1 Date d'inscription lundi 5 janvier 2009 Statut Membre Dernière intervention 5 janvier 2009 - 5 janv. 2009 à 01:52
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 5 janv. 2009 à 10:26
Bonjour,



<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>

 





C'est la 1ère fois que je vais sur un forum.



J'ai essayé de comprendre le langage VBA depuis quelques jours avec des tests sur UsualBasic mais sans succès.




 





Je voudrais savoir s'il est possible qu'une macro me permette depuis un document Excel d'ouvrir plusieurs pages internet Explorer successivement depuis les URL (ces URL sont redirigées et donne lieu à une nouvelle adresse internet) se trouvant dans les cellules de la colonne A afin d'y récupérer (par collage éventuellement) l'URL définitive dans les cellules de la colonne B, sachant que mon document contient 1000 lignes, il conviendrait si cela est possible que les pages internet explorer soient fermées au fur et à mesure de l'évolution de la macro.




 





Le but est d'obtenir automatiquement une URL finale dans mon fichier Excel depuis une URL redirigée.




 





Je ne sais pas si j'ai été très clair !!!




 





Pour mieux comprendre, voila un exemple :




 





Dans A1 se trouve http://www.aa.fr lorsque l'on ouvre un page web avec cette même adresse http://www.aa.fr alors la page souhaitée s'ouvre convenablement mais l'adresse internet n'est plus http://www.aa.fr elle est devenue http://www.zz.fr




 






 





J'ai essayé de faire une macro qui ne fonctionne pas, la voila :




 






Sub Macro1








 







On Error Resume Next







Dim IE As Object








   









Set IE = CreateObject("InternetExplorer.Application")







Dim winShell As New ShellWindows








 







On Error Resume Next







Set IE = winShell(winShell.Count - 1)







For i = 1 To 1000







Range("A" + CStr(i)).Select







Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True







If Not IE Is Nothing Then MsgBox IE.LocationURL







Range("B" + CStr(i)).FormulaR1C1 = IE.LocationURL






Next




 





Si vous avez une solution, n’hésitez pas !



Merci d'avance pour votre aide.



Cordialement Laurent.

1 réponse

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
5 janv. 2009 à 10:26
Salut
En fait, l'adresse finale se trouve dans le texte "Base 64" compris dans l'url.
Il te faut donc découper la chaine de ton URL pour récupérer ce qui se trouve après le "c.aspx?u=" + le donner à traiter par un décodeur Base 64.
Tu trouveras ça facilement en tapant "base64" dans la recherche des Codes (en excluant .NET).
Regarde d'abord dans l'aide de VBA 2007 : il y a peut-être maintenant une fonction toute faite dans Excel en version 2007.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
Rejoignez-nous