.FoundFiles dans 2007

Résolu
ZEPS256 Messages postés 59 Date d'inscription mardi 4 décembre 2007 Statut Membre Dernière intervention 28 juin 2012 - 16 janv. 2012 à 11:51
ZEPS256 Messages postés 59 Date d'inscription mardi 4 décembre 2007 Statut Membre Dernière intervention 28 juin 2012 - 29 avril 2012 à 15:06
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

cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
16 janv. 2012 à 14:37
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)
3
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
16 janv. 2012 à 12:17
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)
0
ZEPS256 Messages postés 59 Date d'inscription mardi 4 décembre 2007 Statut Membre Dernière intervention 28 juin 2012
16 janv. 2012 à 12:28
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 ;-))
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 231
16 janv. 2012 à 12:32
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ZEPS256 Messages postés 59 Date d'inscription mardi 4 décembre 2007 Statut Membre Dernière intervention 28 juin 2012
16 janv. 2012 à 12:55
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 ;-))
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 231
16 janv. 2012 à 13:00
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
0
c148270 Messages postés 303 Date d'inscription mercredi 12 janvier 2005 Statut Membre Dernière intervention 3 octobre 2013 1
16 janv. 2012 à 13:25
Bonjour
A ma cdonnaissance filesearch n'existe plus en 2007

Bonne journée
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
16 janv. 2012 à 14:04
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
0
c148270 Messages postés 303 Date d'inscription mercredi 12 janvier 2005 Statut Membre Dernière intervention 3 octobre 2013 1
16 janv. 2012 à 14:15
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
0
c148270 Messages postés 303 Date d'inscription mercredi 12 janvier 2005 Statut Membre Dernière intervention 3 octobre 2013 1
16 janv. 2012 à 14:16
Désolé mais le copier collé a supprimé les décalages
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 231
16 janv. 2012 à 14:50
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
0
ZEPS256 Messages postés 59 Date d'inscription mardi 4 décembre 2007 Statut Membre Dernière intervention 28 juin 2012
16 janv. 2012 à 15:28
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 ;-))
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 231
16 janv. 2012 à 16:16
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
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
17 janv. 2012 à 07:00
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
0
ZEPS256 Messages postés 59 Date d'inscription mardi 4 décembre 2007 Statut Membre Dernière intervention 28 juin 2012
17 janv. 2012 à 08:24
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 ;-))
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 231
23 janv. 2012 à 10:04
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
0
ZEPS256 Messages postés 59 Date d'inscription mardi 4 décembre 2007 Statut Membre Dernière intervention 28 juin 2012
15 avril 2012 à 00:14
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 ;-))
0
Utilisateur anonyme
15 avril 2012 à 00:28
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.
0
Utilisateur anonyme
15 avril 2012 à 01:07
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...
0
ZEPS256 Messages postés 59 Date d'inscription mardi 4 décembre 2007 Statut Membre Dernière intervention 28 juin 2012
16 avril 2012 à 22:10
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 ;-))
0