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 :

Enregistrement KO - Si je change le nom du fichier - Macro VBA ThisWorkbook [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2014
    Messages : 10
    Points : 8
    Points
    8
    Par défaut Enregistrement KO - Si je change le nom du fichier - Macro VBA ThisWorkbook
    Bonjour,

    Je débute sur VBA et cherche à sécuriser à minima via des codes VBA les enregistrements afin de ne pas en exécuter sur les fichiers modèles.

    En gros les fichiers modèles ont des macros qui aboutissent sur un enregistrement sous en automatique. Mais je ne peux pas empêcher mes collègues de cliquer sur le bouton "Enregistrer" d'Excel. Je ne veux pas n'ont plus l'interdire mais juste m'assurer que la modification soit justifiée.
    Par conséquent j'ai cherché à l'aide des forums à modifier le comportement du bouton "Enregistrer" par l'ouverture d'une boite de dialogue qui aboutit sur un enregistrement sous ...
    Ainsi lorsque l'on clique sur le bouton "Enregistrer" la macro présente dans ThisWorkBook oriente l'utilisateur vers un enregistrement sous.
    Si je ne modifie pas le nom du fichier tout se passe bien. Si je modifie le nom du fichier alors Excel cesse de fonctionner.
    Pourtant l'enregistrement s'effectue quand même.

    Pouvez-vous m'expliquez pourquoi cela se produit ? Est-il possible à l'aide du code VBA que je souhaite utiliser d'empêcher cette déconnexion Excel indésirable ? Avez-vous une autre solution à me proposer.


    Exemple :
    -Enregistrement sous ...

    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
    Sub Macro1()
     
    Dim chemin As String
    chemin = "C:\"
    ActiveWorkbook.SaveAs Filename:=chemin & Worksheets(1).[A2].Value
     
    End Sub
     
    -------------------
     
    - Code présent dans la feuille ThisWorkbook
     
    'Ce code à pour but d'obliger l'utilisateur à enregistrer sous afin de ne pas modifier le fichier modèle
     
    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
     
    MsgBox " - ATTENTION - " & Chr(10) & "" & Chr(10) & "Si la demande d'enregistrement fait suite au lancement d'une macro nous vous invitons à cliquer sur OK" & Chr(10) & "" & Chr(10) & "En cas contraire, nous vous informons que vous n'êtes pas autorisés à enregistrer sur le fichier modèle." & Chr(10) & "" & Chr(10) & "Vous allez être redirigés vers un Enregistrement sous ... qui vous permettra de modifier le nom du fichier modèle ou d'écraser votre précédent enregistrement." & Chr(10) & "Cliquer 2 fois sur OK" & Chr(10) & "" & Chr(10) & "Si vous voulez mettre à jour le fichier modèle vous devez désactiver les macros."
     
    Application.Dialogs(xlDialogSaveAs).Show
     
     
    End Sub
     
    'Informe Excel que le fichier a déjà été enregistré (cela évite d'avoir une demande d'enregistrement à la fermeture)
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
        Application.ThisWorkbook.Saved = True
    End Sub

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    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 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Bonjour,

    Et si tu ouvrais le fichier en lecture seule ?
    Seuls ceux qui auraient le mot de passe pourraient l'enregistrer puisqu'en mode écriture.
    Les autres ne pourraient que l'enregistrer sous...

    Autrement, il y a aussi SaveCopyAs
    MPi²

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2014
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    Bonjour,

    J'ai pensée à la lecture seul mais ça ne me convient pas.
    J'aurais aimé une macro.

    Avez-vous une explication sur le fait que Excel cesse de fonctionner et doit redémarrer ?

  4. #4
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Tu pourrais demander au Service de Dictature Informatique de t'organiser un dossier exclusif pour tes modèles. Ils s'organisent pour que tu sois le seul à avoir des droits en écriture. Les autres, qui n'auraient que des droits en lecture seraient de toutes façons obligés d'enregistrer ailleurs.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  5. #5
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    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 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Il faudrait voir ce que retourne
    Worksheets(1).[A2].Value
    MPi²

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2014
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    Bonjour,

    Vous pouvez tester avec n'importe qu'elle mot comme "test".

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonsoir,
    les fichier modèles on une extention particulièr (xlt pour 2003) ; ouvre ton fichier modèle et fais eregistre sou et sélectionnes modèle avec macro.

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2014
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    Bonjour,

    A oui j'ai omis de préciser.
    Je travaille sous excel 2010 et les fichiers modèles contenant les macros sont en extension ".xlsm".
    Dois-je modifier cette extension pour résoudre la déconnexion indésirable d'excel ?

  9. #9
    Invité
    Invité(e)
    Par défaut
    Tu utilises des fichers exel 2010 ce sont des fichiers classique pas des modèles.

    Dans excel il faut faire enregistrer sous et la ou s'affiche l'extention xlsx ou xlsm click sur flèche et choisis modèle avec macro

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2014
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    Bonjour,

    Oubliez le mot modèle. Je ne l'utilisais pas dans ce sens mais plutôt de le sens initiale, origine, source, type, etc...

    Sinon, la modification de l'extension d'enregistrement ne change rien.

    Excel cesse toujours de fonctionner. Il doit redémarrer.
    Quelqu'un a t il une explication ?

  11. #11
    Invité
    Invité(e)
    Par défaut Bonjour, regardes ça
    Fichier Image
    Images attachées Images attachées  

  12. #12
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2014
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    Bonjour,

    Le format .xltm protège bien le fichier source et empêche bien excel de cesser de fonctionner.
    Par contre je rencontre un souci avec l'enregistrement automatique présente au sein de la macro.
    En effet l'enregistrement ne sauvegarde pas les macros. Peut-on aboutir à un enregistrement automatique en ".xlsm" ? Ca m'arrangerait beaucoup.
    J'ai essayé d'ajouter - & ".xlsm" ou & ".xltm" - mais ça ne fonctionne pas.
    Avez-vous une solution ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Macro1()
     
    Dim chemin As String
    chemin = "C:\"
    ActiveWorkbook.SaveAs Filename:=chemin & Worksheets(1).[A2].Value
     
    End Sub

  13. #13
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWorkbook.SaveAs Filename:="C:\Users\RDurupt\Documents\Classeur1.xlsm",   FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

  14. #14
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2014
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    Merci rdurupt
    C'est parfait.
    Ça répond à toutes mes attentes.

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

Discussions similaires

  1. [XL-2003] Nom de fichier en vba
    Par djoumusic dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/02/2010, 18h31
  2. [VBA]-Enregistrement d'un nom de fichier variable
    Par marc56 dans le forum Excel
    Réponses: 2
    Dernier message: 10/08/2007, 08h54
  3. [FEDORA] changé le nom de la machine
    Par java_fun dans le forum RedHat / CentOS / Fedora
    Réponses: 2
    Dernier message: 16/02/2007, 12h28
  4. [VBA E] TCD changé le nom d'une colonne
    Par comme de bien entendu dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/11/2006, 14h13
  5. Upload et enregistrement du nom du fichier dans une bdd
    Par johan_barbier dans le forum XMLRAD
    Réponses: 8
    Dernier message: 26/09/2005, 12h02

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