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 :

Erreur d'éxecution '1004' Impossible d'accéder à 'truc.xlsm' [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 6
    Par défaut Erreur d'éxecution '1004' Impossible d'accéder à 'truc.xlsm'
    Bonjour à tous,

    J'ai réalisé une macro qui réalise des copies du fichier principal. Lorsqu'on ouvre le fichier, une copie "backup" avec la date du jour est enregistrée dans un sous-dossier "Backups". Si on ouvre une deuxième fois le fichier dans la journée, le programme détecte que le backup existe déjà, et la copie n'est pas faite.

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    ' -------------------------------------------------------------------------------------
    ' Sub which does a backup of the file every day if the file is opened.
    ' -------------------------------------------------------------------------------------
     
    Sub BackupFile()
    Dim sPath As String
    Dim sName As String
    Dim sBackup As String
     
    With ThisWorkbook
        sPath = .Path
        sName = .name
    End With
     
    sBackup = sPath & "\Backups\Backup_" & Left(Date, 2) _
            & "_" & Mid(Date, 4, 2) & "_" & Right(Date, 4) & ".xlsm"
     
    If Dir(sBackup) = "" Then
     
        Application.DisplayAlerts = False
     
        ' Enregistrer sous le backup.
        ThisWorkbook.SaveAs _
            Filename:=sBackup, _
            FileFormat:=xlOpenXMLWorkbookMacroEnabled, _
            CreateBackup:=False
     
        ' Enregistrer sous avec le fichier d'origine, pour travailler
        ' sur le fichier ensuite et non sur le backup.
        ThisWorkbook.SaveAs _
            Filename:=sPath & "\" & sName, _
            FileFormat:=xlOpenXMLWorkbookMacroEnabled, _
            CreateBackup:=False
        Application.DisplayAlerts = True
    End If
    End Sub
    La macro fonctionne parfaitement lorsque je la lance toute seule, mais lorsqu'elle est lancée dans Workbook_Open, elle échoue à l'instruction suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ThisWorkbook.SaveAs _
            Filename:=sPath & "\" & sName, _
            FileFormat:=xlOpenXMLWorkbookMacroEnabled, _
            CreateBackup:=False
        Application.DisplayAlerts = True
    avec le message d'erreur suivant :

    Erreur d'éxecution '1004' Impossible d'accéder à 'xxxx.xlsm'


    Auriez-vous une idée ? Je ne vois pas la différence entre lancer la procédure à Workbook_Open, et la lancer à la main...

    Merci pour votre aide

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    Et si tu utilisais SaveCopyAs plutôt que SaveAs ?
    Ça te permet de rester dans le fichier original tout en créant une copie.

    Je pense que ça plante parce que le fichier n'est pas encore vraiment ouvert, mais pas certain...

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 6
    Par défaut
    Ah merci beaucoup ! Ca marche nickel avec cette méthode ; je n'en avais pas du tout entendu parler, de ce SaveCopyAs, malgré mes recherches...

    Le mystère du Workbook_Open reste entier, mais de toute façon c'est beaucoup plus propre ainsi.

    A bientôt et merci !

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

Discussions similaires

  1. [XL-2010] Erreur d'exécution 1004 : Impossible de coller les informations
    Par Crysta17 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 14/04/2014, 14h26
  2. Réponses: 1
    Dernier message: 17/03/2011, 01h54
  3. message d'erreur d'éxecution '1004'
    Par VELO1222 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 15/01/2011, 15h56
  4. [VBA-E] Erreur d'éxecution '1004'
    Par andlio dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 04/01/2007, 10h12

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