FileShearch compatible Excel 2003 et 2007

Byfranck

XLDnaute Occasionnel
Bonjour à tous,

J'ai développé un outil pour la gestion clients qui est utilisé par de plus en plus de mes collègues.
Globalement c'est assez stable même sur des Windows et offices dans d'autres pays et donc d'autre langues.

Il me reste un problème semble-t-il lié au fait que sur certain postes Excel 2007 ait été installé pour ensuite être ensuite downgradé en 2003.
Du coup, l'utilisation de fileSearch me pose problème:
En pièce jointe le bout d'un USF qui permet sous 2003 d'afficher les fichiers pdf présents dans un sous répetoire (TOTO dans l'USF joint) et dont le nom contient une chaine de caractères (a placer dans la cellule B1 pour tester l'USF joint)
un double click sur la ligne et le pdf s'ouvre

Comme il n'est pas prévu que tout le monde migrer en 2007 pour l'instant, il faudrait que je trouve une solution qu fonctionne sous 2003 et 2007

J'ai cherché dans le forum et sur Google, je trouve des idées des idées pour remplacer l'apli fileSearch mais je ne m'en sort pas car je ne sais jamais si ça plante parce que je suis sous 2003 ou si j'ai une erreur dans mon code.
De plus je n'ai pas de quoi tester sous 2007


Vous comprendrez que toute aide est la bienvenue!

Merci d'avance

Franck
 

Pièces jointes

  • Classeur1.xls
    34 KB · Affichages: 60
  • Classeur1.xls
    34 KB · Affichages: 74
  • Classeur1.xls
    34 KB · Affichages: 69

pierrejean

XLDnaute Barbatruc
Re : FileShearch compatible Excel 2003 et 2007

bonjour ByFranck

Pas tout resolu mais voici une 1ere piste obtenue grace a Michel XLD (voir + loin)

Code:
chemin = ThisWorkbook.Path & "\" & "Offers\"
Fichier = Dir(chemin & "*.PDF")
Do While Fichier <> ""
    If InStr(Fichier, TextBox1.Value) <> 0 Then
        ListView2.ListItems.Add , , Fichier
        ListView2.ListItems(m).SubItems(1) = chemin & Fichier
    End If
    Fichier = Dir
 Loop

A noter le grand BRAVO a Bill
Dans 2007 Filesearch n'existe plus que dans l'aide (avec une superbe macro qui ne fonctionne pas !!!)
ref:
Error message when you run a macro to search for a file in an Office 2007 program: "Run-time error 5111"
https://www.excel-downloads.com/threads/migration-filesearch-excel-2002-vers-2007.77162/
 

Byfranck

XLDnaute Occasionnel
Re : FileShearch compatible Excel 2003 et 2007

Bonsoir PierreJean,

Merci pour ton aide, j'avais vu les posts que tu indiques mais je tourne en rond probablement sur une bétise !

J'ai essayé ce que tu m'as envoyé mais ça coince un peu même comme ça:
Code:
m = 1
chemin = ThisWorkbook.path & "\" & "Offers\"

Fichier = Dir(chemin & "*.PDF")
Do While Fichier <> ""
    If InStr(Fichier, TextBox1.Value) <> 0 Then
Offre = ThisWorkbook.path & "\" & "Offers\" & Fichier
        ListView2.ListItems.Add , , Fichier
        ListView2.ListItems(m).SubItems(1) = Offre
    End If
    Fichier = Dir
    m = m + 1
 Loop

Index Out of bound .. c'est la meilleure réponse obtenue!

J'ai trouvé des idée pas mal du côté de chez Maître Boisgontier mais j'ai pas trouvé comment les appliquer à ma listview:

Code:
Sub RechercheFichiers()
   Ligne = 1
   racine = ThisWorkbook.path & "\" & "Offers" & "\"
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set dossier_racine = fso.getfolder(racine)
   Lit_dossier dossier_racine
End Sub

Sub Lit_dossier(ByRef dossier)
Dim a As String
a = "*" & Sheets("feuil1").Range("B1") & "*"
  For Each d In dossier.SubFolders
    Lit_dossier d
  Next
  For Each f In dossier.Files
  If f Like "*.pdf" And f Like a Then
       Ligne = Ligne + 1
       ActiveSheet.Hyperlinks.Add Cells(Ligne, 1), f.path, TextToDisplay:=f.Name
   End If
  Next
End Sub

En bidouillant avec les Like .. je filtre comme il faut mes fichiers et les aligner dans la Feuil1 mais je n'arrive pas à sortir le résulat dans le listview!



J'espère qu'une âme charitable aura un peu de temps et une idée!
Franck
 

Pièces jointes

  • Classeur2.xls
    43 KB · Affichages: 53
  • Classeur2.xls
    43 KB · Affichages: 49
  • Classeur2.xls
    43 KB · Affichages: 55

Byfranck

XLDnaute Occasionnel
Re : FileShearch compatible Excel 2003 et 2007


Bonsoir kiki29,

Merci pour ton aide, j'avais déjà trouvé ce complément mais mon problème c'est que mon fichier et ses codes sont utilisés dans les 4 coins du monde par des collègues qui n'ont pas de connaissance particulière de office (comme moi) et je crains de ne pas savoir expliquer en Russe ou en Portugais la marche à suivre pour installer des compléments!
pour cette raison comme il semble possible d'arriver à un résultat équivalent avec du script vba .. je privilégie cette solution!

Mais quand; même merci encore
Franck
 

Byfranck

XLDnaute Occasionnel
Re : FileShearch compatible Excel 2003 et 2007

Bonsoir à tous,

C'est bon ça fonctionne chez moi sur la base deu code de PetitJean et des mistères de la vie...*
Dans l'ancienne version il fallait que m = 1 au départ ... maintenant ça ne fonctionne qu'avec m = 0

Reste à trouver quelqu'un de sympa pour tester sous Excel 2007 :D


enregistrer le fichier ci-joint dans un répertoire.
créer un sous répertoire TOTO et y coller les fichiers Excel (.xls) que vous voulez.
dans le fichier Classeur3 mettre en B1 une partie du nom du fichier à rechercher et lancer l'userform.
Dans la listview doit apparaitre le nom du fichier, si on clique dessus il doit s'ouvrir


Merci de me dire si cela fonctionne sous Excel 2007!

Bonne soirée à tous
 

Pièces jointes

  • Classeur3.xls
    41 KB · Affichages: 68
  • Classeur3.xls
    41 KB · Affichages: 71
  • Classeur3.xls
    41 KB · Affichages: 73

Discussions similaires

Réponses
2
Affichages
395

Statistiques des forums

Discussions
312 163
Messages
2 085 862
Membres
103 006
dernier inscrit
blkevin