.FoundFiles dans 2007 [Résolu]

Signaler
Messages postés
59
Date d'inscription
mardi 4 décembre 2007
Statut
Membre
Dernière intervention
28 juin 2012
-
Messages postés
59
Date d'inscription
mardi 4 décembre 2007
Statut
Membre
Dernière intervention
28 juin 2012
-
Bonjour a tous,

J'ai un petit soucis sur le comptage de dossier.
.FoundFiles fonctionnait avec 2003 mais dans l'office 2007 cela ne semble plus fonctionner.

QQ'1 a t-il une idée ?
Merci de vos réponses,

Lezeps ;-))

54 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
67
Si tu avais utilisé la coloration syntaxique (3eme icone à droite), ces indentations seraient toujours là.

En effet, cette fonction a disparue, bien que toujours présente dans l'aide de Office 2007.

Tape "Office 2007 FileSearch" sur ton moteur de recherches favori et tu trouveras une solution de remplacement très proche du FileSearch (complément XLA)
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
67
Salut

Il faudrait savoir de quel objet tu parles.
Qu'y a t-il devant le point de .FoundFiles ?

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
59
Date d'inscription
mardi 4 décembre 2007
Statut
Membre
Dernière intervention
28 juin 2012

bonjour Jack,

Je m'en sert pour une variable qui compte le nb de dossier ou fichiers dans un dossier que je choisis via une msgbox
=> "For i = 1 To .FoundFiles.Count"

Or ma variable est égal à 0 dans 2007. il ne doit donc pas comprendre " .FoundFiles.Count"

dans 2003, j'avais bien le nombre de "fichiers,dossiers"

Merci de ta réponse

Lezeps ;-))
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
225
Bonjour
Ce que tu écris là ne pouvant fonctionner que dans un bloc With, montre la totalité de ce bloc !


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
59
Date d'inscription
mardi 4 décembre 2007
Statut
Membre
Dernière intervention
28 juin 2012

Voici, voilà...

Mais comme je le disais, avec O2003c pas de soucis, c'est en 2007 que j'ai un pb.
En amont j'ai la déclaration des variables, et tout et tout.

With Application.FileSearch
.NewSearch
.LookIn = Directory
.Filename = "*.*" ' this can be '*.*
.SearchSubFolders = True
.Execute
For i = 1 To .FoundFiles.Count
If FileDateTime(.FoundFiles(i)) > StartDate Then
Cells(R, 1) = .FoundFiles(i)
Cells(R, 3) = Right(Cells(R, 1), Len(.FoundFiles(i)) - InStrRev(Cells(R, 1).Value, ""))
'Cells(R, 2) = FileLen(.FoundFiles(i))
Cells(R, 2) = FileDateTime(.FoundFiles(i))
R = R + 1
End If
Next i
End With

Merci à vous...

Lezeps ;-))
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
225
que contient Directory en mode debug ?


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
303
Date d'inscription
mercredi 12 janvier 2005
Statut
Membre
Dernière intervention
3 octobre 2013
1
Bonjour
A ma cdonnaissance filesearch n'existe plus en 2007

Bonne journée
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
62
Pas indispensable, néanmoins...
une boucle autour de Dir, ou
au pire, quelques appels a FSO feront le job

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Messages postés
303
Date d'inscription
mercredi 12 janvier 2005
Statut
Membre
Dernière intervention
3 octobre 2013
1
Voici ce que j'utilise

Function Cherchefichier(ByRef strDir As String, ByRef searchTerm As String)
Dim fso As Object
Dim strName As String
Dim strArr(1 To 65536, 1 To 1) As String, i As Long
On Error GoTo errr
Fichiertrouve = False
Let strName = Dir$(strDir & "\*" & searchTerm)
Do While strName <> vbNullString
Let i = i + 1
Let strArr(i, 1) = strDir & "" & strName
Let strName = Dir$()
Loop
Set fso = CreateObject("Scripting.FileSystemObject")
Call recurseSubFolders(fso.GetFolder(strDir), strArr(), i, searchTerm)
Set fso = Nothing
If i > 0 Then
Fichiertrouve = True
Chemin_fichier strArr(i, 1) 'pour mémoire : strArr chemin du fichier
End If
Exit Function
errr:
If err.Number = 76 Then Resume Next ' répertoire inexistant
End Function

Private Sub recurseSubFolders(ByRef Folder As Object, _
ByRef strArr() As String, _
ByRef i As Long, _
ByRef searchTerm As String)
Dim SubFolder As Object
Dim strName As String
On Error GoTo errr
For Each SubFolder In Folder.SubFolders
Let strName = Dir$(SubFolder.Path & "\*" & searchTerm)
Do While strName <> vbNullString
Let i = i + 1
Let strArr(i, 1) = SubFolder.Path & "" & strName
If Mid(strArr(i, 1), Len(strArr(i, 1)) - (Len(searchTerm) - 1), Len(searchTerm)) Then
Chemin_fichier = strArr(i, 1)
End If
Loop
Call recurseSubFolders(SubFolder, strArr(), i, searchTerm)
Next
Exit Sub
errr:
If err.Number 52 Then Resume Next '52 accès interdit
End Sub
Messages postés
303
Date d'inscription
mercredi 12 janvier 2005
Statut
Membre
Dernière intervention
3 octobre 2013
1
Désolé mais le copier collé a supprimé les décalages
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
225
Filesearch n'est en effet plus suporté par VBA 2007

Mais ZEPS256 nous a alors dans ce cas caché l'utilisation de un "On Error Resume Next" dans son code, sans lequel il aurait eu un message d'erreur !



____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
59
Date d'inscription
mardi 4 décembre 2007
Statut
Membre
Dernière intervention
28 juin 2012

Effectivement ucfoutu. j'ai omis de vous le préciser, en sachant que je ne pensais pas être une info importante ; mon problème était identifié non ?

Bref, le souci est bien FileSearch dans 2007.
Trouvé le complément.
Plus qu'à modifier mon code.

Merci à tous...

Lezeps ;-))
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
225
je ne pensais pas être une info importante

Eh oui, car aurait immédiatement et très directement et explicitement été dénoncée la ligne disant :
With Application.FileSearch

plutôt que d'aller chercher ailleurs !

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
62
Il est de bon ton de se passer de On Error...

Il est très souvent (pas toujours) possible de s'en passer, en effectuant certaines vérifications...
repertoire existant ?
données saisies correctes, etc.


Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Messages postés
59
Date d'inscription
mardi 4 décembre 2007
Statut
Membre
Dernière intervention
28 juin 2012

Bien reçu.
Je veillerai à ce "détail" sur mes codes.
Y aurait-il qq chose sur le sujet. je ne me serts certainement pas assez de certaines vérifications.
Vers quoi je peux me diriger pour en savoir un peu plus ?

Lezeps ;-))
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
225
Y aurait-il qq chose sur le sujet. je ne me serts certainement pas assez de certaines vérifications.
Vers quoi je peux me diriger pour en savoir un peu plus ?

Aucune liste exhaustive.
C'est à toi qu'il appartient, à chaque instruction, etc... de vérifier que son écriture écarte la possibilité de la survenue d'une erreur. D'écrire autrement sinon.
Ne doivent rester en gestion d'erreurs que les erreurs indépendantes de ton code.
Par exemple : une division par zéro provoquerait une erreur ===>>
on ne "résout" pas alors avec une gestion d'erreur, mais avec une expression conditionnelle (ne diviser que si différent de 0)

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
59
Date d'inscription
mardi 4 décembre 2007
Statut
Membre
Dernière intervention
28 juin 2012

Bon , je dsl, mais je ne résouds pas mon problème.
Et je tourne en rond.
J'ai bien installé le module de classe ClasseFileSearch, mais ça ne change rien.
Mais je doit être une buse, pas possible !!!

Par contre ça m'a résolu le pb pour un module ou je cherche un mot dans une chaine de caractère.
Mais là je bloque.

J'ai toujours le pb sur "Application.FileSearch"
Pas géré !

Encore help me....

Et j'ai du mal avec les Functions. Le problème pourrait venir de là ?

Lezeps ;-))

Bonjour,

Si ton nouveau FileSearch est une classe ou une macro complémentaire, tu ne peux probablement pas l'appeler avec application.filesearch. Comme je n'ai pas vu le cossin en question, je suppose que tu as besoin de quelque chose du genre:

dim espion as filesearch
with espion
etc.

Bonjour,

Je reviens d'un petit voyage sur MSDN. FileSearch est revenu dans Office 2010 sous la forme d'une Interface et serait maintenant disponible pour tous les programmes d'Office 2010. Je vais regarder cela un de ces jours...
Messages postés
59
Date d'inscription
mardi 4 décembre 2007
Statut
Membre
Dernière intervention
28 juin 2012

cmarcotte,

Effectivement, FileSearch est un module de classe.
('Module de classe ClasseFileSearch pour Excel 2007'SilkyRoad
'http://silkyroad.developpez.com/)

Je ne peux pas l'appeler avec "application"
Pourrais tu m'en dire plus pour détourner le pb.

dim espion as filesearch
with espion
etc.
Cette solution me bloque la suite

'with Application.FileSearch (je l'ai ms en commentaire pour voir...)
With espion
.NewSearch bug => Msgbox "membre de méthode ou de données introuvable"
.LookIn Directory > idem Msgbox "membre de méthode ou de données introuvable"
.Filename "*.*" ' this can be '*.*> idem Msgbox "membre de méthode ou de données introuvable"
.SearchSubFolders = True
.Execute


Merci de ta réponse,

Lezeps ;-))