Nom de Fichier variable

Karim_1972

Habitué
Bonsoir;
Je suis coincé sur une instruction qui permet d'ouvrir un fichier et/ou classeur Excel situé dans un dossier dont le nom commence toujours par une partie fixe, ex : Etat suivi d'une date (******), (Etat du 01012013)

J'ai essayé ceci, mais en vain!

Code:
 Workbooks.Open Filename:="C:\Stat\Etat " & " *.xls"

Pouvez-vous svp m'aider ?

Cordialement.
 

KyrO_82

Grand Maître
Bonsoir Karim,

En quel langage programmes-tu? Je peux te mettre sur la piste, mais tu devras trouver les fonctions et la syntaxe exacte toi-même...
Ca ne m'étonne pas que ceci ne fonctionne pas, pour la fonction open il faut donner le nom exact du fichier à ouvrir (la fonction open ne peut ouvrir plusieurs fichiers en même temps).

2 solutions:

- Utiliser une fonction de recherche qui te retournera la liste de fichiers voulus, genre:

Code:
Files = Files.Find("C:\Stat\Etat " & " *.xls")
For Each File in Files
  ...

- Lister tous les fichiers du dossier et tester leur nom toi-même:

Code:
Files = Directory.ListFiles("C:\Stat\")
For Each File In Files
  If File.StartsWith("Etat") and File.EndsWith(".xls")
    ...

Espérant que cela puisse t'aider...
 

zeb

Modérateur
Salut,

Puisqu'on parle d'Excel, le langage est du VBA/Excel.
Et le secret pour lister les fichiers est caché dans l'objet FileSystemObject.

Que fais-je Karim ?
Je te laisse le plaisir de le découvrir par toi-même et on en discute après ou bien je te montre tout de suite un exemple...
 

Karim_1972

Habitué
Merci Kyro /Zeb;

Zeb, si tu as un exemple a me montrer je dirais pas non..Question de gagner un peu de temps..
Merci par avance.
 

zeb

Modérateur
Code:
Dim FSO     As New FileSystemObject
Dim fichier As file

' // Lister les fichiers d'un répertoire
For Each fichier In FSO.GetFolder("C:\Stat").Files
    ' // Se limiter : à une extension, à une partie de nom de fichier, etc.
    If LCase(FSO.GetExtensionName(fichier.Name)) = "xls" And _
       Left(FSO.GetBaseName(fichier.Name), 5) = "Etat " _
    Then
        ' // Faire quelque chose du fichier !
        MsgBox fichier.Name
        
    End If
Next

Bon, le test sur l'extension et le nom du fichier, c'est pour te montrer des fonctions de FSO.
Sinon, un bête truc comme ça est plus simple :
Code:
If fichier.Name Like "Etat *.xls" Then ...

-----------------------------------------------------

Comment ça, mon code de marche pas ?
N'aurais-tu pas omis de lister FileSystemObject parmi les références de ton code ?
Pour ce faire, ouvre ton éditeur VBA/Excel, va dans le menu Outils, et là, choisis Références.
Cherche, trouve et coche la ligne Windows Script Host Object Model.
Ça devrait maintenant fonctionner.
 

Karim_1972

Habitué
Bonsoir Zeb,
j'ai pas pu répondre à ton message, car j'ai eu un malheureux accident où je me suis casé le bras..!
je testerais tout de meme l'exemple dès que je me senterais mieux..
merci et a bientôt.
 

zeb

Modérateur
Salut Karim,
Prends soin de toi, c'est le principal.

Quant à la vitesse de réponse, on est sur un forum ici, pas un tchat. Chacun son rythme.
;)
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 098
Messages
6 717 058
Membres
1 586 285
Dernier membre
LeFront
Partager cette page
Haut