suggestion pour ce code

  • Initiateur de la discussion Initiateur de la discussion zesuila
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

zesuila

XLDnaute Occasionnel
Bonjour à tous

Ca y est les vacances c'est fini :angry:
Il faut se remettre au boulot dans la joie et la bonne humeur. Heureusement XLD est là 😉

Voici mon problème : ci joint le code (que j'ai trouvé sur XLD bien sûr, merci à ...euh je ne sais plus qui, désolé !)

Private Sub Worksheet_Activate()
Dim Direction As String
Dim Lig As Variant
Dim Trouve As Variant

Range('A7:C1000').ClearContents

Direction = Sheets('chercher').Range('C3').Value
Lig = 7
Cells(Lig, 1) = 'Chemin fichier'
'Cells(Lig, 2) = 'Taille'
'Cells(Lig, 3) = 'Date/Heure'
Range('A7:C7').Font.Bold = True
Lig = Lig + 1

On Error Resume Next
With Application.FileSearch
.NewSearch
.LookIn = Direction
.Filename = '*.' & Sheets('chercher').Range('C1').Value
.SearchSubFolders = True
.Execute

For Trouve = 1 To .FoundFiles.Count

ActiveSheet.Hyperlinks.Add Anchor:=Cells(Lig, 1), Address:=.FoundFiles(Trouve)
'Cells(Lig, 2) = FileLen(.FoundFiles(Trouve))
Cells(Lig, 3) = FileDateTime(.FoundFiles(Trouve))

ActiveSheet.UsedRange.EntireColumn.AutoFit
Lig = Lig + 1

Next Trouve
End With
End Sub

Il marche parfaitement bien, mais je voudrais n'avoir que le nom du fichier et non pas le nom du disque, du répertoire etc..

Par exemple il m'affiche actuellement :
e:\\xld\\archives\\help.xls (et là magie il est sous forme de lien donc cliquable pour l'ouvrir !!!)

je voudrais seulement help.xls car après les utilisateurs peuvent cliquer sur des petits boutons pour faire une recherche affinée .


Allez zou je repars bosser,(quoique là finalement je bosse 😛 )
Bonne journée à tous !
 
Hug zesuila,les XLDiens,

si j'ai bien compris ton problème, tu veux afficher seulement les X derniers caratères du nom de ton fichier.

Si c'est bien ca, tu peux utiliser TextToDisplay:

Code:
ActiveSheet.Hyperlinks.Add Anchor:=Cells(Lig, 1), Address:=.FoundFiles(Trouve),TextToDisplay:=Right(.FoundFiles(Trouve),9)

sinon, si tu veux récupérer le nom de ton fichier (ce qui semblerait plus logique:

Code:
Set fso = CreateObject('Scripting.FileSystemObject')
For Trouve = 1 To .FoundFiles.Count
    Set fichier = fso.GetFile(.FoundFiles(Trouve))
    ActiveSheet.Hyperlinks.Add Anchor:=Cells(Lig, 1), Address:=.FoundFiles(Trouve),TextToDisplay:=fichier.Name
    'Cells(Lig, 2) = FileLen(.FoundFiles(Trouve))
    Cells(Lig, 3) = FileDateTime(.FoundFiles(Trouve))
    ActiveSheet.UsedRange.EntireColumn.AutoFit
    Lig = Lig + 1
Next Trouve

NB: fichier est un objet de type File, tu peux donc récupérer toutes les propriétés et méthodes qui y sont associées.

En éspèrant que ça te convienne.
Bonne journée (pluvieuse chez moi 🙁 )
 
bonjour Shining Hawk

Effectivement c'est la 2e solution (le nom du fichier) qui m'interesse.

Mais je ne vois pas ou je dois mettre tes lignes de code par rapport à mon code existant. Peux tu m'éclairer
Merci de ton aide
 
😱 SI SI CA MARCHE !!!
Désolé, je n'ai pas réflechi assez (c'est l'heure de la pause café !! alors !!!)

Je l'ai donc placé par déduction mais j'avoue que j'ai du mal avec ces codes pour récupérer les noms de fichiers, répertoire etc...
Si tu avais un moment pour m'expliquer ce code, cela serait génial. Mais bon je ne veux pas te faire perdre du temps.

Encore merci
Bonne journée
 
😱 SI SI CA MARCHE !!!
Désolé, je n'ai pas réflechi assez (c'est l'heure de la pause café !! alors !!!)

Je l'ai donc placé par déduction mais j'avoue que j'ai du mal avec ces codes pour récupérer les noms de fichiers, répertoire etc...
Si tu avais un moment pour m'expliquer ce code, cela serait génial. Mais bon je ne veux pas te faire perdre du temps.

Encore merci
Bonne journée
 
Re,

bah, en fait j'ai juste repris ton code et j'ai rajouter les deux lignes
Code:
Set fso = CreateObject('Scripting.FileSystemObject')
ca, c'est l'instruction qui me permet de créer un objet FileSystemObject que je nomme fso. Avec fso, tu peux effectuer les actions les + courrantes sur des fichiers et/ou dossiers (création, déplacement, suppression,...). il existe des méthodes bien utiles rattachées à cet objet comme DriveExists, FolderExists, FileExists qui te permettent de tester l'existance d'un lecteur, dossier ou fichier. Il y en a d'autres comme GetFile(chemin_du_fichier) qui permettent de renvoyer une référence à un objet. Ainsi, la ligne
Code:
Set fichier = fso.GetFile(.FoundFiles(Trouve))
permet de dire que j'affecte à la variable(objet) fichier les caractéristiques du fichier dont le chemin d'accès est donné par .FoundFiles(Trouve). FoundFiles est l'ensemble des chemins resultats de ta recherche. C'est une sorte de tableau, exemple:
.FoundFiles(1)='c:/toto.txt'
.FoundFiles(2)='c:/titi.txt'
.FoundFiles(3)='e:/tutu.txt'... c'est pour cela qu'on utilise une boucle en général avec .FoundFiles pour balayer l'ensemble des résultats de la recherche.

Je suis désolé, dis le moi si c'est pas très clair car j'ai super la tête dans cul ce matin... :silly:

Le plus simple, je pense, c'est que tu jettes un coup d'oeil dans l'aide VB, elle est pas trop mal foutue sur ce point, les exemples fournis aident bien à fixer les choses.

NB 1: Dans le VBE, tu vas dans outils/Références, et tu coches Windows Script Host Object Model : ca te permet de déclarer des variables en tant que FileSystemObject (Dim truc As FileSystemObject) ou File (Dim truc2 As File) et bien d'autres encore... C'est bien utiles après quand tu tapes par exemple 'truc.', tu as la liste des propriétés et méthodes qui apparaissent.

NB 2: Si tu me faisais perdre mon temps, je ne serai pas là... 😉

NB 3: je vais me prendre un méga café.... X)

Bon courage
A+
 
Flute, j'ai été déconnecté...

moi aussi je l'aime bien le coyotte. :whistle:

Heuh, les gars, juste une question au passage: Vous auriez pas vu passer un Bip-Bip dasn le coin?... :woohoo: :woohoo:
 
C'est marrant, il y aplus de fan du vil coyotte que du roadrunner.....pourtant il s'en prend plein la gueulle....ca doit être notre coté maso.... :woohoo: :woohoo: 😛inch: :silly: :woohoo: :woohoo:

Et hop une roulade....oh je vais être malade.... :sick:

bbmarcus
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

G
Réponses
4
Affichages
3 K
G
J
Réponses
11
Affichages
1 K
G
N
Réponses
14
Affichages
6 K
N
J
  • Question Question
Réponses
6
Affichages
1 K
J
3
Réponses
2
Affichages
985
31toto
3
A
Réponses
6
Affichages
2 K
ange180190
A
3
Réponses
0
Affichages
2 K
31toto
3
Retour