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 un classeur dans un répertoire sans indiquer le chemin


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 32
    Points : 21
    Points
    21
    Par défaut Enregistrer un classeur dans un répertoire sans indiquer le chemin
    Bonjour,

    Je cherche à enregistrer un classeur dans un répertoire avec la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWorkbook.SaveAs Filename:=strNomFichier
    mais sans indiquer le chemin du répertoire dans ma variable, juste le nom du fichier. (le chemin du répertoire dépasse largement les 255 caractères et j'ai une erreur si je l'indique dans ma variable)

    Sans préciser un nom de repertoire, Excel enregistre mon fichier dans "Mes Documents".
    Est ce qu'il existe un moyen d'"activer" un autre répertoire que "Mes Documents" avant de faire l'enregistrement ?

    Merci d'avance

  2. #2
    Membre régulier
    Inscrit en
    Août 2006
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 73
    Points : 79
    Points
    79
    Par défaut
    Bonjour,

    Je vois 2 possibilités :

    - Soit tu utilises 2 variables reliées avec "&" (pas très orthodoxe mais ça doit marcher).

    - Soit tu stockes ton nom de répertoire dans une cellule nommée et tu l'exploites avec Range("NomCellule").value.

    Cordialement

    Sergio

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 32
    Points : 21
    Points
    21
    Par défaut
    Dans les deux cas, ça ne marche pas.

    D'ailleurs, le premier cas était mon cas de départ mais je me suis aperçu que ça pouvait dépasser dans certains cas
    (c'est d'ailleurs même pire puisqu'il prend en compte la longueur des deux chaines)

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    553
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 553
    Points : 566
    Points
    566
    Par défaut
    Bonjour,

    es-tu sûr que ton erreur provient de la longueur de ton chemin ?
    255 caractère, c'est peu pour une variable string

    Voilà ce qu'on trouve dans l'aide Excel
    Les chaînes de longueur variable peuvent contenir environ 2 milliards (2^31) de caractères.
    Les chaînes de longueur fixe peuvent contenir de 1 à environ 64 Ko (2^16) de caractères. (= 65536 caractères)

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 32
    Points : 21
    Points
    21
    Par défaut
    Pour une variable, non
    Pour un nom de répertoire, oui.

    J'ai une adresse du style:

    <Chemin d'accès au repertoire> & <Nom de mon repertoire que je crée dont la longueur varie> & <nom du fichier.xls>

    Si je m'arrange dans le code pour tronquer le nom du repertoire que je crée afin de ne pas dépasser au total les 255 caractères, ça passe.

    Sinon, j'ai une erreur sur la ligne SaveAS

  6. #6
    Membre régulier
    Inscrit en
    Août 2006
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 73
    Points : 79
    Points
    79
    Par défaut
    Ok, je n'avais pas compris, la limite de 255 caractères n'est pas imposée par le type de variable mais c'est effectivement le nombre de caractères maximum accepté pour un nom de dossier.

    L'origine du problème n'est donc pas ni dans ton programme, ni dans Excel mais dans Windows et il est incontournable. Ca ne sert donc à rien de chercher un moyen d'activer ce répertoire avant le saveAs car de toutes façons il n'existe aucun moyen de le créer.

    La solution est soit d'abréger au maximum tes noms de répertoires, soit de créer des niveaux supplémentaires dans ton arborescence.

    Cordialement

    Sergio

Discussions similaires

  1. [XL-2010] Enregistrement d'un classeur dans un répertoire
    Par loucinev dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 05/03/2015, 14h08
  2. Enregistrer une feuille dans un répertoire (et non le classeur entier)
    Par prog-amateur dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 06/11/2014, 14h03
  3. parcours des classeurs dans un répertoire
    Par nsqualli dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/11/2008, 06h15
  4. Sauvegarder un classeur dans un répertoire utilisateur (variable)
    Par Zak Blayde dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/05/2008, 13h59
  5. Enregistrer un fichier dans un répertoire tout juste créé
    Par MrBidon dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 26/03/2008, 17h54

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