Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

XL2007 : rechercher les fichiers avec extension ;zip

5 réponses
Avatar
le Nordiste
Bonjour,

Sous excell 2007:
Je d=E9sire parcourir un r=E9pertoire connu (strMonrepertoire)
=E0 la recherche de fichier ayant une extension donn=E9e ( .zip)


Comment faire ?


merci d evotre aide

5 réponses

Avatar
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" a écrit dans le message de groupe de discussion
:
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
Avatar
le Nordiste
Bonjour MichDenis,

Pourquoi j'ai pas su faire ça ?


Un grand merci à toi, Mich Denis et à ceux qui aurait réfléchi à mon
Pb.
Avatar
michdenis
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" a écrit dans le message de groupe de discussion :

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" a écrit dans le message de groupe de discussion
:
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
Avatar
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.
Avatar
michdenis
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" a écrit dans le message de groupe de discussion
:
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.