Rechercher un fichier excel en vba

Résolu
Signaler
Messages postés
35
Date d'inscription
lundi 18 février 2008
Statut
Membre
Dernière intervention
7 avril 2008
-
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
-
bonjour à tous,

j'ai un petit soucis de compréhension. en fait sur internet j'ai cherché comment faire pour récupérer un fichier excel, dans un dossier et j'ai trouvé beaucoup de choses différentes que j'ai testé sans succés.
j'ai essayé avec createobject, Application.FileSearch, avec dir...

concrétement je n'arrive pas à voir qui sert à quoi.?

mon but étant de récupérer dans un text box une donnée ex "an" , en fonction de cette donnée je dois chercher dans un dossier (qui reste le même selon la donnée) le fichier qui a dans son nom "an". pour ensuite le copier, le coller et le renommer dans un autre dossier.

comment dois je m'y prendre concrétement mais surtout que dois je utiliser dans tous els trucs que j'ai essayé.

merci pour votre aide

10 réponses

Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Re,
Il faut que tu mette le chemin en ENTIER
Exemple
Fichier = Dir("C:\RepertoireALister\*.xls")

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Salut,
REgarde le fonctionnement de  Dir() ainsi que de FileCopy()

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
35
Date d'inscription
lundi 18 février 2008
Statut
Membre
Dernière intervention
7 avril 2008

justement en parlant de Filecopy, pourquoi certains mettent "CopyFile"?
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Salut,
Tout simplement parce que ce ne sont pas les même procédures

FileCopy est disponible directement en VBA
FileCopy(Source, Destination)

CopyFile est soit une API soit uneméthode de FileSystemObject.

Public Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long

Et comme tu le vois les deux n'ont pas le même fonctionnement.
Voilà j'espère que cela t'aide un peu
@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
35
Date d'inscription
lundi 18 février 2008
Statut
Membre
Dernière intervention
7 avril 2008

et j'avais vu que syntaxe : FileCopy "source", "destination"

pour mon dir j'ai fait fichier = Dir("Models\*.xls") mais la variable fichier reste vide .
est ce que le fait de mettre  * permet bien de récupérer n'importe quel fihcier se trouvant dans le dossier Models ?
Messages postés
35
Date d'inscription
lundi 18 février 2008
Statut
Membre
Dernière intervention
7 avril 2008

merci pour l'explication de copyfile et filecopy, je connais enfin leur différence
Messages postés
35
Date d'inscription
lundi 18 février 2008
Statut
Membre
Dernière intervention
7 avril 2008

même si le dossier peut se trouver n'importe où? car les utilisateurs pourront le mettre un peu où ils veulent c'est pas possible avec une *
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Re,
Bah il vaudrait mieux essayer de récupérer le chemin par quelque moyen que ce soit.

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
35
Date d'inscription
lundi 18 février 2008
Statut
Membre
Dernière intervention
7 avril 2008

OK !

je pense que ca va aller, je vais trouver un truc pour la récup.
en tout cas merci pour ton aide et surtout éclaircissement !!!

bonne continuation

@+

et encore merci
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
19
Utiliser Application.GetOpenFilename ne suffirait pas ?
En fait, ça t'ouvrirait une fenêtre de recherche de fichiers comme lorsque tu fais Fichier / Ouvrir

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI