XL2007 : rechercher les fichiers avec extension ;zip

Le
le Nordiste
Bonjour,

Sous excell 2007:
Je désire parcourir un répertoire connu (strMonrepertoire)
à la recherche de fichier ayant une extension donnée ( .zip)


Comment faire ?


merci d evotre aide
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
michdenis
Le #20579591
Bonjour,

Qu'est-ce que tu entends par parcourir ?

Une façon de faire !
'-----------------------------
Sub test()

Dim Fichier As String
Dim Repertoire As String

Repertoire = "c:UsersDMDocuments"

Fichier = Dir(Repertoire & "*.zip")
Do While Fichier <> ""
'Le code que tu veux appliquer au fichier
MsgBox Fichier
Fichier = Dir()
Loop
End Sub
'-----------------------------



"le Nordiste" :
Bonjour,

Sous excell 2007:
Je désire parcourir un répertoire connu (strMonrepertoire)
à la recherche de fichier ayant une extension donnée ( .zip)


Comment faire ?


merci d evotre aide
le Nordiste
Le #20579681
Bonjour MichDenis,

Pourquoi j'ai pas su faire ça ?


Un grand merci à toi, Mich Denis et à ceux qui aurait réfléchi à mon
Pb.
michdenis
Le #20579671
Il y a aussi ceci :

'Déclaration de l'api dans le haut du module
Private Declare Function SetCurrentDirectoryA Lib _
"kernel32" (ByVal lpPathName As String) As Long
'--------------------------------
Sub ChDirNet(szPath As String)
'collectif, d'après Laurent Longre, mpep
Dim lReturn As Long
lReturn = SetCurrentDirectoryA(szPath)
If lReturn = 0 Then Err.Raise vbObjectError + 1, "Error setting path."
End Sub
'--------------------------------

Sub OpenMultipleFiles()
Dim Filtre As String, Titre As String, msg As String
Dim i As Integer, FilterIndex As Integer
Dim Filename As Variant

'Ton répertoire
ChDirNet "c:UsersDMDocuments"

'Les filtres
Filtre = "Winzip (*.zip),*.zip," & _
"Winrar (*.rar),*.rar"

'Le filtre par défaut
FilterIndex = 1
' Le message affiché dans la boîte
Titre = "Choix du fichier à ouvrir"
' Permet le choix multipe de fichiers)
Filename = Application.GetOpenFilename(FileFilter:=Filtre, _
FilterIndex:=FilterIndex, Title:=Title, MultiSelect:=True)
If Format(Filename) = False Then Exit Sub

' Exit on Cancel
If Not IsArray(Filename) Then
'utilisation de Shell pour l'ouverture du fichier
Exit Sub
End If
' Fichier à ouvrir
For i = LBound(Filename) To UBound(Filename)
'utilisation de Shell pour l'ouverture du fichier
Next i
MsgBox msg, vbInformation, "Files Opened" ' This can be removed
End Sub
'--------------------------------




"michdenis"
Bonjour,

Qu'est-ce que tu entends par parcourir ?

Une façon de faire !
'-----------------------------
Sub test()

Dim Fichier As String
Dim Repertoire As String

Repertoire = "c:UsersDMDocuments"

Fichier = Dir(Repertoire & "*.zip")
Do While Fichier <> ""
'Le code que tu veux appliquer au fichier
MsgBox Fichier
Fichier = Dir()
Loop
End Sub
'-----------------------------



"le Nordiste" :
Bonjour,

Sous excell 2007:
Je désire parcourir un répertoire connu (strMonrepertoire)
à la recherche de fichier ayant une extension donnée ( .zip)


Comment faire ?


merci d evotre aide
le Nordiste
Le #20580131
Bonsoir MichDenis,


j'ai un soucis pour dézipper, voici mon code :

Dim oApp As Object
…
strFichier est le nom du fichier.zip relevé
strRepertoireMensuel et strRépertoire sont constitués ici
…
Set oApp = CreateObject("Shell.Application")
oApp.Namespace(strRepertoiremensuel & "").CopyHere _
oApp.Namespace(strRepertoire & "" & strFichier).items

et il me retourne le message :
"variable objet ou variable de bloc with non définie"
alors qu'ailleurs ça fonctionne…

merci encore de te soucier de mon projet.
michdenis
Le #20583701
Voici un exemple, tu copies tout le code dans un module standard :


'Déclaration de l'api dans le haut du module
'******************************************
Private Declare Function SetCurrentDirectoryA Lib _
"kernel32" (ByVal lpPathName As String) As Long

Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpOperation As String, _
ByVal lpFile As String, ByVal lpParameters As String, _
ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
'******************************************
Sub ShellOuvre(fich)
ShellExecute 0, "open", fich, "", "", vbNormal
End Sub
'******************************************
Sub ChDirNet(szPath As String)
'collectif, d'après Laurent Longre, mpep
Dim lReturn As Long
lReturn = SetCurrentDirectoryA(szPath)
If lReturn = 0 Then Err.Raise vbObjectError + 1, "Error setting path."
End Sub
'******************************************
Sub Ouvrir_Fichier_Compressé()
Dim Filtre As String, Titre As String, msg As String
Dim i As Integer, FilterIndex As Integer
Dim Filename As Variant

'Ton répertoire
ChDirNet "c:UsersDMDocuments"

'Les filtres
Filtre = "Winzip (*.zip),*.zip," & _
"Winrar (*.rar),*.rar"

'Le filtre par défaut
FilterIndex = 1
' Le message affiché dans la boîte
Titre = "Choix du fichier à ouvrir"
' Permet le choix multipe de fichiers)
Filename = Application.GetOpenFilename(FileFilter:=Filtre, _
FilterIndex:=FilterIndex, Title:=Title, MultiSelect:úlse)

'Si l'usager annule la fenêtre de sélection
If TypeName(Filename) = "Boolean" Then Exit Sub

'Ouverture du fichier
ShellOuvre Filename

End Sub
'******************************************





"le Nordiste" :
Bonsoir MichDenis,


j'ai un soucis pour dézipper, voici mon code :

Dim oApp As Object

strFichier est le nom du fichier.zip relevé
strRepertoireMensuel et strRépertoire sont constitués ici

Set oApp = CreateObject("Shell.Application")
oApp.Namespace(strRepertoiremensuel & "").CopyHere _
oApp.Namespace(strRepertoire & "" & strFichier).items

et il me retourne le message :
"variable objet ou variable de bloc with non définie"
alors qu'ailleurs ça fonctionne…

merci encore de te soucier de mon projet.
Publicité
Poster une réponse
Anonyme