Bonjour,
Je suis actuellement en train de migrer une application VBA de Excel 2000 à Excel 2010. Celle-ci récupère ses données via des scripts PHP en ligne, ceux-ci nécessitant une identification. Les données sont ensuite mises en formes via des "QueryTables" dont voici le code (bdd.url contient l'adresse du serveur):
Et le code d'appel:
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
21
22 With w.QueryTables.Add(Connection:= _ "URL;" & bdd.url, Destination:=w.Range("A3")) .name = "request" .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = False .RefreshOnFileOpen = False .BackgroundQuery = False .RefreshStyle = xlInsertDeleteCells .SavePassword = False .saveData = True .AdjustColumnWidth = True .RefreshPeriod = 0 .WebSelectionType = xlAllTables .WebFormatting = xlWebFormattingAll .WebPreFormattedTextToColumns = True .WebConsecutiveDelimitersAsOne = False .WebSingleBlockTextImport = False .WebDisableDateRecognition = False End With
Sous Excel 2000 tout fonctionne bien, au démarrage de l'application, quand le premier appel au serveur est fait, Excel ouvre bien une boîte de dialogue demandant une identification:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 w.QueryTables(1).PostText = "req=" & URLEncode(request) & "&reqId=" & requestId w.QueryTables(1).Refresh BackgroundQuery:=False
Le problème est que sous Excel 2010, cette boîte de dialogue ne s'affiche pas et l'application ne se connecte donc pas aux données. Par contre, si je fais manuellement un accès aux données via l'onglet Données puis Connexion => Propriétés => Onglet Définition => Modifier la requête et que je rentre l'adresse du serveur, il m'ouvre cette boîte de dialogue dans laquelle je rentre mes identifiants, et je peux ensuite utiliser l'application en fermant le fichier .xlsm et en le réouvrant (sans fermer Excel), l'application fonctionne ensuite comme sous Excel 2000.
Avez-vous une idée d'où peut venir le problème?
En vous remerciant de m'avoir lu.
Cordialement,
Florian
Partager