Bonjour,
j'ai créer un module vba dans Access pour importer des colonnes spécifiques d'un fichier excel vers une table de ma base de donnée mais lors de la compilation j'obtiens l'erreur suivante : "'Erreur d'importation: cette table contient des cellules hors de la plage de cellules définie dans cette feuille de calcul."
J'aimerais comprendre d'ou cela peut venir.
Merci à tous pour votre aide.
Voici le code :
' IMPORTATION DE FEUILLES EXCEL
' ---
Sub TestImportExcel()
Dim varFeuilles As Variant
' Liste des feuilles Excel à importer
varFeuilles = Array("lesy")
' Importation proprement dans la table dite
ImportExcel "monfichierexl.xlsx", _
varFeuilles, True, "lesy"
End Sub
Sub ImportExcel( _
ByVal strChemin As String, _
ByVal varFeuilles As Variant, _
ByVal blnNoms As Boolean, _
ByVal strTable As String _
)
' Déclaration des variables
Dim strFeuille As Variant
' Est-ce que le classeur Excel existe ?
If Dir(strChemin) = "" Then
MsgBox "Le classeur ['" & strChemin & "] est introuvable.", vbExclamation
Exit Sub
End If
' Vidage de la table si nécessaire
On Error GoTo ImportExcelErr
If MsgBox("Souhaitez-vous vider la table [" & strTable & "] avant l'importation ?", _
vbQuestion + vbYesNo) = vbYes Then
CurrentDb.Execute "DELETE * FROM [" & strTable & "];"
End If
' Procédure d'importation
For Each strFeuille In varFeuilles
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, strTable, strChemin, True, "AK2:AK1009"
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12Xml, strTable, strChemin, True, "AL2:AL108"
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, strTable, strChemin, True, "AO2:AO1009"
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12Xml, strTable, strChemin, True, "AR2:AR1009"
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12Xml, strTable, strChemin, True, "G4:G1011"
Next
' Un p'tit message pour terminer :-)
MsgBox "Opération terminée !", vbInformation
Exit Sub
ImportExcelErr:
MsgBox "Erreur d'importation : " & Err.Description, vbExclamation
Exit Sub
End Sub
Partager