Bonjour.
Je sais que le sujet a été maintes fois abordés su de très nombreux forums en plus de ceux de l’excellent Developpez.com.
Mais la lecture des différents cas de figure et des réponses qui leur sont apportés ne m'a pas permis d'atteindre mon objectif qui me semble curieusement simple en regard des difficultés à le mettre en œuvre.
Voici quel est mon objectif :
Depuis Access, je cherche à télécharger des fichiers Excel depuis un site avec connexion et mot de passe.
Une fois connecté, je clique sur un bouton sur une page et le site génère un fichier Excel que je peux sois ouvrir, soit télécharger.
Je peux aussi faire un clic droit sur le bouton en question et ouvrir le document dans un nouvel onglet (En fait, le nouvel onglet s'ouvre vide et j'ai de nouveau la boite de message avec possibilité d'ouvrir ou d'enregistrer).
Il se trouve qu'une partie de la solution à mon problème pourrait passer par cette ouverture dans un nouvel onglet :
En effet, l'adresse web qui s'affiche dans le nouvel onglet est commune à tous les documents, sauf la fin qui est propre à chaque document.
Mais attention, cette adresse ne se termine pas par le nom du document, ni pas son extension (l'adresse de téléchargement d'un fichier Excel ne comporte ni le nom du fichier téléchargé, ni même l'extension Excel).
Une fois que l'on est connecté, il suffit de saisir cette adresse dans la barre d'adresse pour déclencher l'affichage de la boite de dialogue ouvrir ou enregistrer.
Sous Firefox, il est possible de paramétrer Firefox pour que ce dernier n'ouvre pas de boite de dialogue, mais lance toujours directement une action sélectionnée (j'ai choisi que les fichiers Excel soient automatiquement téléchargés sans demande de confirmation).
Une fois fait, il suffit de programmer n'importe quoi pour ouvrir l'adresse en question depuis Firefox pour que ce dernier lance un téléchargement "transparent".
Le souci, c'est pour piloter Firefox (l'ouvrir, entrer le mot e passe, télécharger les fichiers, fermer les onglets au fur et à mesure).
Du coup, j'ai utilisé l'excellentissime tuto de Qwazerty "Interaction avec Internet Explorer via VBA Excel".
http://qwazerty.developpez.com/tutor...-et-vba-excel/
Encore un énorme merci à lui.
Grace à ce tuto, j'ai réussi à automatiser l'ouverture d'IE et la saisie des login et mots de passe.
Mais dès que j'envoie l'adresse, j'ai la fameuse boite de dialogue IE Ouvrir ou télécharger.
Je n'ai pas trouvé comment paramétrer IE pour qu'elle n'apparaisse pas (Je n'ai pas la ligne dans l'option sécurité qui permettrait de faire cela et qui est présentée sur certain forums).
J'ai alors retenté avec Firefox et Selenium…
C'est dur.
D'abord parce que je n'ai trouvé que des téléchargements datés et des explications pour utilisateurs plus avancés que moi.
Plus encore, je n'ai pas réussi à trouver d'exemple d'utilisation avec Access (que des exemples avec Excel).
Ce qui semble me manquer le plus c'est une bibliothèque Wrapper fiable (j'en ai trouvé des récentes qui s'installent comme "corrompues").
Dans le meilleur des cas, j'arrive sur une page Firefox blanche, à priori paramétrée différemment du Firefox que j'utilise tous les jours et impossible d'aller plus loin.
Access est planté systématiquement, ou alors affiche :
" Erreur d'exécution '21': TimeoutError firefox failed to open the listening port 127.0.0.1:51018".
Dans tous les cas, je n'ai jamais réussi à reproduire l'envoi d'une commande simple telle qu'ouvrir Google.
Étant donné que c'est un site avec mot de passe, ça va m'être compliqué de vous en donner l'accès.
Mais pour l'instant voici les deux options :
Soit utiliser Firefox pour télécharger, mais impossible de faire autre chose que d'y envoyer des adresses web.
Soit utiliser IE, mais ça ne sert pour ainsi dire à rien puisque la première boite de dialogue Ouvrir / enregistrer bloque le truc.
J'aimais bien la commande IE, car elle permettait, entre autre, de demander à IE d'attendre réellement que la page soit chargée.
Par ailleurs, tout apparait facile grâce au tuto de Qwazerty et c'est certainement quelque chose que j'aurais creusé.
Mais voilà, j'ai besoin que ça fasse ÇA et pour l'instant je n'y arrive pas.
En dehors de Chrome, je suis prêt à installer et utiliser n'importe quel navigateur.
Les prérequis sont :
- Possibilité de saisie de mot de passe dans des champs,
- Téléchargement sans confirmation, ou possibilité de piloter la confirmation,
- Management minimum des onglets et fenêtres ouvertes pour ne pas se retrouver avec un milliard de trucs ouverts en même temps.
- Enfin, j'ai un certain nombre d'onglets qui s'ouvrent en même temps que Firefox. Je veux les garder.
Existe-t-il une solution que je puisse mettre en œuvre à peu près tout seul ?
D'avance merci.
Partager