OVH Cloud OVH Cloud

Fonction Dir()

10 réponses
Avatar
Tucky
Bonjour à tous,

J'utilise la fonction Dir afin de récupérer les noms des fichiers contenus
dans le répertoire où se trouve mon fichier Excel ; afin de les compresser.
Cependant je souhaiterai exclure des noms de fichiers mon fichier Excel (en
effet en les compressant avec WinZip, j'obtiens un message d'erreur car il
compresse un fichier ouvert).

Merci de votre aide

Tucky

*** Mon code ***
fichiers = Dir(ThisWorkbook.Path & "\*.*")
chemin = ActiveWorkbook.Path

Columns("A:A").Select
Selection.ClearContents
a = 1

While fichiers <> ""
fichiers = Dir()
Shell "C:\Program Files\WinZip\winzip32.exe -a " & chemin & "\test.zip "
& chemin & "\" & fichiers
Cells(a, 1) = fichiers
a = a + 1
Wend

Cells(a, 1).Select
Cells(1, 2) = ActiveWorkbook.Name
Cells(2, 2) = chemin

10 réponses

Avatar
Daniel
Bonjour.
Non testé :

Sub test()
Dim Dossier As String, Fich As String
Dossier = "C:temp"
fichier = Dir(Dossier & "*.*")
Do While fichier <> ""
If fichier <> ActiveWorkbook.Name Then
TonTraitement
End If
fichier = Dir
Loop
End Sub

Cordialement.
Daniel

"Tucky" a écrit dans le message de news:

Bonjour à tous,

J'utilise la fonction Dir afin de récupérer les noms des fichiers contenus
dans le répertoire où se trouve mon fichier Excel ; afin de les
compresser.
Cependant je souhaiterai exclure des noms de fichiers mon fichier Excel
(en
effet en les compressant avec WinZip, j'obtiens un message d'erreur car il
compresse un fichier ouvert).

Merci de votre aide

Tucky

*** Mon code ***
fichiers = Dir(ThisWorkbook.Path & "*.*")
chemin = ActiveWorkbook.Path

Columns("A:A").Select
Selection.ClearContents
a = 1

While fichiers <> ""
fichiers = Dir()
Shell "C:Program FilesWinZipwinzip32.exe -a " & chemin & "test.zip
"
& chemin & "" & fichiers
Cells(a, 1) = fichiers
a = a + 1
Wend

Cells(a, 1).Select
Cells(1, 2) = ActiveWorkbook.Name
Cells(2, 2) = chemin


Avatar
Daniel
Plutôt :

Sub test()
Dim Dossier As String, Fichier As String
Dossier = "C:temp"
Fichier = Dir(Dossier & "*.*")
Do While Fichier <> ""
If Fichier <> ActiveWorkbook.Name Then
traitement
End If
Fichier = Dir
Loop
End Sub

Daniel
"Daniel" a écrit dans le message de news:

Bonjour.
Non testé :

Sub test()
Dim Dossier As String, Fich As String
Dossier = "C:temp"
fichier = Dir(Dossier & "*.*")
Do While fichier <> ""
If fichier <> ActiveWorkbook.Name Then
TonTraitement
End If
fichier = Dir
Loop
End Sub

Cordialement.
Daniel

"Tucky" a écrit dans le message de news:

Bonjour à tous,

J'utilise la fonction Dir afin de récupérer les noms des fichiers
contenus
dans le répertoire où se trouve mon fichier Excel ; afin de les
compresser.
Cependant je souhaiterai exclure des noms de fichiers mon fichier Excel
(en
effet en les compressant avec WinZip, j'obtiens un message d'erreur car
il
compresse un fichier ouvert).

Merci de votre aide

Tucky

*** Mon code ***
fichiers = Dir(ThisWorkbook.Path & "*.*")
chemin = ActiveWorkbook.Path

Columns("A:A").Select
Selection.ClearContents
a = 1

While fichiers <> ""
fichiers = Dir()
Shell "C:Program FilesWinZipwinzip32.exe -a " & chemin & "test.zip
"
& chemin & "" & fichiers
Cells(a, 1) = fichiers
a = a + 1
Wend

Cells(a, 1).Select
Cells(1, 2) = ActiveWorkbook.Name
Cells(2, 2) = chemin






Avatar
JLuc
Bonjour à tous,

J'utilise la fonction Dir afin de récupérer les noms des fichiers contenus
dans le répertoire où se trouve mon fichier Excel ; afin de les compresser.
Cependant je souhaiterai exclure des noms de fichiers mon fichier Excel (en
effet en les compressant avec WinZip, j'obtiens un message d'erreur car il
compresse un fichier ouvert).

Merci de votre aide

Tucky

*** Mon code ***
fichiers = Dir(ThisWorkbook.Path & "*.*")
chemin = ActiveWorkbook.Path

Columns("A:A").Select
Selection.ClearContents
a = 1

While fichiers <> ""
fichiers = Dir()
Shell "C:Program FilesWinZipwinzip32.exe -a " & chemin & "test.zip "
& chemin & "" & fichiers
Cells(a, 1) = fichiers
a = a + 1
Wend

Cells(a, 1).Select
Cells(1, 2) = ActiveWorkbook.Name
Cells(2, 2) = chemin


1/ tu devrais placer la ligne "fichiers = Dir()" juste avant le Wend
2/ teste le fichier :
If fichiers <> ActiveWorkbook.Name Then
Shell "...
End If

--
JLuc

Avatar
Tucky
Merci Daniel de ta réponse, cela correspond parfaitement à ce que j'attendais.

Bonne après-midi.

Tucky


Plutôt :

Sub test()
Dim Dossier As String, Fichier As String
Dossier = "C:temp"
Fichier = Dir(Dossier & "*.*")
Do While Fichier <> ""
If Fichier <> ActiveWorkbook.Name Then
traitement
End If
Fichier = Dir
Loop
End Sub

Daniel
"Daniel" a écrit dans le message de news:

Bonjour.
Non testé :

Sub test()
Dim Dossier As String, Fich As String
Dossier = "C:temp"
fichier = Dir(Dossier & "*.*")
Do While fichier <> ""
If fichier <> ActiveWorkbook.Name Then
TonTraitement
End If
fichier = Dir
Loop
End Sub

Cordialement.
Daniel

"Tucky" a écrit dans le message de news:

Bonjour à tous,

J'utilise la fonction Dir afin de récupérer les noms des fichiers
contenus
dans le répertoire où se trouve mon fichier Excel ; afin de les
compresser.
Cependant je souhaiterai exclure des noms de fichiers mon fichier Excel
(en
effet en les compressant avec WinZip, j'obtiens un message d'erreur car
il
compresse un fichier ouvert).

Merci de votre aide

Tucky

*** Mon code ***
fichiers = Dir(ThisWorkbook.Path & "*.*")
chemin = ActiveWorkbook.Path

Columns("A:A").Select
Selection.ClearContents
a = 1

While fichiers <> ""
fichiers = Dir()
Shell "C:Program FilesWinZipwinzip32.exe -a " & chemin & "test.zip
"
& chemin & "" & fichiers
Cells(a, 1) = fichiers
a = a + 1
Wend

Cells(a, 1).Select
Cells(1, 2) = ActiveWorkbook.Name
Cells(2, 2) = chemin











Avatar
Tucky
Merci JLuc, mais en plaçant "fichiers = Dir()" juste avant le Wend cela fait
une boucle infinie.
Il fallait utiliser un bloc If/Then/End If, mais en déclarant fichier et
chemin as string.
J'ai donc utilisé la réponse de Daniel.

Merci et bonne après-midi


Bonjour à tous,

J'utilise la fonction Dir afin de récupérer les noms des fichiers contenus
dans le répertoire où se trouve mon fichier Excel ; afin de les compresser.
Cependant je souhaiterai exclure des noms de fichiers mon fichier Excel (en
effet en les compressant avec WinZip, j'obtiens un message d'erreur car il
compresse un fichier ouvert).

Merci de votre aide

Tucky

*** Mon code ***
fichiers = Dir(ThisWorkbook.Path & "*.*")
chemin = ActiveWorkbook.Path

Columns("A:A").Select
Selection.ClearContents
a = 1

While fichiers <> ""
fichiers = Dir()
Shell "C:Program FilesWinZipwinzip32.exe -a " & chemin & "test.zip "
& chemin & "" & fichiers
Cells(a, 1) = fichiers
a = a + 1
Wend

Cells(a, 1).Select
Cells(1, 2) = ActiveWorkbook.Name
Cells(2, 2) = chemin


1/ tu devrais placer la ligne "fichiers = Dir()" juste avant le Wend
2/ teste le fichier :
If fichiers <> ActiveWorkbook.Name Then
Shell "...
End If

--
JLuc






Avatar
JLuc
mais en plaçant "fichiers = Dir()" juste avant le Wend cela fait
une boucle infinie.


Erreur, mais le fait de le mettre où tu l'a placé, tu rate le premier
fichier
Pour le test, c'est ce que je t'ai propose ;-)

--
JLuc

Avatar
Tucky
Désolé, j'ai fait une erreur en te répondant, j'avais essayé en mettant la
ligne "fichiers = Dir()" juste avant le While ; c'est donc de ma faute, et je
te prie de m'excuser.

Tucky


Bonjour à tous,

J'utilise la fonction Dir afin de récupérer les noms des fichiers contenus
dans le répertoire où se trouve mon fichier Excel ; afin de les compresser.
Cependant je souhaiterai exclure des noms de fichiers mon fichier Excel (en
effet en les compressant avec WinZip, j'obtiens un message d'erreur car il
compresse un fichier ouvert).

Merci de votre aide

Tucky

*** Mon code ***
fichiers = Dir(ThisWorkbook.Path & "*.*")
chemin = ActiveWorkbook.Path

Columns("A:A").Select
Selection.ClearContents
a = 1

While fichiers <> ""
fichiers = Dir()
Shell "C:Program FilesWinZipwinzip32.exe -a " & chemin & "test.zip "
& chemin & "" & fichiers
Cells(a, 1) = fichiers
a = a + 1
Wend

Cells(a, 1).Select
Cells(1, 2) = ActiveWorkbook.Name
Cells(2, 2) = chemin


1/ tu devrais placer la ligne "fichiers = Dir()" juste avant le Wend
2/ teste le fichier :
If fichiers <> ActiveWorkbook.Name Then
Shell "...
End If

--
JLuc






Avatar
Tucky
Re-bonjour

Je me permets un complément de question : j'ai un message d'erreur quand le
nom du fichier à zipper comport des espaces. Que puis-je faire afin d'éviter
cela ?

Merci d'avance.

Tucky


Plutôt :

Sub test()
Dim Dossier As String, Fichier As String
Dossier = "C:temp"
Fichier = Dir(Dossier & "*.*")
Do While Fichier <> ""
If Fichier <> ActiveWorkbook.Name Then
traitement
End If
Fichier = Dir
Loop
End Sub

Daniel
"Daniel" a écrit dans le message de news:

Bonjour.
Non testé :

Sub test()
Dim Dossier As String, Fich As String
Dossier = "C:temp"
fichier = Dir(Dossier & "*.*")
Do While fichier <> ""
If fichier <> ActiveWorkbook.Name Then
TonTraitement
End If
fichier = Dir
Loop
End Sub

Cordialement.
Daniel

"Tucky" a écrit dans le message de news:

Bonjour à tous,

J'utilise la fonction Dir afin de récupérer les noms des fichiers
contenus
dans le répertoire où se trouve mon fichier Excel ; afin de les
compresser.
Cependant je souhaiterai exclure des noms de fichiers mon fichier Excel
(en
effet en les compressant avec WinZip, j'obtiens un message d'erreur car
il
compresse un fichier ouvert).

Merci de votre aide

Tucky

*** Mon code ***
fichiers = Dir(ThisWorkbook.Path & "*.*")
chemin = ActiveWorkbook.Path

Columns("A:A").Select
Selection.ClearContents
a = 1

While fichiers <> ""
fichiers = Dir()
Shell "C:Program FilesWinZipwinzip32.exe -a " & chemin & "test.zip
"
& chemin & "" & fichiers
Cells(a, 1) = fichiers
a = a + 1
Wend

Cells(a, 1).Select
Cells(1, 2) = ActiveWorkbook.Name
Cells(2, 2) = chemin











Avatar
JLuc
c'est donc de ma faute, et je
te prie de m'excuser.


Ce n'est rien, ca arrive souvent ;-)

--
JLuc

Avatar
jps
saint patron du courrier électronique, donc....
jps

"JLuc" a écrit dans le message de news:

En ce jour de la Saint Emile,