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:
Bon là c'est good.
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
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
Et je reçois en retours l'insulte suivante :
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
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 absconsPilote ISAM introuvable
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
Partager