Je rédige actuellement une macro qui, dans un premier temps, dezippe des
fichiers gz, les classe puis les importe sous Excel pour exploiter les
données contenues dans ces derniers.
Mon souci se pose au niveau des fichier zippés.
Dans un premier temps, j'utilise cette fonction qui me recherche l'ensemble
des fichiers zippés :
With Application.FileSearch
.NewSearch
.LookIn = "c:"
.SearchSubFolders = True
.Filename = "*.gz"
End With
With Application.FileSearch
If .Execute() > 0 Then
For i = 1 To .FoundFiles.Count
'Enregistrement des fichiers trouvés dans un tableau
tabarchive(i) = .FoundFiles(i)
Next
End If
End With
Puis, un peu plus loin, dans mon code, je dezippe les fichiers trouvés :
For i = 0 To indice - 1
Shell ("C:\Program Files\WinZip\winzip32.exe -e " & tabarchive(i) &
" c:\Temp"
Next
Or, mon souci est que il arrive que mes fichiers zippés soient vides. Et,
lorsque je lance la commande de dézippage sur un fichier vide, Winzip reste
ouvert avec le mesage d'erreur adequat (inacceptable pour 300 fichiers :( ).
L'idée est donc de pouvoir tester la taille des fichiers gz trouvés. Si la
taille est très proche de 0 ko, pas de dezippage.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
twintopiste
Ne cherchez, plus, j'ai trouvé. La fonction FileLen renvoie la taille en octet du fichier entré en argument...
bonjour,
Je rédige actuellement une macro qui, dans un premier temps, dezippe des fichiers gz, les classe puis les importe sous Excel pour exploiter les données contenues dans ces derniers. Mon souci se pose au niveau des fichier zippés. Dans un premier temps, j'utilise cette fonction qui me recherche l'ensemble des fichiers zippés :
With Application.FileSearch .NewSearch .LookIn = "c:" .SearchSubFolders = True .Filename = "*.gz" End With With Application.FileSearch If .Execute() > 0 Then For i = 1 To .FoundFiles.Count 'Enregistrement des fichiers trouvés dans un tableau tabarchive(i) = .FoundFiles(i) Next End If End With
Puis, un peu plus loin, dans mon code, je dezippe les fichiers trouvés :
For i = 0 To indice - 1 Shell ("C:Program FilesWinZipwinzip32.exe -e " & tabarchive(i) & " c:Temp" Next
Or, mon souci est que il arrive que mes fichiers zippés soient vides. Et, lorsque je lance la commande de dézippage sur un fichier vide, Winzip reste ouvert avec le mesage d'erreur adequat (inacceptable pour 300 fichiers :( ). L'idée est donc de pouvoir tester la taille des fichiers gz trouvés. Si la taille est très proche de 0 ko, pas de dezippage.
Mais comment faire ce test ?
Merci par avance Marc
Ne cherchez, plus, j'ai trouvé. La fonction FileLen renvoie la taille en
octet du fichier entré en argument...
bonjour,
Je rédige actuellement une macro qui, dans un premier temps, dezippe des
fichiers gz, les classe puis les importe sous Excel pour exploiter les
données contenues dans ces derniers.
Mon souci se pose au niveau des fichier zippés.
Dans un premier temps, j'utilise cette fonction qui me recherche l'ensemble
des fichiers zippés :
With Application.FileSearch
.NewSearch
.LookIn = "c:"
.SearchSubFolders = True
.Filename = "*.gz"
End With
With Application.FileSearch
If .Execute() > 0 Then
For i = 1 To .FoundFiles.Count
'Enregistrement des fichiers trouvés dans un tableau
tabarchive(i) = .FoundFiles(i)
Next
End If
End With
Puis, un peu plus loin, dans mon code, je dezippe les fichiers trouvés :
For i = 0 To indice - 1
Shell ("C:Program FilesWinZipwinzip32.exe -e " & tabarchive(i) &
" c:Temp"
Next
Or, mon souci est que il arrive que mes fichiers zippés soient vides. Et,
lorsque je lance la commande de dézippage sur un fichier vide, Winzip reste
ouvert avec le mesage d'erreur adequat (inacceptable pour 300 fichiers :( ).
L'idée est donc de pouvoir tester la taille des fichiers gz trouvés. Si la
taille est très proche de 0 ko, pas de dezippage.
Ne cherchez, plus, j'ai trouvé. La fonction FileLen renvoie la taille en octet du fichier entré en argument...
bonjour,
Je rédige actuellement une macro qui, dans un premier temps, dezippe des fichiers gz, les classe puis les importe sous Excel pour exploiter les données contenues dans ces derniers. Mon souci se pose au niveau des fichier zippés. Dans un premier temps, j'utilise cette fonction qui me recherche l'ensemble des fichiers zippés :
With Application.FileSearch .NewSearch .LookIn = "c:" .SearchSubFolders = True .Filename = "*.gz" End With With Application.FileSearch If .Execute() > 0 Then For i = 1 To .FoundFiles.Count 'Enregistrement des fichiers trouvés dans un tableau tabarchive(i) = .FoundFiles(i) Next End If End With
Puis, un peu plus loin, dans mon code, je dezippe les fichiers trouvés :
For i = 0 To indice - 1 Shell ("C:Program FilesWinZipwinzip32.exe -e " & tabarchive(i) & " c:Temp" Next
Or, mon souci est que il arrive que mes fichiers zippés soient vides. Et, lorsque je lance la commande de dézippage sur un fichier vide, Winzip reste ouvert avec le mesage d'erreur adequat (inacceptable pour 300 fichiers :( ). L'idée est donc de pouvoir tester la taille des fichiers gz trouvés. Si la taille est très proche de 0 ko, pas de dezippage.