Fichiers Excel inexploitables
Bonjour à tous,
je souhaite extraire des données de plusieurs fichiers excel...
J'ai réussi à trouver un code qui fait parfaitement le travail seulement il n'arrive pas à extraire les données des fichiers excel que je souhaite exploiter et je ne comprend pas pourquoi...
J'ai fait plusieurs test avec d'autres fichiers l'extraction se passe bien mais avec les fichiers ci-joint le code se lance sans bug cependant la copie ne se fait pas. j'ai même converti les fichiers ( je me disais en effet que c'est problème de compatibilité) "Fichier\convertir" dans excel; changer l'extension etc... rien n'y fait...
Vous trouverez donc en fichier joint les fichiers excel mis en cause dans leur version original (sans rien avoir changé si ce n'est le contenu - il s'agit en effet de relevé téléchargé) avec le fichier qui permet de faire l'extraction.
je vous remercie d'avance pour votre aide.
Public Sub getDataFromWbs()
OptimizeVBA True
Dim wb As Workbook, ws As Worksheet
Dim x As Long
Dim y As Long
Dim fso
Dim fldr
Dim wbFile
Dim wsLR
Set fso = CreateObject("Scripting.FileSystemObject")
Set fldr = fso.GetFolder("C:\Users\D...\")
y = ThisWorkbook.Sheets("Feuil1").Cells(Rows.Count, 1).End(xlUp).Row + 1
For Each wbFile In fldr.Files
y = ThisWorkbook.Sheets("Feuil1").Cells(Rows.Count, 1).End(xlUp).Row + 1
If fso.GetExtensionName(wbFile.Name) = "xls" Then
Set wb = Workbooks.Open(wbFile.Path)
For Each ws In wb.Sheets
wsLR = ws.Cells(Rows.Count, 1).End(xlUp).Row
For x = 3 To wsLR
ThisWorkbook.Sheets("Feuil1").Cells(y, 2) = ws.Cells(x, 2)
ThisWorkbook.Sheets("Feuil1").Cells(y, 3) = ws.Cells(x, 3)
ThisWorkbook.Sheets("Feuil1").Cells(y, 4) = ws.Cells(x, 4)
ThisWorkbook.Sheets("Feuil1").Cells(y, 5) = ws.Cells(x, 5)
ThisWorkbook.Sheets("Feuil1").Cells(y, 6) = ws.Cells(x, 6)
ThisWorkbook.Sheets("Feuil1").Cells(y, 7) = ws.Cells(x, 7)
y = y + 1
Next x
Next ws
wb.Close
End If
Next wbFile
OptimizeVBA False
End Sub
Bonjour,
Dans les classeurs TESTx, les données débutent en colonne B.
La recherche de la dernière ligne renseignée :
wsLR = ws.Cells(Rows.Count, 1).End(xlUp).Rows'effectue sur la colonne 1 (donc A) et forcément retournera 1
For x = 3 To wsLRwsLR étant égal à 1, et qu'on a pas précisé de step négatif, il n'y a pas d'erreur mais la boucle n'est pas exécutée.
En faisant la recherche de dernière ligne sur colonne B (2), ça fonctionne.
Est ce que ce sera compatible avec d'autres fichiers ?
A+
Bonsoir AlgoPlus,
Merci infiniment ça m'a complètement échappé. j'étais tellement convaincu que le problème venait du fichier que je n'ai pas prêté attention au code.
Oui il est compatible avec d'autres fichiers Excel.
Merci encore.