Bonjour à tous.

Une aide SVP sur un problème pour lequel peut-être certains pourront m'aiguiller, car je connais mal Excel.

Je dois faire en quelque sorte une consolidation de commandes dans un fichier excel, à partir de fichiers excels. Pour la version Excel, on est dans le contexte 2003 pour l'instant.

Ces fichiers excel sont déposés sur une application de GED web http, application internet, donc hors de l'intranet de mon client.

Coté application GED, j'ai développé un script (page ASP) spécifique à cette consolidation, qui authentifie l'utilisateur, puis qui délivre le fichier excel ou différents messages d'erreur.

Pour le pilote, environ 30 fichiers sont à consolider. Pour la production, ce sera environ 300 fichiers.

Ce que j'ai développé coté excel fonctionne très bien, testé depuis plusieurs machines (version 2003 ou 2007(vista)) depuis mon réseau ou d'autres, pourvu qu'il y ait un accès web autorisé port 80 ou 443.

Mon souci tient à l'exécution de cette procédure VBA dans le contexte du client, depuis son intranet.
En effet, dans les divers éléments de sécurité et d'architecture vers l'internet s'intercale visiblement un proxy mandataire, qui semble empêcher la connexion depuis excel vers le script asp et donc la récupération des fichiers.

La connexion depuis l'intranet d'un navigateur (ie, firefox) vers le site web fonctionne bien.
Dans ce contexte intranet, quand un utilisateur ouvre une session sur le web, il s'authentifie auprès du proxy à l'aide d'une boite de dialogue avant de pouvoir utiliser son navigateur. Cette boite de dialogue fait explicitement référence au proxy.

Lors du lancement de la procédure VBA sous excel, la boite de dialogue réapparait (alors que la personne est déja authentifié pour son navigateur), et avec les mêmes informations de login et mot de passe (acceptés puisque la boite de dialogue disparait), la requête http n'aboutit pas.
Pour m'en assurer, j'ai vérifié les logs du serveur, qui ne montre aucune connexion depuis l'ip du client vers le script délivrant les fichiers excel.

Donc pour moi, le proxy bloque l'application excel vers l'extérieur, vers l'internet.

Voici la réponse de l'ingénieur sécurité réseau du client, face au problème :
Il existe des paramètres Web dans excel. Une simple recherche dans l'aide excel avec le mot clé "navigateur" peut t'aider.
Les options Web sont dans "Outils / Options / Général / options Web".Tu peux notamment modifier la version du navigateur.

L'utilisation d'un proxy est une pratique plus que courante et parfaitement intégré aux outils Microsoft. Excel doit d'ailleurs utiliser le paramétrage Proxy fait dans IE.
Par ailleurs, le paramétrage du proxy FDJ est conforme aux standards.

Il faut voir avec l'entité qui a conçu le fichier excel afin qu'il vous donne les paramètres d'Excel et voir si les paramètres de IE sont compatibles avec leur appli (le cas échéant, se rapprocher pour cela de la bureautique).
N'étant pas un spécialiste excel, je veux bien mais je suis allé voir ces options, et pour moi elles correspondent plutôt à la façon dont un fichier excel est enregistré en HTML.
Des changements sur ces options (notamment l'onglet navigateur) n'affectent en rien l'identification du user-agent sur le serveur http : Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1;+SV1;+GTB6;+.NET+CLR+1.1.4322;+.NET+CLR+2.0.50727;+.NET+CLR+3.0.04506.30)
C'est l'identification de mon excel 2003 dans le fichier log IIS quand je récupère un fichier excel de la base

Pour info, voici le code VBA chargé de la connexion et de la récupération du fichier :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Private Sub copy_file(filepath As String)
 
    Workbooks.Open Filename:=filepath
 
    'test if any error occurs from webserver
 
    If Not test_error Then
        Rows("4:4").Select
        Selection.Copy
        ThisWorkbook.Activate
        Worksheets("consolidation").Activate
        Range("totaux").Select
        Selection.Insert Shift:=xlDown
 
        ' désactive le message relatif au contenu du presse-papier
        Application.CutCopyMode = False
    End If
 
    Windows("downloadbyname.asp").Close SaveChanges:=False
End Sub
cette procédure est appelée dans une boucle


Qu'en pensez vous ? des pistes, une autre méthode pour passer ce proxy ? Ou bien pensez-vous que ma méthode soit correcte, et que je dois travailler cet ingénieur réseau au corps ? Son analyse m'a l'air un peu légère. Et puis lors des tests IE est déja authentifié au proxy, ce qui n'empêche pas de voir la boite d'authentification proxy se rouvrir.

merci d'avance de votre aide, de votre avis, de votre analyse.