Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

recuperation nom classeur

  • Initiateur de la discussion piopio
  • Date de début
P

piopio

Guest
[i


Bonjour a tous,
je doit effectué une macro qui doit recupérer des informations sous differents classeurs.
Le but etant de calculer le nombre d'heure fais par chaque interimaire sous chaque affaires par mois. Mon probleme c'est que sous chaque repertoire ( par exemple mars 2005) les noms des interimaire est differents.
Pour etre plus clair je vous donne un exemple : sous le repertoire mars 2005 j'ai les fichier michel.xls, guerin.xls et holut.xls alors que sous le repertoire avril 2005 j'ai les fichiers didier.xls, fred.xls et amelie.xls.
Je peut donc pas definir mon chemin d'acces si tous les mois les noms des fichiers excel change.
Ma question est la suivante, existe il une methode pour recuperer sous VBA tous les noms de fichier excel sous un repertoire defini?
Merci d'avance a tous ce qui pourront m'aider
@+
 
T

Thomas®

Guest
Bonjour piopio, le forum,

Oui il existe un moyen,

tu peux utiliser ce code
Code:
Private Sub Ouvrfichier_Click()
'selectionner un repertoire contenant des *.xls
Dim objShell As Object, objFolder As Object
Dim SecuriteSlash As Integer
Dim Fichier As String, S As String, X As String, CheminTemp As String
Dim ProprietesImages As String
'necessite d'activer la reference Microsoft Scripting RunTime
Dim Fso As Scripting.FileSystemObject
Dim FileItem As Scripting.File
On Error Resume Next
Set objShell = CreateObject('Shell.Application') 'recuperer nom repertoire cible
Set objFolder = objShell.BrowseForFolder(&H0&, 'Choisir un répertoire', &H1&)
CheminTemp = Chemin


Chemin = objFolder.ParentFolder.ParseName(objFolder.Title).Path
If objFolder.Title = '' Then Chemin = ''
SecuriteSlash = InStr(objFolder.Title, ':')
If SecuriteSlash > 0 Then Chemin = Mid(objFolder.Title, SecuriteSlash - 1, 2) & ''

If Chemin = '' Then
Filesss = ThisWorkbook.Path
Chemin = CheminTemp
Exit Sub
End If

Fichier = Dir(Chemin & '\\*.xls') 'ciblage des *.xls dans ce repertoire

If Fichier = '' Then

Else
 
 Filesss = Chemin

End If


End Sub

dans ce code tu peux voir la presence de 'Chemin' chemin est le nom d'un textbox que j'utilise pour donner l'adresse d'un repertoir a savoir que si rien est renseigné il prendra comme adresse le dossier ou ton fichier exel est placé.

Bon courage
Thomas®
 

dg62

XLDnaute Barbatruc
Bonjour piopio, le Forum



les fonctions suivantes permettent de dresser l'inventaire d'un répertoire :
Code:
Application.FileSearch.NewSearch
Application.FileSearch.LookIn = disque
Application.FileSearch.Filename = extension
Application.FileSearch.SearchSubFolders = True

' Recherche
Application.FileSearch.Execute

Pour récupérerle nombre de fichiers trouvés :
Code:
nbFiches = Application.FileSearch.FoundFiles.Count


et pour exploiter le résultat :
Code:
for i= 1 to nufic
Application.FileSearch.FoundFiles(i)
...
next i
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…