Bonjour tout le monde,
voilà je travaille actuellement sur des documents excel fermés, mais je rencontre un problème pour récupérer une feuille en particulier. Je m'explique :
Je souhaite copier l'intégralité des données de la 2eme feuille de mon classeur fermé, dans la 1er feuille de mon classeur actif (par exemple). Ce document de données est généré par un collègue, et donc je ne peux pas connaitre le nom qu'il donnera à cette 2eme feuille (et donc y acceder par le nom).
Or il peut être amener à créer, supprimer, déplacer les feuilles au sein du classeur, ce qui du coup m'empéche également d'y accéder par ID (la 2eme feuille du classeur ne correspond pas forcément à la 2eme feuille créée).
Voici mon code permettant de me connecter à mon classeur fermé, et à sélectionner une feuille (mais la mauvaise car mauvais ID) :
oCat.Tables.count me renvoi le bon nombre de feuilles existantes, mais sans le nom et sans l'id de la feuille, comment l'atteindre ?
Merci pour votre aide, je vous tiendrais au courant si je trouve une solution.
Cdlt.
voilà je travaille actuellement sur des documents excel fermés, mais je rencontre un problème pour récupérer une feuille en particulier. Je m'explique :
Je souhaite copier l'intégralité des données de la 2eme feuille de mon classeur fermé, dans la 1er feuille de mon classeur actif (par exemple). Ce document de données est généré par un collègue, et donc je ne peux pas connaitre le nom qu'il donnera à cette 2eme feuille (et donc y acceder par le nom).
Or il peut être amener à créer, supprimer, déplacer les feuilles au sein du classeur, ce qui du coup m'empéche également d'y accéder par ID (la 2eme feuille du classeur ne correspond pas forcément à la 2eme feuille créée).
Voici mon code permettant de me connecter à mon classeur fermé, et à sélectionner une feuille (mais la mauvaise car mauvais ID) :
Code:
Function ADOcnx_XL_Close(chemin) As Integer
Dim Cn As ADODB.Connection
Dim Rst As ADODB.Recordset
Dim oCat As ADOX.Catalog
Dim Fichier As String, Feuille As String, nomfeuille As String, req_SQL As String
'------------------------------------
' Connection au classeur excel fermé
'------------------------------------
'Définit le classeur fermé
Fichier = chemin
'Ouverture connection ADODB
Set Cn = New ADODB.Connection
With Cn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=" & Fichier & _
";Extended Properties=Excel 8.0;"
.Open
End With
'Choix de la feuille contenant les données
Set oCat = New ADOX.Catalog
Set oCat.ActiveConnection = Cn
Feuille = oCat.Tables(1).Name
'------------------------
' Extraction des données
'------------------------
'---------------------------
' Fermeture des connections
'---------------------------
Cn.Close
Set oCat = Nothing
Set Cn = Nothing
End Function
oCat.Tables.count me renvoi le bon nombre de feuilles existantes, mais sans le nom et sans l'id de la feuille, comment l'atteindre ?
Merci pour votre aide, je vous tiendrais au courant si je trouve une solution.
Cdlt.