Copier/coller fichier excel VBA
Résolu/Fermé
Bonjour,
voilà j'essaye désespérement de savoir comment rechercher un fichier excel dans un répertoire, j'ai trouvé des bouts de codes mais lorsque je lance la recherche ca ne fonctionne pas. bon encore ca passons je trouverai bien l'erreur.
mais j'ai une question qui me chagrine, lorsque je trouve le fichier xls souhaité, il faut que je le copie en entier, et il faut que je le mette dans un nouveau dossier, en renommant le fichier "copie".
mon problème est que je ne sais pas qu'elle commande utiliser en VBA pour faire ca.
est ce quelqu'un pourrait m'aider à voir plus clair SVP
merci
voilà j'essaye désespérement de savoir comment rechercher un fichier excel dans un répertoire, j'ai trouvé des bouts de codes mais lorsque je lance la recherche ca ne fonctionne pas. bon encore ca passons je trouverai bien l'erreur.
mais j'ai une question qui me chagrine, lorsque je trouve le fichier xls souhaité, il faut que je le copie en entier, et il faut que je le mette dans un nouveau dossier, en renommant le fichier "copie".
mon problème est que je ne sais pas qu'elle commande utiliser en VBA pour faire ca.
est ce quelqu'un pourrait m'aider à voir plus clair SVP
merci
A voir également:
- Copier un fichier vba
- Comment réduire la taille d'un fichier - Guide
- Fichier rar - Guide
- Comment ouvrir un fichier epub ? - Guide
- Ouvrir un fichier .bin - Guide
- Comment ouvrir un fichier docx ? - Guide
6 réponses
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 716
31 mars 2008 à 22:35
31 mars 2008 à 22:35
bonjour
comment rechercher un fichier excel dans un répertoire
lorsque je trouve le fichier xls souhaité, il faut que je le copie
comment rechercher un fichier excel dans un répertoire
lorsque je trouve le fichier xls souhaité, il faut que je le copie
Fichier = dir(chemin complet répertoire) do if fichier = classeur_cherché Workbooks.Open chemin répertoire & fichier Workbooks.SaveAs chemin nouveau répertoire & "copie" & fichier Workbook.Close exit do end if dir loop
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 716
1 avril 2008 à 11:12
1 avril 2008 à 11:12
bonjour
je suis passé par une "Application.FileSearch"
Pourquoi pas mais pour ton souci, c'est tellement plus simple avec DIR.
Voici une macro complète testée qui fonctionne :
Dis nous les soucis que tu peux avoir
je suis passé par une "Application.FileSearch"
Pourquoi pas mais pour ton souci, c'est tellement plus simple avec DIR.
Voici une macro complète testée qui fonctionne :
Public Sub recherche_fichier() Dim nouveau As Variant Dim cherche As String Dim fichier As String Dim chemin As String chemin = "C:\fichiers\excel\" ' à remplacer par ton répertoire nouveau = "D:\mano" ' à remplacer par ton nouveau répertoire cherche = "classeur.xls" ' à remplacer par ton classeur fichier = Dir(chemin) ' recherche premier Do If fichier = cherche Then ' fichier trouvé Workbooks.Open chemin & fichier ' fichier ouvert ' demande du nouveau nom nouveau = Application.GetSaveAsFilename(nouveau, _ fileFilter:="classeurs (*.xls), *.xls", _ Title:="Saisissez votre nouveau nom") If nouveau <> False Then ' fichier saisi ? ActiveWorkbook.SaveAs nouveau ' sauvegarde nouveau MsgBox "Sauvé sous " & nouveau ' message ActiveWorkbook.Close ' fermeture Else MsgBox "Classeur non sauvegardé" End If Exit Do ' sortie procédure End If fichier = Dir ' recherche fichier suivant Loop End Sub
Dis nous les soucis que tu peux avoir
c'est vrai que le Dir est plus facile ;-b
mon soucis se pose sur le lien de mlon chemin car mes données se trouvent sur le réseau, comment je peux récupérer le chemin ? car en faisant le copié collé en cliquant dessus ca me donne rien . c'est bien comme ca non ?
désolée de cette question bête mais je trouve ca bizarre
en tout cas merci pour tout !!!!!
mon soucis se pose sur le lien de mlon chemin car mes données se trouvent sur le réseau, comment je peux récupérer le chemin ? car en faisant le copié collé en cliquant dessus ca me donne rien . c'est bien comme ca non ?
désolée de cette question bête mais je trouve ca bizarre
en tout cas merci pour tout !!!!!
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 716
1 avril 2008 à 11:26
1 avril 2008 à 11:26
bonjour
comment je peux récupérer le chemin ?
Si tu cherches ton fichier avec l'explorer tu peux bien faire ctrl+c sur le chemin du répertoire sélectionné ?
comment je peux récupérer le chemin ?
Si tu cherches ton fichier avec l'explorer tu peux bien faire ctrl+c sur le chemin du répertoire sélectionné ?
c'est bon j'ai plus d'erreur, en copiant et collant j'avais supr une lettre d'où le fait de ne pas trouver le chemin.
mais maintenant que je récupère bien le chemin lorsque je fais :
fichier = Dir(chemin)
lorsque je me mets en debugg pas à aps sur la var fichier le résultat est vide "", du coup je ne rentre pas dans la boucle.
pourtant en suivant le chemin j'ai bien un fichier xls
c'est normal ?
mais maintenant que je récupère bien le chemin lorsque je fais :
fichier = Dir(chemin)
lorsque je me mets en debugg pas à aps sur la var fichier le résultat est vide "", du coup je ne rentre pas dans la boucle.
pourtant en suivant le chemin j'ai bien un fichier xls
c'est normal ?
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 716
1 avril 2008 à 12:18
1 avril 2008 à 12:18
bonjour
Le chemin doit être écrit ainsi
chemin = "C:\fichiers\excel\"
nom complet du répertoire avec le "\" de fin mais sans le fichier.
Le chemin doit être écrit ainsi
chemin = "C:\fichiers\excel\"
nom complet du répertoire avec le "\" de fin mais sans le fichier.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 716
1 avril 2008 à 14:43
1 avril 2008 à 14:43
bonjour
c'est peut être ca mon pb
eh bien oui !!
Pas de pitié si tu ne respecte pas la syntaxe :
Dir demande un chemin de répertoire : chemin = "C:\fichiers\excel\"
Un point c'est tout car ensuite on filtre sur ton fichier.
Cela ne fonctionne pas comme "Application.FileSearch" qui peut aussi balayer tous les sous répertoires alors que Dir ne le fait pas et je n'y puis rien !
c'est peut être ca mon pb
eh bien oui !!
Pas de pitié si tu ne respecte pas la syntaxe :
Dir demande un chemin de répertoire : chemin = "C:\fichiers\excel\"
Un point c'est tout car ensuite on filtre sur ton fichier.
Cela ne fonctionne pas comme "Application.FileSearch" qui peut aussi balayer tous les sous répertoires alors que Dir ne le fait pas et je n'y puis rien !
1 avril 2008 à 07:56
je vais essayer, je te tiens au courant,
@+
1 avril 2008 à 10:14
en fait je n'arrive pas à atteindre mon dossier où se trouve mon fichier à copier.
j'ai mis de type ".xls", je suis passé par une "Application.FileSearch" ensuite avec des création d'objet avec crestaObject...
j'ai essayé plein d etruc mais je n'y arrive pas, je m'écroule sur les tonnes d'informations que je peux trouver sur le net!
mon cas concret est :
mon utilisateur rentre un semblant d'info dans un textbox, en fonction de cette info, le fichier xls correspondant doit être récupéré dans le répertoire qui lui reste le même dans tous els cas.
ce fichier xls doit etre copié et collé dans un autre dossier puis renommé par l'utilisateur et pas par mon code ce qui m'aurait arrangé!!
je suis désolée de vous importuner mais j'ai vraiment beaucoup de mal avec VBA, je suis débutante et le jonglage de fichier je crois que c'est pas encore ma tasse de thé.