armelle1303
XLDnaute Junior
bonsoir
un problème de déclaration d'objet, enfin c'est que vba me dit.
Tout d'abord ce code permet de lister ou tous les fichiers contenus dans un dossier et ses sousdos ou les fichiers contenant une partie d'un mot.
Dans le code ci dessous j'ai un bug avec FileItem
si je le déclare :
-en objet me renvoie erreur d'éxécution 424 : objet requis à la ligne For Each FileItem
- en variant, la ligne for fonctionne et me renvoie bien le chemin et le nom du fichier trouvé
mais à la ligne suivante (Cells...) me renvoie : erreur d'éxécution 424 : objet requis
enfin dans les 2 cas cela bug
j'ai réalisé ce code en mélangeant plusieurs exemples trouvés sur le forum (d'ailleurs merci à tous ceux qui ont posté sur ce sujet).
Mais je ne maitrise pas tout ce que j'ai recopié cela se confirme
je pense que cela vient des déclarations ou je n'ai pas mis de set... mais je ne sais pas quoi y mettre d'ailleurs.
je compte sur votre savoir pour me corriger ce code.
vous trouverez le code aussi dans le module de la PJ
Merci d'avance.
un problème de déclaration d'objet, enfin c'est que vba me dit.
Tout d'abord ce code permet de lister ou tous les fichiers contenus dans un dossier et ses sousdos ou les fichiers contenant une partie d'un mot.
Dans le code ci dessous j'ai un bug avec FileItem
si je le déclare :
-en objet me renvoie erreur d'éxécution 424 : objet requis à la ligne For Each FileItem
- en variant, la ligne for fonctionne et me renvoie bien le chemin et le nom du fichier trouvé
mais à la ligne suivante (Cells...) me renvoie : erreur d'éxécution 424 : objet requis
enfin dans les 2 cas cela bug
j'ai réalisé ce code en mélangeant plusieurs exemples trouvés sur le forum (d'ailleurs merci à tous ceux qui ont posté sur ce sujet).
Mais je ne maitrise pas tout ce que j'ai recopié cela se confirme
je pense que cela vient des déclarations ou je n'ai pas mis de set... mais je ne sais pas quoi y mettre d'ailleurs.
je compte sur votre savoir pour me corriger ce code.
vous trouverez le code aussi dans le module de la PJ
Merci d'avance.
PHP:
Sub essai2()
contenu1 = InputBox("contenu cherché?")
If contenu1 = "tous" Then
contenu = "*.*"
Else
contenu = contenu1 & "*"
End If
repertoire = ThisWorkbook.Path
'MsgBox repertoire
If contenu <> "" Then
RechercheContenu repertoire, contenu
End If
End Sub
Sub RechercheContenu(repertoire, contenu)
Dim ScanFic As Office.FileSearch
Dim Diag As String
Dim Nbr As Long
Dim I As Long
Dim DernLig As Long
'Dim FileItem As Object
'Dim FileItem
'Dim FileItem As Scripting.FileSystemObject
'Set FileItem = New Scripting.FileSystemObject
Set ScanFic = Application.FileSearch
With ScanFic
.NewSearch
.LookIn = repertoire
.SearchSubFolders = True
.Filename = contenu
.MatchTextExactly = False
.FileType = msoFileTypeAllFiles
If .Execute > 0 Then
Nbr = .Execute
Diag = Format(Nbr, "0 ""fichiers trouvés""")
Application.ScreenUpdating = False
Sheets(3).Select
DernLig = Cells(ActiveSheet.Rows.Count, "A").End(xlUp).Row
If DernLig >= 1 Then
Sheets(3).Activate: Sheets(3).Select: Cells.Clear
End If
Cells(1, 1) = "Fichiers": Cells(1, 2) = "Créé": Cells(1, 3) = "Modifié"
Cells(1, 4) = "Chemins ": Cells(1, 5) = "Type produit et famille"
DernLig = Cells(ActiveSheet.Rows.Count, "A").End(xlUp).Row + 1
For Each FileItem In .FoundFiles
MsgBox FileItem
Cells(DernLig, 1) = FileItem.Name
Cells(DernLig, 2) = FileItem.DateCreated
Cells(DernLig, 3) = FileItem.DateLastModified
ActiveSheet.Hyperlinks.Add Cells(DernLig, 4), FileItem.Path
'typeProdFam=
'Cells(DernLig, 5) =typeProdFam
'Cells(DernLig, 5) =FileItem.ParentFolder
DernLig = DernLig + 1
'Sheets(3).Cells(I, 1).Value = NomFic ' adapter le nom de la feuille
Next
If DernLig > 2 Then
Range("A2:D" & DernLig).Select 'tri sur base chemin en Col(D)
Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
ActiveSheet.Columns.AutoFit: Range("A1").Select
End If
Set FileItem = Nothing
MsgBox Diag
Else
MsgBox ("aucun fichier trouvé!")
End If
End With
End Sub