Bonjour le Forum,
Tout d'abord, je suis débutant donc un peu simplet de temps en temps.
voici mon problème:
importer (et éventuellement écrire) des données d'un classeur Excel (2007 Vers.12.0) fermé et se trouvant sur une plateforme SharePoint.
j'ai déniché dans les tutos un code de SilkyRoad (merci à lui) qui fonctionne bien quand je lui donne le chemin en local.
Voici pour mémoire le code susdit:

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
23
24
25
26
27
28
29
30
31
32
33
34
35
Sub RequeteClasseurFerme_Excel2007()
Dim Cn As ADODB.Connection
Dim Fichier As String
Dim NomFeuille As String, texte_SQL As String
Dim ADOCommand As ADODB.Command
Dim Rst As ADODB.Recordset
Dim cellule As String
Dim i As Integer
 
'Définit le classeur fermé servant de base de données
Fichier = [COLOR="Red"]"D:\Mes Documents\Dossier Base de données\Base de DonnéesExcel2007\EssaiBase.xls"
'Nom de la feuille dans le classeur fermé
NomFeuille = "Feuil1"
Set Cn = New ADODB.Connection
'--- Connexion ---
With Cn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
& Fichier & ";Extended Properties=""Excel 12.0;HDR=YES;"""
.Open
End With
'----------------- la requête ...
texte_SQL = "SELECT * FROM [" & NomFeuille & "$]"
Set Rst = New ADODB.Recordset
Set Rst = Cn.Execute(texte_SQL)
'--- Boucle sur les entêtes pour récupérer les noms ---
For i = 0 To Rst.Fields.Count - 1
Cells(1, i + 1) = Rst.Fields(i).Name
Next i
'------------------------------------------------------'Ecrit le résultat de la requête dans la cellule A2
Range("A2").CopyFromRecordset Rst
'--- Fermeture connexion ---
Cn.Close
Set Cn = Nothing
End Sub
Bon là c'est good.
Je remplace benoitement le chemin du fichier (Fichier) par celui ci :

"http://workplace.fr.maBoite.fr/Monservice/Bibliothque%20Bases%20Clients/maRegion/Essai%20transfert.xlsx"

et là patatras il me lance une insulte du type adresse internet non valide.

Problème car avec un autre petit bout de code (très... très... long) la même adresse URL fonctionne parfaitement bien.

Après suggestion d’un blogueur je modifie ma « ConnectionString « comme ceci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
Set Cn = New ADODB.Connection
'--- Connexion ---
 
With Cn
 
.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;WSS;IMEX=2;RetrieveIds=Yes; DATABASE=" _
& Fichier & ";LIST={/Essai%20transfert.xlsx};Extended Properties=""Excel 12.0;HDR=YES;"""
.Open
End With
Et je reçois en retours l'insulte suivante :
Pilote ISAM introuvable
PS : J’ai installé les références "Microsoft internet control" et "Microsoft HTML Object librairy", mais cela ne change rien, j'ai également regardé du coté de Microsoft mais les explications sont, à mon niveau, totalement abscons

Ma question est donc triple:
La manipulation que je souhaite faire est-elle possible ? Si oui ;
Est ce un problème de syntaxe, si oui le forum peut-il m’aider à la corriger ?
Est ce un problème que je ne discerne pas, là aussi le Forum peut il m’aider ?

Merci d'avance à tous ceux qui prendront le temps de me lire et surtout de me répondre