IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Copie d'un classeur fermé [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier Avatar de Nono Sto
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 350
    Points : 74
    Points
    74
    Par défaut Copie d'un classeur fermé
    Chères amies, chers amis du forum

    Je souhaites copier puis renommer un classeur excel fermé comment je pourrait faire, je subodore un saveas mais je vois pas comment.

    Merci

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Bonsoir,

    Un petit tour dans l'aide en ligne .. voir FileCopy

  3. #3
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour,

    Teste ceci en adaptant les chemins :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Declare Function CopyFile _
            Lib "kernel32" _
            Alias "CopyFileA" _
            (ByVal lpExistingFileName As String, _
            ByVal lpNewFileName As String, _
            ByVal bFailIfExists As Long) As Long
     
    Sub CopierFichier()
     
        CopyFile "D:\Mon Dossier\Mon Fichier.xls", "D:\Mon Autre Dossier\Mon Nouveau Nom de Fichier.xls", 0
     
    End Sub
    Hervé.

  4. #4
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Bonjour These

    pourrais tu S.V.P me dire qu'apporte ta solution API par rapport à la solution FileCopy intégrée, indiquée plus haut ?

    : Comment copier un fichier vers un autre repertoire ?

  5. #5
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour bbil,

    La possibilité de gérer la présence d'un fichier identique dans le dossier de destination par l'argument "bFailIfExists". De façon très simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    Declare Function CopyFile _
            Lib "kernel32" _
            Alias "CopyFileA" _
            (ByVal lpExistingFileName As String, _
            ByVal lpNewFileName As String, _
            ByVal bFailIfExists As Long) As Long
     
    Sub CopierFichier()
     
        If CopyFile("D:\Mon Dossier\Mon Fichier.xls", "D:\Mon Autre Dossier\Mon Nouveau Nom de Fichier.xls", True) = 0 Then
     
            If MsgBox("Le fichier existe déjà dans le dossier ! Voulez-vous l'écraser ?", vbExclamation + vbYesNo) = vbYes Then
     
                CopyFile "D:\Téléchargement\Exemple de mon fichier excel.xlsx", "D:\Téléchargement\Test\Exemple de mon fichier excel.xlsx", False
     
            End If
     
        End If
     
    End Sub
    Hervé.

  6. #6
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut




    Bonjour, bonjour !

    Se teste aussi sans API directement via la fonction Dir ! …

    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  7. #7
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Re,

    Nous sommes là pour aider et je pense qu'il est constructif si le demandeur (ou celui qui visionne le post) reçoit plusieurs propositions ;-)
    On peut aussi utiliser FSO :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Sub test()
     
        Dim Fso As Object
     
        Set Fso = CreateObject("Scripting.FileSystemObject")
     
        On Error Resume Next
        Fso.CopyFile "D:\Mon Dossier\Mon Fichier.xls", "D:\Mon Autre Dossier\Mon Nouveau Nom de Fichier.xls", False
        'False = si existe retourne une erreur
        'True = écrase
        If Err.Number <> 0 Then MsgBox "Fichier existant !"
     
    End Sub
    Hervé.

  8. #8
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut




    Certes … J'évite FSO quand Dir suffit amplement !

    Tests de recherche de fichiers sur une partition : moyenne de 20 secondes via Dir contre 2 minutes et 10 secondes via FSO

    S'il y a des fonctions internes à Excel ou au VBA, autant les utiliser !
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  9. #9
    Membre régulier Avatar de Nono Sto
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 350
    Points : 74
    Points
    74
    Par défaut
    Merci à tous pour vos proposition, file copy semble etre la solution la plus simple et fonctionne parfaitement dans ma macro.

    voici le code utilisé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    strNameCopy = gvSTRPathSave & TmpName & "_" & Format(Date, "dd_mm_yyyy") & "\" & TmpName & "_" & Format(Date, "dd_mm_yyyy") & ".xlsm"
    FileCopy Range("B5"), strNameCopy

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Copie lignes classeur ferme vers classeur de travail (ouvert)
    Par stephadm dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 30/06/2012, 10h50
  2. [XL-2003] Copie de donnée classeur fermé
    Par celebrom dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 16/01/2012, 12h51
  3. [XL-2002] lecture recherche copie enregistrement dans un classeur fermé
    Par zoumzoum59 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 10/11/2011, 15h06
  4. [XL-2007] Copie d'un classeur fermé
    Par Jay29 dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 27/10/2009, 13h53
  5. Copie de données depuis un classeur fermé
    Par kiki29 dans le forum Contribuez
    Réponses: 0
    Dernier message: 15/03/2008, 18h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo