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 :

Forcer le chemin d'enregistrement d'un fichier [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Bénévole en association
    Inscrit en
    Décembre 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Bénévole en association

    Informations forums :
    Inscription : Décembre 2016
    Messages : 3
    Points : 0
    Points
    0
    Par défaut Forcer le chemin d'enregistrement d'un fichier
    Bonjour à tous,

    J'ai un fichier de données Nom.xlsm dans un dossier A et une macro qui en extrait des données pour les placer dans un autre fichier que je souhaite enregistrer dans un sous dossier B du dossier d'origine.
    Que je crée un nouveau fichier ou ouvre un dossier cible se trouvant dans le même dossier et en utilisant la fonction :
    ActiveWorkbook.SaveAs Filename:=nom_fichier,FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False

    Le ficher est enregistré dans "Mes documents".
    Le dossier A sera à terme stocké sur un Drive pour être utilisables par plusieurs personnes (pas toujours très douées en informatique) et je voudrais que l'enregistrement se fasse dans le sous-dossier B pour leur éviter d'avoir à aller le charcher.

    Qui peut me donner une solution élégante.
    Merci d'avance.

  2. #2
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    476
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 476
    Points : 494
    Points
    494
    Par défaut
    Bonsoir;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWorkbook.SaveAs Filename:="C:\B\NomDuFichier.xlsm", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Bénévole en association
    Inscrit en
    Décembre 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Bénévole en association

    Informations forums :
    Inscription : Décembre 2016
    Messages : 3
    Points : 0
    Points
    0
    Par défaut
    Merci pour cette réponse que je vais essayer dès que possible mais j'ai un doute sur sa validité dans le cas de dossier sur un Drive du le chemin dépend de l'utilisateur. Je ferai l'essai avec deux ordinateurs me permettant d'avoir des noms d'utilisateurs différents.

  4. #4
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 272
    Points
    11 272
    Par défaut
    Salut, à adapter à ton contexte
    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
    Option Explicit
     
    Private Declare Function SHCreateDirectoryEx Lib "Shell32.dll" Alias "SHCreateDirectoryExA" _
                                                 (ByVal hwnd As Long, _
                                                  ByVal pszPath As String, _
                                                  ByVal lngsec As Long) As Long
     
    Sub Tst()
    Dim sChemin As String, sDossier As String
        sDossier = ThisWorkbook.Path & "\" & "B"
        CreationDossier sDossier
        sChemin = sDossier & "\" & "Essai.xlsm"
        ThisWorkbook.SaveAs Filename:=sChemin , FileFormat:=52
    End Sub
     
    Private Function CreationDossier(ByVal sDossier As String) As Long
    Dim Rep As Long
        Rep = SHCreateDirectoryEx(0&, sDossier, 0&)
    End Function

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Bénévole en association
    Inscrit en
    Décembre 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Bénévole en association

    Informations forums :
    Inscription : Décembre 2016
    Messages : 3
    Points : 0
    Points
    0
    Par défaut
    Comme le sous-dossier visé existe déjà dans le dossier source,je n'ai eu qu'à utiliser quelques lignes de ta proposition :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim sChemin As String, sDossier As String
        sDossier = ThisWorkbook.Path & "\" & "(nom du sous-dossier)"
        nom_fichier = sDossier & "\" & "(nom du fichier)"
        ActiveWorkbook.SaveAs Filename:=nom_fichier _
            , FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
    et j'ai obtenu exactement le résultat recherché. Un grand merci

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

Discussions similaires

  1. [WD-2003] Chemin d'enregistrement d'un fichier en fonction d'un signet
    Par FCL31 dans le forum VBA Word
    Réponses: 0
    Dernier message: 28/08/2012, 14h57
  2. Chemin pour enregistrer un fichier sur le serveur
    Par Scrountch dans le forum Glassfish et Payara
    Réponses: 3
    Dernier message: 11/03/2008, 12h52
  3. [RTF] Forcer l'enregistrement d'un fichier RTF ouvert via IE
    Par TomZ dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 17/08/2006, 11h14
  4. [HTML] forcer l'enregistrement d'un fichier
    Par krfa1 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 29/11/2005, 00h58
  5. enregistrer dans un fichier avec une appli mdi
    Par ferrari dans le forum C++Builder
    Réponses: 4
    Dernier message: 05/05/2002, 16h17

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