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 :

"enregistrer.sous" avec un nom de fichier récupéré dans une variable


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 75
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 79
    Points : 41
    Points
    41
    Par défaut "enregistrer.sous" avec un nom de fichier récupéré dans une variable
    Bonjour,

    Pour éviter une quelconque erreur, je souhaiterais savoir s'il est possible d'"enregistrer.sous" un nom de fichier connu comme variable.

    Pour être plus précis, comment insérer, par macro, la variable dans "nom de fichier" de la boite de dialogue "Enregistrer sous".

    J'ai bien en tête qu'il faut que "mon" nom de fichier contienne tout le chemin du répertoire où sera enregistré le dit fichier. Ma variable en tiendra compte.

    Merci de votre aide,
    Cordialement,
    Maurice

  2. #2
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    un exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim Chemin As String, NomFichier As String
     
    Chemin = "C:\Users\user\Desktop\"
    NomFichier = "Test.xls"
    ThisWorkbook.SaveAs Chemin & NomFichier
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 75
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 79
    Points : 41
    Points
    41
    Par défaut
    Bonjour Mercatog,

    D'abord merci pour le coup de main !

    Ensuite, je demande un coup de main supplémentaire car je n'arrive pas à faire tourner, dans mon cas précis, la macro.

    En recopiant/adaptant votre proposition, je tombe sur un bug :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim Chemin As String, NomFichier As String
            Chemin = "C:\Users\Maurice GUILLIER\Desktop\"
            NomFichier = "Bon de livraison N°" & NoBonCommandeVal
            ThisWorkbook.SaveAs Chemin & NomFichier
    où "Bon de commande" est une chaîne de caractères et où " NoBonCommandeVal " est une variable définie auparavant. De plus,il faut enregistrer ce classeur en ".xlm".

    Ainsi, si la variable "NoBonCommandeVal" est, par exemple, 8, je devrais avoir un fichier (.xlm) intitulé Bon de livraison N° 8

    Si vous pouviez me guider dans les corrections à apporter, ce serait formidable.

    Bon après-midi,
    Maurice

  4. #4
    Inactif  
    Profil pro
    Inscrit en
    Février 2010
    Messages
    517
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 517
    Points : 617
    Points
    617
    Par défaut
    salut

    si tu faisais un simple et tout bête (c'est le tout premier réflexe à avoir) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    NomFichier = "Bon de livraison N°" & NoBonCommandeVal
    msgbox NomFichier
    tu découvrirais que NomFichier = "Bon de livraison N°8" et non "Bon de livraison N° 8" !
    il te manque un (petit ?) espace !

  5. #5
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim Chemin As String, NomFichier As String
    Dim NoBonCommandeVal As Integer
     
    NoBonCommandeVal = 8  'par exemple et pour l'exemple
    Chemin = "C:\Users\Maurice GUILLIER\Desktop\"
    NomFichier = "Bon de livraison N° " & NoBonCommandeVal & ".xlsm"
    ThisWorkbook.SaveAs Chemin & NomFichier
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 75
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 79
    Points : 41
    Points
    41
    Par défaut
    Super à vous deux !

    J'ai juste ajouté la commande du format de fichier. En effet, j'ai eu quelques ratés : un ou deux coups très réussis et la suite avec échec sur le type de fichiers par rapport à la nécessaire prise en charge des macros présentes. Pas encore compris ce qui s'est passé entre les différents essais.

    Du coup, le code, pour moi, devient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim Chemin As String, NomFichier As String
        Chemin = "C:\Users\Maurice GUILLIER\Desktop\"
        NomFichier = "Bon de livraison N° " & NoBonCommandeVal & ".xlsm"
        ThisWorkbook.SaveAs Chemin & NomFichier, FileFormat:= _
            xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
    sachant que la variable NoBonCommande a été définie plus haut dans la macro.

    En tout cas, un grand merci pour ce déblocage qui va permettre à ma voisine de ne pas faire de mauvaises manipulations à l'enregistrement de ses fichiers hebdomadaires.

    Cordialement,
    Maurice

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 13/06/2014, 11h37
  2. Requète SQL avec nom de table contenu dans une variable
    Par samoussa dans le forum Langage SQL
    Réponses: 2
    Dernier message: 13/05/2009, 13h58
  3. affectation d'un nom de classeur ouvert dans une variable
    Par nolive915 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/09/2006, 10h55
  4. importer les noms de fichiers html dans une table access
    Par abane badis dans le forum Access
    Réponses: 3
    Dernier message: 14/11/2005, 17h25

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