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 enregistrer sous, dans un dossier sur le bureau quelque soit le pc et utilisateur


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2013
    Messages : 10
    Points : 4
    Points
    4
    Par défaut Comment enregistrer sous, dans un dossier sur le bureau quelque soit le pc et utilisateur
    Bonjour à tous,

    J'ai un peu de mal à trouver une solution à mon petit problème. J'essaie de faire une macro qui enregistrera le fichier sous un nom précis, dans un dossier précis (qui peut-être créé en même temps), mais sur le bureau et quelque soit le nom du pc.
    Et c'est là, que j'ai du mal, car dans le chemin je ne sais pas comment dire : "C:\Users\..(quelque soit le nom du pc ou de l'utilisateur).....\Desktop\Suivi Castle.xlsx"

    J'ai essayé cela mais ça ne va pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub Macro1()
     
    ' Macro1 Macro
    ' Créer le dossier
    Dim Dossier As String, Fichier As String, Chemin As String
    Dossier = "Suivi agences"
    MkDir "C:\Users\" & Dossier
     
    ' Enregistre le fichier
    Fichier = "Suivi Castle"
    Chemin = "C:\Users\" & Dossier
    ActiveWorkbook.SaveAs Filename:=Chemin & "\" & Fichier & ".xlsx"
     
    End Sub
    Merci d'avance

  2. #2
    Membre émérite
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 814
    Points : 2 949
    Points
    2 949
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    Code trouvé : ==ICI==

    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
    Option Explicit
     
    Sub CheminRepertoiresSpeciaux()
        'Testé avec Excel2002 & WinXp & Excel2010
        Const Cible = &H10 'Desktop
        Dim objShell As Object
        Dim objFolder As Object, objFolderItem As Object
     
        Set objShell = CreateObject("Shell.Application")
        Set objFolder = objShell.Namespace(Cible)
        Set objFolderItem = objFolder.Self
     
        MsgBox objFolderItem.Path
     
    End Sub
    Cordialement,
    Franck

  3. #3
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    ceci fonctionne également

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Debug.Print CreateObject("WScript.Shell").SpecialFolders("Desktop")
    on obtient le chemin vers le bureau

  4. #4
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut
    Bonjour Joe,

    j'avais vu cette façon d'écrire le code afin d'avoir accès au bureau; court et pratique =>
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2013
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    Merci à tous pour vos retours, voici le code définitif
    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 Macrotest()
    'Détermine le chemin
    Const Cible = &H10 'Desktop
        Dim objShell As Object
        Dim objFolder As Object, objFolderItem As Object
     
        Set objShell = CreateObject("Shell.Application")
        Set objFolder = objShell.Namespace(Cible)
        Set objFolderItem = objFolder.Self
        Chemin = objFolderItem.Path
    'Enregistre le fichier
    Fichier = "Suivi Castelnau"
    ActiveWorkbook.SaveAs Filename:=Chemin & "\" & Fichier & ".xls"
     
    End Sub
    Par contre, je n'ai pas su me servir de ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Debug.Print CreateObject("WScript.Shell").SpecialFolders("Desktop")

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Environ("UserProfile") & "\Desktop"

  7. #7
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    si le dossier est mappé "Bureau" au lieu de Desktop, construire le chemin via Environ() en y ajoutant /desktop ne va pas fonctionner ? Si ?

    @wkrystof

    ma ligne de code ne faisait qu'afficher dans la fenêtre d'execution le chemin

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Chemin = CreateObject("WScript.Shell").SpecialFolders("Desktop")
    Là il est placé dans la variable Chemin pour utilisation

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Effectivement si notre ami est sous win xp.

    Au moins il n'aura pas de problème entre win32 et win64!

    Si son profile est mappé sur un serveur ce que j'ai mis plus haut fonctionne sauf sur xp!

Discussions similaires

  1. [OL-2003] Recuperation et impression des mails dans un dossier sur le bureau
    Par devone078 dans le forum VBA Outlook
    Réponses: 1
    Dernier message: 05/06/2011, 22h03
  2. Désactiver "enregistrer sous.." dans Excel 2007
    Par elparagouayo dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 29/10/2009, 14h54
  3. Réponses: 3
    Dernier message: 07/11/2008, 11h41
  4. Réponses: 35
    Dernier message: 21/05/2006, 21h01
  5. Enregistrer sous dans des dossiers partagés
    Par pc306 dans le forum Windows XP
    Réponses: 7
    Dernier message: 04/01/2006, 20h58

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