Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel
Excel Forum d'entraide sur Excel. Vos questions sur les fonctions, formules, manipulations, et tout sujet qui ne trouve pas sa place dans un sous-forum.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/08/2011, 16h15   #1
Membre régulier
 
Inscription : janvier 2003
Messages : 254
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 254
Points : 76
Points : 76
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 ?
comme de bien entendu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/08/2011, 16h23   #2
Membre Expert
 
Homme Hervé Silve
Inscription : août 2010
Messages : 773
Détails du profil
Informations personnelles :
Nom : Homme Hervé Silve
Localisation : France

Informations forums :
Inscription : août 2010
Messages : 773
Points : 2 093
Points : 2 093
Bonjour,

As tu essayé avec Replace ?
Code :
1
2
 
NomFichier = Replace(NomFichier, """", "")
Hervé.
Theze est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/08/2011, 17h31   #3
Membre éclairé
 
Inscription : juillet 2011
Messages : 141
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 141
Points : 382
Points : 382
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 :
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.
MattChess est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/08/2011, 22h30   #4
Membre régulier
 
Inscription : janvier 2003
Messages : 254
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 254
Points : 76
Points : 76
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.
comme de bien entendu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/08/2011, 23h58   #5
Membre éclairé
 
Inscription : juillet 2011
Messages : 141
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 141
Points : 382
Points : 382
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.
MattChess est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2011, 07h23   #6
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 847
Points : 16 847
Envoyer un message via Skype™ à bbil
Comment est appelé ta fenêtre enregistrer sous ? du code VBA ?


Citation:
(..)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..
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2011, 09h46   #7
Membre régulier
 
Inscription : janvier 2003
Messages : 254
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 254
Points : 76
Points : 76
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
Type de fichier : jpg EnregistrerSous.JPG (33,0 Ko, 8 affichages)
comme de bien entendu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2011, 09h50   #8
Membre régulier
 
Inscription : janvier 2003
Messages : 254
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 254
Points : 76
Points : 76
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.
comme de bien entendu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2011, 09h51   #9
Responsable Access
 
Avatar de Arkham46
 
Inscription : septembre 2003
Messages : 4 300
Détails du profil
Informations personnelles :
Localisation : France, Loiret (Centre)

Informations forums :
Inscription : septembre 2003
Messages : 4 300
Points : 7 939
Points : 7 939
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
__________________
Assistant de création/modification de rubans Office
Utilisez en VBA les librairies graphiques GDI, GDI+ et openGL

Blog Office Mon Site DVP
Arkham46 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 11/08/2011, 09h59   #10
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 847
Points : 16 847
Envoyer un message via Skype™ à bbil
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 ...
bbil est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 11/08/2011, 10h04   #11
Membre régulier
 
Inscription : janvier 2003
Messages : 254
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 254
Points : 76
Points : 76
Bonjour

Citation:
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é.
comme de bien entendu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2011, 10h15   #12
Responsable Access
 
Avatar de Arkham46
 
Inscription : septembre 2003
Messages : 4 300
Détails du profil
Informations personnelles :
Localisation : France, Loiret (Centre)

Informations forums :
Inscription : septembre 2003
Messages : 4 300
Points : 7 939
Points : 7 939
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
__________________
Assistant de création/modification de rubans Office
Utilisez en VBA les librairies graphiques GDI, GDI+ et openGL

Blog Office Mon Site DVP
Arkham46 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 11/08/2011, 10h41   #13
Membre régulier
 
Inscription : janvier 2003
Messages : 254
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 254
Points : 76
Points : 76
Citation:
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.
comme de bien entendu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2011, 11h35   #14
Responsable Access
 
Avatar de Arkham46
 
Inscription : septembre 2003
Messages : 4 300
Détails du profil
Informations personnelles :
Localisation : France, Loiret (Centre)

Informations forums :
Inscription : septembre 2003
Messages : 4 300
Points : 7 939
Points : 7 939
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)
__________________
Assistant de création/modification de rubans Office
Utilisez en VBA les librairies graphiques GDI, GDI+ et openGL

Blog Office Mon Site DVP
Arkham46 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2011, 11h40   #15
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 847
Points : 16 847
Envoyer un message via Skype™ à bbil
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 .?
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h57.


 
 
 
 
Partenaires

Hébergement Web