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

Excel Discussion :

supprimer les Guillemets autour du nom de fichier à enregistrer [XL-2003]


Sujet :

Excel

  1. #1
    Membre actif
    Inscrit en
    Janvier 2003
    Messages
    604
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 604
    Points : 247
    Points
    247
    Par défaut supprimer les Guillemets autour du nom de fichier à enregistrer
    Bonjour,
    Il arrive que dans une de mes applis VBA au moment d'enregistrer le fichier provenant d'un fichier XLT (au départ) je me retrouve via "enregistrer sous" avec un nom de fichier proposé commencant par un guillemet et finissant par un guillemet, si on enregistre sous ce format on perd l'accès à ce fichier.
    Merci d'avance de votre retour.


    Peut on éviter cela en vidant le cache des fichiers précédents et dans ce cas comment faire ?

  2. #2
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour,

    As tu essayé avec Replace ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    NomFichier = Replace(NomFichier, """", "")
    Hervé.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 141
    Points : 414
    Points
    414
    Par défaut Identifier la source du bug des guillemets dans le nom du classeur Excel
    Citation Envoyé par comme de bien entendu Voir le message
    Il arrive que dans une de mes applis VBA au moment d'enregistrer le fichier provenant d'un fichier XLT
    Il faut identifier dans le débogueur qui a ajouté les guillemets en suivant le fichier dès son ouverture (garantir que le fichier n'avait pas déjà ces guillemets), puis la modification de son contenu et enfin sa sauvegarde, car c'est là que l'on a de nouveau accès au nom du classeur.

    Citation Envoyé par comme de bien entendu Voir le message
    Peut on éviter cela en vidant le cache des fichiers précédents ?
    Vider un cache ne résoudra pas le problème. Cela le reportera à une prochaine session.

    Dans le débogueur du VBE (Visual Basic Editeur), cliquez sur le menu "Déboguer" > "Ajouter un espion" (Add Watch)
    Si le nom de fichier s'appelle filenameXls et selon sa portée, vous pouvez tenter l'expression :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Left(filenameXls, 1) = """"
    [x] Arrêter l'exécution lorsque l'expression est True. (Break When Value Is True)

    On peut citer l'extrait du code clé qui a ajouté ces guillemets si on n'arrive pas à corriger le bug.
    ___________

    En bas de ce message s'il vous a apporté des éléments de réponse pertinents, pensez également à voter en cliquant sur le bouton vert ci-dessous.

  4. #4
    Membre actif
    Inscrit en
    Janvier 2003
    Messages
    604
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 604
    Points : 247
    Points
    247
    Par défaut
    Bonjour,
    En fait je ne peux influencer le nom du fichier, puisque j'utilise la fonction d'enregistrement direct d'Excel. Je ne peux utiliser la méthode BeforeSave de ThisWorkbook car elle ne me donne accés qu'à deux booléens.
    Donc je reviens à la question de départ, il y aurait il un moyen de vider le buffer ou d'accèder différement aux noms restants dans le buffer ?
    Merci d'avance si vous avez d'autres idées.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 141
    Points : 414
    Points
    414
    Par défaut Contexte de mise au point à préciser
    Ce que vous appeliez "cache" (on pensait à un cache de navigateur Internet) dans le message #1 est devenu buffer.
    De même vous parliez de "vider le cache des fichiers précédents" et maintenant vous précisez "vider le buffer" contenant des "noms".
    Ce ne sont plus des fichiers mais des noms de fichiers.
    Evitez le mot "fichier" trop généraliste et abstrait, et utilisez le mot concret "classeur (.xls)" s'il s'agit de classeur Excel.

    Donnez entre les balises [code] et [/code] l'extrait significatif de gestion de ce buffer de noms de classeurs et le contexte d'exécution dans le débogueur montrant quand un de ses noms se retrouve avec des guillemets non souhaitées.

    Il faut que le lecteur puisse visualiser le contenu du buffer contenant les noms de classeurs à traiter et les variables locales, exactement comme vous lors de la session de debug suggérée dans le message #3.

    On peut difficilement faire de la mise au point à distance de façon abstraite sans que vous fournissez les éléments concrets et tangibles sur lesquels vous vous posez des questions.

    Au lieu de dire "je ne peux influencer le nom du fichier", nommez le, dans quelle variable, donnez le n° de ligne où il est extrait du buffer, la valeur de l'index dans le buffer. Comment sont les noms extraits du buffer avant le bug. Le bug se reproduit-il sur les autres noms restants, etc.
    ___________

    En bas de ce message s'il vous a apporté des éléments de réponse pertinents, pensez également à voter en cliquant sur le bouton vert ci-dessous.

  6. #6
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Comment est appelé ta fenêtre enregistrer sous ? du code VBA ?


    (..)guillemet, si on enregistre sous ce format on perd l'accès à ce fichier(..).
    tu est sur de cela ? as tu regardé ce que devenais ton fichier , n'est-ce pas juste un problème d'extension..

  7. #7
    Membre actif
    Inscrit en
    Janvier 2003
    Messages
    604
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 604
    Points : 247
    Points
    247
    Par défaut
    Bonjour,
    Je souhaite seulement enregistrer mon classeur Excel (qui contient aussi du code) mais en utilisant le bouton Enregistrer sous d'Excel et non pas une fonction à moi.
    Je récapitule, j'ouvre mon fichier .XLT => je génère un nouveau classeur Excel.
    Ensuite je veux enregistrer ce nouveau classeur, je clique sur le Bouton "Enregistrer sous" et je me trouve devant la fenetre que j'ai mis en piece jointe avec des guillemets autour.
    Je ne souhaite pas qu'il y ait ces guillemets dans la fenetre car si je l'enregistre tel quel mon windows(1) ne le considère plus comme classeur Excel.
    J'espère avoir pu dissiper quelques doutes dans vos esprits.
    Merci de vos idées.

    (1)Windows XP Professionnel Version 2002 Service Pack 3

    PS J'ai remarqué que sur le forum Excel dés lors qu'on posait une question où il n'y avait pas de code et où l'on parlait plutot de concept on avait du mal à obtenir des réponses.
    Images attachées Images attachées  

  8. #8
    Membre actif
    Inscrit en
    Janvier 2003
    Messages
    604
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 604
    Points : 247
    Points
    247
    Par défaut
    On a effectivement un probleme d'extension, car si on redonne l'extention .xls en modifiant le nom du fichier sous windows on a à nouveau accès au fichier.
    Mais cette solution est inenvisageable pour les utilisateurs.

  9. #9
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    bjr,

    Citation Envoyé par comme de bien entendu Voir le message
    PS J'ai remarqué que sur le forum Excel dés lors qu'on posait une question où il n'y avait pas de code et où l'on parlait plutot de concept on avait du mal à obtenir des réponses.
    il faut dire que tu parles d'application VBA dès le départ et tu étais dans le forum "macro et VBA"

    pas étonnant donc que les réponses étaient orientées vers du code VBA

  10. #10
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Citation Envoyé par comme de bien entendu Voir le message
    On a effectivement un probleme d'extension, car si on redonne l'extention .xls en modifiant le nom du fichier sous windows on a à nouveau accès au fichier.
    Mais cette solution est inenvisageable pour les utilisateurs.
    comment se nomment tes fichiers XLT ? (nom complet avec extension ..) ..

    pour moi il s'agit d'une règle simple (mais bon c'est peu-être parce-que j'ai connu le Dos...) on ne met pas un point dans un nom de fichier ...

  11. #11
    Membre actif
    Inscrit en
    Janvier 2003
    Messages
    604
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 604
    Points : 247
    Points
    247
    Par défaut
    Bonjour

    il faut dire que tu parles d'application VBA dès le départ et tu étais dans le forum "macro et VBA"
    C'est vrai, mais je pensais qu'il y aurait des objets de types VBA capables de répondre au soucis. Voyons voir ce que donne les réponses maintenant que le sujet est basculé sur ce forum.

    Bonne journée et bravo pour la réactivité.

  12. #12
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    bbil a répondu entre nos deux messages et le problème de point dans le nom de fichier semble une bonne piste sans VBA

  13. #13
    Membre actif
    Inscrit en
    Janvier 2003
    Messages
    604
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 604
    Points : 247
    Points
    247
    Par défaut
    pour moi il s'agit d'une règle simple (mais bon c'est peu-être parce-que j'ai connu le Dos...) on ne met pas un point dans un nom de fichier ...
    Effectivement le probleme vient du "." laissé dans le nom du fichier.
    J'aurais du m'en rendre compte, je vais pouvoir rassurer les utilisateurs/testeurs tout en leur demandant de ne pas de mettre de "." dans leur nom de fichier (ce qui arrive lorsqu'on numérote des versions de tests)
    Ca n'a effectivement pas de sens.
    Cela dit, je suis curieux de savoir comment vider la mémoire des noms de fichiers préalablement enregistrés. Sauriez vous à quel objet s'adresser ? (mais peut être faut il retourer au forum VBA)
    Allez l'essentiel est fait. Je marque résolu.

  14. #14
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    Citation Envoyé par comme de bien entendu Voir le message
    Cela dit, je suis curieux de savoir comment vider la mémoire des noms de fichiers préalablement enregistrés. Sauriez vous à quel objet s'adresser ? (mais peut être faut il retourer au forum VBA)
    c'est dans la base registre :
    HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Common\Open Find\Microsoft Office Excel\Settings\Enregistrer sous\File Name MRU
    (il y a plusieurs listes en fonction de la boîte de dialogue)

    je ne connais pas d'options dans les menus pour les vider
    pas facile à y accéder par VBA mais c'est possible, il y a du code d'accès au registre sur le forum (ce sont des API je crois qu'il faut utiliser)
    manuellement, on peut vider le contenu avec regedit.exe (faut juste faire attention à ce qu'on fait dans le registre!)

    il y a aussi des outils qui suppriment ces listes (pas seulement celles d'office)

    pour trouver plus facilement des infos sur google, rechercher avec le mot-clé MRU (most recently used)

  15. #15
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    je suis pas sur qu'il s'agisse de liste .. Il n'y as qu'un seul nom de fichier proposé celui-ci est construit à partir du nom du modèle utilisé , peu-être y as t'il une solution lors de la création du modèle pour définir comment ce nom doit être construit .?

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 23/08/2014, 12h07
  2. Problème pour supprimer les caractères spéciaux des noms de fichiers
    Par Steph84563 dans le forum Shell et commandes POSIX
    Réponses: 0
    Dernier message: 15/04/2014, 10h28
  3. [RegEx] Supprimer les caractères spéciaux des noms de fichiers
    Par Steph84563 dans le forum Langage
    Réponses: 4
    Dernier message: 11/04/2014, 14h51
  4. supprimer les espaces d'un nom de fichier
    Par Joey5 dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 07/11/2008, 11h56
  5. Supprimer les guillemets dans un fichier après écriture
    Par soulryo dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 01/03/2005, 11h39

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