Bonjour à tous,
voici un morceau de code que j'utilisais jusqu'à présent et qui fonctionnait très bien. Il me permet de récupérer les données de plusieurs fichiers fermés excel au format xls.
	
	
	
	
	
		
Mon problème est qu'aujourd'hui, les données que je récupère ne sont plus dans des fichiers xls mais dans des fichiers xlsx.
Quand je modifie la ligne:
	
	
	
	
	
		
par
	
	
	
	
	
		
Il me met un message d'erreur à la ligne
	
	
	
	
	
		
Erreur d'execution '-2147467259 (80004005)':
La table externe n'est pas dans le format attendu.
Or d'après mes recherches ce code permet bien d'ouvrir les fichiers xlsx.
Quelqu'un saurait-il une solution à ce problème?
En vous remerciant par avance.
	
		
			
		
		
	
				
			voici un morceau de code que j'utilisais jusqu'à présent et qui fonctionnait très bien. Il me permet de récupérer les données de plusieurs fichiers fermés excel au format xls.
		Code:
	
	
	Dim Source As ADODB.Connection
Dim Rst As ADODB.Recordset
Dim ADOCommand As ADODB.Command
Dim Fichier As String, Cellule As String, Feuille As String
Dim tabloEtats As Variant, tabloEtats2 As Variant, numEtat As Integer
Feuille = "A$"
Cellule = "A1:AA100"
tabloEtats = Array("Etat des charges mensuel", "Salaires cumulés", "Salaires mensuels", "Taxes sociales cumul", "Taxes sociales mensuelles", "Frais de perso Pilote")
For numEtat = LBound(tabloEtats) To UBound(tabloEtats)
   
        Fichier = ThisWorkbook.Path & "\Données\" & tabloEtats(numEtat) & ".xls"
        Sheets(tabloEtats(numEtat)).Cells.ClearContents
        Set Source = New ADODB.Connection
        With Source
            .Provider = "Provider=Microsoft.Jet.OLEDB.4.0"
            .ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Fichier & ";Extended Properties=""Excel 12.0;HDR=No;"""
            .Open
        End With
        Set ADOCommand = New ADODB.Command
        With ADOCommand
            .ActiveConnection = Source
            .CommandText = "SELECT * FROM [" & Feuille & Cellule & "]"
        End With
        Set Rst = New ADODB.Recordset
        Rst.Open ADOCommand, , adOpenKeyset, adLockOptimistic
        Set Rst = Source.Execute("[" & Feuille & Cellule & "]")
            Sheets(tabloEtats(numEtat)).Cells(1, 1).CopyFromRecordset Rst
                Rst.Close
                Source.Close
                Set Source = Nothing
                Set Rst = Nothing
                Set ADOCommand = Nothing
Next numEtatMon problème est qu'aujourd'hui, les données que je récupère ne sont plus dans des fichiers xls mais dans des fichiers xlsx.
Quand je modifie la ligne:
		Code:
	
	
	Fichier = ThisWorkbook.Path & "\Données\" & tabloEtats(numEtat) & ".xls"par
		Code:
	
	
	Fichier = ThisWorkbook.Path & "\Données\" & tabloEtats(numEtat) & ".xlsx"Il me met un message d'erreur à la ligne
		Code:
	
	
	.openErreur d'execution '-2147467259 (80004005)':
La table externe n'est pas dans le format attendu.
Or d'après mes recherches ce code permet bien d'ouvrir les fichiers xlsx.
Quelqu'un saurait-il une solution à ce problème?
En vous remerciant par avance.
 
	 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		