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 :

Macro enregistrer sous [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Gestionnaire de Stock
    Inscrit en
    Juin 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Gestionnaire de Stock
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Juin 2016
    Messages : 4
    Par défaut Macro enregistrer sous
    Bonjour a tous,

    Voici un morceau d'une macro :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim Path As String, valeur As String
    Path = ThisWorkbook.Path & "\"
    valeur = "Fichier injection AJOUT48H ENTREPOT_" & Format(Date, "dd-mmmm-yyyy") & "_" & Format(Time, "hh-mm") & ".xlcsv"
    ThisWorkbook.SaveAs Filename:="Fichier injection AJOUT48H ENTREPOT" & Format(Date, "dd-mmmm-yyyy"), FileFormat:=xlCSV, Local:=True
    MsgBox ("Le fichier a été enregistré sous : Mes documents (N'oubliez pas de vérifier le Fichier CSV avant injection !")
    Le problème et que cette enregistrement se fait dans le dossier /mesdocuments, je souhaite pourvoir changer la destination de ce fichier, après maintes essais je ne trouve pas la solution (le message MSGBOX sera changé en conséquence).

    Pourriez-vous m'aider ?

    Merci beaucoup bonne journée a tous.

  2. #2
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 682
    Par défaut
    Bonjour,

    Un code sans balise code (#) c'est illisible.

    Tu définis un chemin:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Path = ThisWorkbook.Path & "\"
    Mais tu ne l'utilise pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ThisWorkbook.SaveAs Filename:="Fichier injection AJOUT48H ENTREPOT" & Format(Date, "dd-mmmm-yyyy"), FileFormat:=xlCSV, Local:=True
    Essaye donc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ThisWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\Fichier injection AJOUT48H ENTREPOT" & Format(Date, "dd-mmmm-yyyy"), FileFormat:=xlCSV, Local:=True

  3. #3
    Membre Expert
    Inscrit en
    Septembre 2007
    Messages
    1 142
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 142
    Par défaut
    Bonjour a tous,

    Voici ta macro modifiée :

    Path est un mot réservé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim chemin As String, valeur As String
    chemin =  "D:\ton répertoire voulu\"
    valeur = "Fichier injection AJOUT48H ENTREPOT_" & Format(Date, "dd-mmmm-yyyy") & "_" & Format(Time, "hh-mm") & ".xlcsv"
    ThisWorkbook.SaveAs Filename:=chemin & valeur
    MsgBox "Le fichier a été enregistré sous : " & chemin & vblf & "N'oubliez pas de vérifier le Fichier CSV avant injection !"

  4. #4
    Membre très actif
    Homme Profil pro
    Analyste programmeur
    Inscrit en
    Mai 2014
    Messages
    393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Analyste programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 393
    Par défaut
    Bonjour,

    1) Merci d'utiliser les balises [code] (bouton # lors de la rédaction du message
    2) Utiliser " Path " comme nom de variable n'est pas très recommandé
    3) " ThisWorkbook.Path " récupère le chemin d'accès au dossier contenant le fichier. C'est ici qu'il y a quelque chose à modifier pour pouvoir changer de dossier
    4) Comment souhaites-tu changer l'emplacement? :
    a) L'utilisateur rentre le chemin complet ?
    b) L'utilisateur entre un chemin relatif ? (toujours le même dossier de départ mais pas le même sous-dossier)
    c) Le chemin complet du dossier est toujours prédéterminé ? (Il ne sera jamais modifié)
    d) L'utilisateur sélectionne un dossier dans une boîte de dialogue ? (Plus sûr que de rentrer un chemin complet ou relatif)

    5) simple curiosité de ma part... mais à quoi sert " valeur " ? Ta variable n'est pas utilisée!

    Solutions:
    a) L'utilisateur entre une valeur (ne pas oublier l'antislash de fin) (dans une textbox, dans une cellule, ...) qui est enregistrée dans la variable " var " et tu enregistres ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ThisWorkbook.SaveAs Filename:= var & "Fichier injection AJOUT48H ENTREPOT" & Format(Date, "dd-mmmm-yyyy"), FileFormat:=xlCSV, Local:=True
    b) Il faut 2 variables ici, une première dans laquelle tu indiques la partie absolue, et une seconde réalisant la même chose que la solution a) ou d), puis tu enregistres ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ThisWorkbook.SaveAs Filename:= var1 & var2 & "Fichier injection AJOUT48H ENTREPOT" & Format(Date, "dd-mmmm-yyyy"), FileFormat:=xlCSV, Local:=True
    c) La plus simple, il faut que tu indiques le chemin souhaité dans une variable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var = "mon\chemin\complet\avec\antislash\de\fin\"
    ThisWorkbook.SaveAs Filename:= var & "Fichier injection AJOUT48H ENTREPOT" & Format(Date, "dd-mmmm-yyyy"), FileFormat:=xlCSV, Local:=True
    d) Créer un bouton "parcourir" ayant le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Sub CommandButton1_Click()
     
        With Application.FileDialog(msoFileDialogFolderPicker)
            .AllowMultiSelect = False
            .Show
            var = .SelectedItems(1)
        End With
     
    End Sub
    puis sauvegarder de la même manière que pour c)

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Gestionnaire de Stock
    Inscrit en
    Juin 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Gestionnaire de Stock
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Juin 2016
    Messages : 4
    Par défaut
    Bonjour a tous,

    Déjà merci a vous tous pour vos réponses, je ne trouvai pas les Balises [code] dans le panneau de contrôle.

    Halaster08,

    La dernière Ligne de code et exactement celle qu'il me faut !!!

    Milles merci !

    Anasecu,

    Merci pour la petite indication concernant le terme "Path".

    Merci pour tes indications.

    JeanMIMI,

    Je suis nouveau dans le VBA je n'ais pas encore toutes les billes pour codé tout seul, je brasse pas mal de forum pour m'aiguiller un peut. Pour le prochain poste je ferai en sorte d'être plus précis et de respecter les Balisages.

    Merci a toi pour l'intérêt porter a mon post.

    Encore merci a vous trois.

    Bonne journée.

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

Discussions similaires

  1. [XL-2007] Améliorer ma macro "enregistrer sous"
    Par Gualino dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/07/2011, 18h50
  2. [OpenOffice][Tableur] [calc] macro "enregistrer sous"
    Par chegerg dans le forum OpenOffice & LibreOffice
    Réponses: 1
    Dernier message: 24/03/2009, 06h00
  3. macro enregistrer sous
    Par ericdev67 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 09/02/2008, 18h43
  4. Macro "enregistrer sous et mise à jour"
    Par Jonathan Raucy dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 17/01/2008, 09h37
  5. Macro enregistrer sous
    Par lara008 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/08/2007, 14h15

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