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 :

Comment se compliquer la vie pour pas grand chose


Sujet :

Macros et VBA Excel

  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    novembre 2006
    Messages
    1 555
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : novembre 2006
    Messages : 1 555
    Points : 1 687
    Points
    1 687
    Par défaut
    dans ce cas, tu peux aussi mettre ton fichier de base en lecture seule
    de la sorte, si quelqu'un le met a enregistrer, il se met automatiquement en enregistrer sous (outil option sécurité). inconvenient, a l'ouverture il demande un mot de passe.d'ailleur a ce propos, j'ai une question a un euro si un balaise passe par là.
    j'ai voulu forcer la main a faire un saveas en workbook beforeclose
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    ThisWorkbook.SaveAs Filename:=Application.GetOpenFilename
    End Sub
    en dehors du fait que ça n'a pas l'air tout a fait exact coté getopenfilename, la vrai dificulté est ailleurs..
    a partir du moment ou il est écris, on ne peut plus l'enregistrer dans le fichier d'origine. es ce le poisson qui se mord la queue, ou es ce possible?

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : juin 2007
    Messages : 2 054
    Points : 2 415
    Points
    2 415
    Par défaut
    Citation Envoyé par alsimbad
    dans ce cas, tu peux aussi mettre ton fichier de base en lecture seule
    de la sorte, si quelqu'un le met a enregistrer, il se met automatiquement en enregistrer sous (outil option sécurité). inconvenient, a l'ouverture il demande un mot de passe.d'ailleur a ce propos, j'ai une question a un euro si un balaise passe par là.
    j'ai voulu forcer la main a faire un saveas en workbook beforeclose
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    ThisWorkbook.SaveAs Filename:=Application.GetOpenFilename
    End Sub
    en dehors du fait que ça n'a pas l'air tout a fait exact coté getopenfilename, la vrai dificulté est ailleurs..
    a partir du moment ou il est écris, on ne peut plus l'enregistrer dans le fichier d'origine. es ce le poisson qui se mord la queue, ou es ce possible?
    Là j'ai pas compris, tu veux forcer la main dans 'workbook beforeclose' et le bout de code que tu montre est dans 'Workbook_BeforeSave'

    Alors...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ThisWorkbook.SaveAs Filename:=Application.GetOpenFilename
    et là, je crois que tu navigue dans la pannade....
    A+

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    novembre 2006
    Messages
    1 555
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : novembre 2006
    Messages : 1 555
    Points : 1 687
    Points
    1 687
    Par défaut
    oui, c'est vrai, je reconnais. mal expliqué et mal rédigé. mais la question reste valable. si je veux forcer la main pour , lors de la fermeture, ou lors d'une tentative d'enregistrement, de la même façon que pour un fichier en lecture seule, qu'il fasse "enregistrer sous", le code n'est pas inscriptible. car dés lors qu'il est inscrit dans evenement workbook, il devient impossible de l'enregistrer dans le fichier origine. tu me suis là .
    c'est donc bien un beforesave, car beforeclose n'empecherais pas un enregistrement.
    et même si on oubli mon malheureux getopenfilename ça donnerait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    ThisWorkbook.SaveAs Filename:= "monclasseur"
    End Sub
    et il serais impossible d'enregistrer ce code dans le fichier origine


  4. #4
    Inactif  
    Profil pro
    Inscrit en
    juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : juin 2007
    Messages : 2 054
    Points : 2 415
    Points
    2 415
    Par défaut
    Citation Envoyé par marc56
    Quand je suis en création, j'ai dans ma fenêtre le nom du fichier de base qui vient d'être enregistré avec son futur numéro alors si quelqu'un se trompe et fais : Fichier\Enregistrer, mon fichier de base va être écrasé. C'est pour éviter cela que je souhaite le renommer.
    Mon système est peut-être un peu tordu, mais je fais avec mes connaissances.
    Je revient un peu tard mais j'ai eu une autre idée, pour empécher l'écrasement de ton fichier de base tu pourrais faire un test dans ta macro 'Fichier\Enregistrer' du genre..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        if ActiveWorkbook.Name= "MonFichierDeBase" then
           msgbox "vous ne pouvez......"
           exit sub
        end if
    A+

Discussions similaires

  1. Réponses: 3
    Dernier message: 22/11/2014, 07h56
  2. Des lignes compliquées pour pas grand chose
    Par Anduriel dans le forum Windows Forms
    Réponses: 1
    Dernier message: 30/10/2009, 15h25
  3. Giptables..je trouve pas grand chose
    Par irnatene dans le forum Réseau
    Réponses: 3
    Dernier message: 18/09/2006, 14h44

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