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 :

Spécifier le dossier d'enregistrement


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2002
    Messages : 18
    Par défaut Spécifier le dossier d'enregistrement
    Bonjour,

    Une appli TIERCE génère un fichier XML puis lance Excel en lui passant un paramètre avec le chemin d'accès du fichier à ouvrir (que j'ai placé en lecture seule) qui se trouve dans un répertoire 'Temp' ou l'application TIERCE envoi les documents à destination d'Excel.

    Tout cela fonctionne bien mais je souhaite que lorsque l'utilisateur choisi la commande 'Enregistrer sous'
    -> Pouvoir changer de répertoire, pour par exemple positionner l'utilisateur dans 'Mes documents' en lieu et place du répertoire temporaire à partir duquel a été ouvert le document XML,

    -> Pouvoir dans le dialogue d'enregistrement spécifier le format Excel en lieu et place du format XML.

    Si quelqu'un peut me mettre sur les rails d'avance merci

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Essaie ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.Dialogs.Item(xlDialogSaveAs).Show
    Tu dis si ça te convient
    A+

    Edit
    Si tu instancie Excel, tu remplaces Application par l'objet Application
    Ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Appxl = CreateObject("Excel.Application")
    Dans ce cas, tu mets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Appxl.Dialogs.Item(xlDialogSaveAs).Show

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2002
    Messages : 18
    Par défaut
    Merci de la réponse mais cela ne correspond par à ma demande initiale à laquelle j'ai trouvé la réponse (ci dessous) à placer dans le module 'ThisWorkbook':

    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Dim FName As String
    If Not SaveAsUI Then Exit Sub
    Application.EnableEvents = False
    FName = Application.GetSaveAsFilename("", fileFilter:="Classeur Microsoft Office Excel (*.xls), *.xls")
    Application.EnableEvents = True
    Cancel = True
    End Sub

    Ma nouvelle problèmatique est de trouver comment inserer automatiquement le code ci-dessus dedans le code du module 'ThisWorkbook'. J'arrive à le coller dans le code du module mais pas dans le code de 'ThisWorkbook' qui gère les événements.

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Déjà, teste en ne mettant que

    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)
    SaveAsUI = True
    Cancel = False
    End sub
    Tu auras une idée de la façon de procéder.
    Et jète un oeil dans l'aide à BeforeSave
    A+

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2002
    Messages : 18
    Par défaut Balises code ajoutées
    Maintenant j'arrive à écrire l'événement de la manière suivante et mon problème est résolu car cette macro lancée à l'ouverture de mon doc Excel va écrire un évenement relatif à Woorkbook_Before_save qui me positionne dans le dossier souhaité (ici C:\ pour l'exemple) et qui me sélectionne le format XLS par défaut (alors que mon document d'origine était en XML).

    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 SET_BeforeSave()
    '
    ' Set Event Workbook_BeforeSave
    '
    Dim NoLigne As Long
       With ThisWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule
            NoLigne = .CountOfLines
            .InsertLines NoLigne + 1, "Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)"
            .InsertLines NoLigne + 2, "   ChDir (""C:\"")"
            .InsertLines NoLigne + 3, "   Dim FName As String"
            .InsertLines NoLigne + 4, "   If Not SaveAsUI Then Exit Sub"
            .InsertLines NoLigne + 5, "   Application.EnableEvents = False"
            .InsertLines NoLigne + 6, "   FName = Application.GetSaveAsFilename("""", fileFilter:=""Classeur Microsoft Office Excel (*.xls), *.xls"")"
            .InsertLines NoLigne + 7, "   Application.EnableEvents = True"
            .InsertLines NoLigne + 8, "   Cancel = True"
            .InsertLines NoLigne + 9, "End Sub"
        End With
    End Sub

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

Discussions similaires

  1. [Débutant] specifier un dossier d'enregistrement
    Par mygwel dans le forum MATLAB
    Réponses: 1
    Dernier message: 25/03/2009, 10h55
  2. message spécifier la table contenant enregistrements
    Par stephen76 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 20/11/2008, 15h28
  3. getopenfilename spécifier le dossier
    Par mohcultiv dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 18/12/2007, 10h27
  4. Parcourir dans un dossier et enregistrer un fichier
    Par chriswhite06 dans le forum ASP.NET
    Réponses: 12
    Dernier message: 16/07/2007, 12h31
  5. Réponses: 6
    Dernier message: 07/07/2007, 19h58

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