Copier/coller fichier excel VBA

Résolu
Marie -  
 Marie -
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
Configuration: Windows XP
Firefox 2.0

6 réponses

  1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    bonjour

    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
    0
    1. Marie
       
      Merci pour l'aide,

      je vais essayer, je te tiens au courant,

      @+
      0
    2. Marie
       
      j'ai vraiment du mal à faire cette méthode.

      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é.
      0
  2. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    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 :
    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
    0
    1. Marie
       
      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 !!!!!
      0
  3. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    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é ?
    0
    1. Marie
       
      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 ?
      0
  4. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    bonjour

    Le chemin doit être écrit ainsi
    chemin = "C:\fichiers\excel\"
    nom complet du répertoire avec le "\" de fin mais sans le fichier.
    0
    1. Marie
       
      j'ai mis chemin complet qui se termine par \*.xls\ car je cherche que les fichiers dont l'extension est xls c'est peut être ca mon pb.
      non ?
      0
      1. Marie > Marie
         
        voilà pour que ca récupère mes fichiers xls :

        chemin = "chemin entier \" ' répertoire
        nouveau = "chemin entier\" ' nouveau répertoire
        fichier = Dir(chemin & "\*.xls")

        maintenant ca fonctionne.

        merci de ta patience !!

        bonne aprem
        0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    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 !
    0