ADO - problème accès "Feuil1" sur fichier fermé

CAPRI_456

XLDnaute Occasionnel
Bonjour le Forum,

Dans une procédure ADO qui exécute la récupération de données sur une feuille ("Feuil1") d'un classeur fermé, j'ai un souci.

Mes feuilles identiques des classeurs fermés ne se nomment pas "Feuil1" mais ont le nom de fichier par exemple "10-LG1830"

Lorsque j'utilise la procédure ci dessous avec le véritable nom de la feuille , soit "10-LG1830" tout se déroule à merveille.
Mais comme les noms de fichiers peuvent changer et par conséquent le nom de la feuille1 , cette procédure par l'appel de "Feuil1" ne fonctionne pas.

Comment trouver solution à ce problème :

Dim CheminXLS As String
Dim NomFichierDepart As String
'A1.------ Adresse du fichier à lire (ici un listview)
CheminXLS = .ListItems(.SelectedItem.Index).ListSubItems(6)
NomFichierDepart = UserForm1.ListView1.SelectedItem.Text

'A2.------Adresse de la feuille 'n'oubliez pas d'ajouter $ au nom de la feuille.
Feuille = "10-LG1830" = parfait :) (nB j(insère le $ plus bas dans le code)
Feuille = "Feuil1" = pas d'accès possible :rolleyes:" Moteur jet ne peut accéder à feuille
'A3.------Adresse de la plage contenant la donnée à récupérer
Plage = ("A2:AV100")
'A3 ----- 'prépare les commandes ADO
'++ OUVRE UNE CONNECTION ADO VERS le CLASSEUR excel FERME
Set Source = New ADODB.Connection
Source.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & CheminXLS & "\" & NomFichierDepart & _
";Extended Properties=""Excel 8.0;HDR=No;"";"


'++++++++++ exerce la requete ADO sur la donnée à recopier
texte_SQL = "SELECT * FROM " & " [" & Feuille & Plage & "$]"
Set Requete = CreateObject("ADODB.Recordset")

Requete.Open texte_SQL, Source, adOpenStatic



Application.DisplayAlerts = False
Workbooks(NomFichierDepart).Close SaveChanges:=False


'***********************'OUVERTUE DU FICHIER "MODELE" *******************************************************

Dim Workbook
Dim CheminModèle As String
CheminModèle = "D:\Serveur\modèle-lecture-22-11.xls"
'=répertoire destination
Workbooks.Open CheminModèle
'puis nettoyage du contenu en partant de la dernière ligne complétée
Sheets("Feuil1").Range(Cells(2, 2), Cells(Cells(65536, 2).End(xlUp)(2).Row, 48)).ClearContents

Range("B2").CopyFromRecordset Requete

Requete.Close
Source.Close
Set Source = Nothing
Set Requete = Nothing
Set Cd = Nothing

' End With

Application.CutCopyMode = True 'Vide le presse papier


Merci pour votre aide

CAPRI_456
 
Dernière modification par un modérateur:

Discussions similaires

Statistiques des forums

Discussions
290 902
Messages
1 911 281
Membres
177 117
dernier inscrit
Bicycle74
Haut Bas