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 :

Macro pour copie avec mot de passe. [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Employé
    Inscrit en
    Juin 2017
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Employé

    Informations forums :
    Inscription : Juin 2017
    Messages : 40
    Par défaut Macro pour copie avec mot de passe.
    Bonjour à tous,

    Vous allez peut être pouvoir m'aider à finaliser une macro.

    En fait j'ai crée une macro pour faire une copie d'un fichier (pour éviter le perte de données des autres utilisateurs), mais je n'arrive pas à la finaliser pour que tout fonctionne correctement.

    J'ai fais une première macro que voici :

    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
    Sub Sauve()
     
    Dim Fichier$, WbDest$, RepDest$
     
    Application.ScreenUpdating = False
     
    RepDest = ThisWorkbook.Path & "\Sauv\"
    WbDest = "Sauvegarde.xlsm"
    Fichier = RepDest & WbDest
     
    Application.DisplayAlerts = False
     
    ThisWorkbook.SaveAs Fichier, , "1234"
     
    End Sub
    Sur celle ci j'enregistre le fichier dans le bon dossier et avec un mot de passe, mais c'est pas une copie comme je le souhaite.

    Donc j'ai adapté et changé certaines choses de la macro pour que j'ai un backup et l'original :

    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
    Sub Sauve2()
     
    Dim Wb$, WbDest$, TWay$, TDest$
     
    Application.ScreenUpdating = False
     
    Wb = ThisWorkbook.Name
    TWay = ThisWorkbook.Path & "\Sauv\"
    WbDest = "Sauvegarde.xlsm"
    TDest = RepDest & WbDest
     
    Application.DisplayAlerts = False
     
    Workbooks(Wb).SaveCopyAs TDest
     
    End Sub
    Le problème sur celle ci est double. D'une la copie ne se mets pas dans le dossier spécifié, de deux je n'arrive pas à intégrer l'argument mot de passe comme dans la première macro (erreur "trop d'arguments")

    Auriez vous une piste peut être ?

    Merci d'avance à tous

  2. #2
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Par défaut
    Bonjour,

    Ici : https://msdn.microsoft.com/fr-fr/lib.../ff835014.aspx, tu vois qu'il n'y a qu'un seul argument pour la méthode SaveCopyAs (pas de mdp). Il faut utiliser SaveAs. Voici une idée pour détourner ton problème (c'est du brouillon à re-travailler !). Je sais pas si ça marche : à tester !!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim wbIni As String, wbCopie As String
    wbIni = ThisWorkbook.FullName        'nom avec chemin
    wbCopie = ThisWorkbook.Path\Sauv\Sauvegarde.xlsm"
    Workbooks.SaveAs wbCopie, ,"1234"
    Workbooks.Open wbIni
    Workbooks(wbCopie).Close
    la copie ne se mets pas dans le dossier spécifié
    Elle se met où et où la veux-tu ? Vérifie le nom de tes variables !! Tu utilises des nom différents de la première macro et tu n'attribue pas une valeur à toutes tes variables.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    TWay = ThisWorkbook.Path & "\Sauv\"
    WbDest = "Sauvegarde.xlsm"
    TDest = RepDest & WbDest     '----> pas de valeur attribuée à RepDest, donc TDest = WbDest

  3. #3
    Membre averti
    Homme Profil pro
    Employé
    Inscrit en
    Juin 2017
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Employé

    Informations forums :
    Inscription : Juin 2017
    Messages : 40
    Par défaut
    Bonjour,

    Merci pour ton retour.

    Alors alors, pour cela :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    TWay = ThisWorkbook.Path & "\Sauv\"
    WbDest = "Sauvegarde.xlsm"
    TDest = RepDest & WbDest     '----> pas de valeur attribuée à RepDest, donc TDest = WbDest
    [/QUOTE]

    Effectivement c'est de ma faute, j'ai utilisé une ancienne macro que j'ai mal réadapté. Merci pour avoir souligné l'erreur

    Pour ton code, j'ai fais des tests, et en adaptant un peu ça fonctionne, la voici :

    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
    Sub Sauve3()
     
    Dim Wb$, WbDest$, TWay$,  wbIni$, wbCopie$
     
    Application.ScreenUpdating = False
     
    wbIni = ThisWorkbook.Name        'nom avec chemin
    TWay = ThisWorkbook.Path & "\Sauv\"
    WbDest = "Sauvegarde.xlsm"
    wbCopie = TWay & WbDest
     
    Application.DisplayAlerts = False
     
    Workbooks(wbIni).SaveAs wbCopie, , "1234"
    Workbooks.Open wbIni
    Workbooks(WbDest).Close
     
    End Sub
    Merci beaucoup en tout cas pour l'idée d'ouvrir et fermer. Ca résolu pas mal mon problème

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

Discussions similaires

  1. Sauver une copie en lecture seule avec mot de passe pour l'écriture
    Par goninph dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 05/12/2016, 22h31
  2. [XL-2003] macro pour deproteger un fichier en liaison avec mot de passe lecture
    Par djoumusic dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 16/04/2010, 07h51
  3. Ouvrir via une macro un fichier avec mot de passe.
    Par Drost dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 01/10/2007, 14h47
  4. fichier batch (copie depuis lecteur réseau avec mot de passe
    Par Mickey34 dans le forum Autres Logiciels
    Réponses: 3
    Dernier message: 09/02/2006, 22h33
  5. Copy de fichier sur réseau avec mot de passe
    Par Guile dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 07/10/2005, 15h45

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