Accueil > Forum > > > > VC++ - Automation Excel - Save tout court et non pas SaveAS ??
VC++ - Automation Excel - Save tout court et non pas SaveAS ??
jeudi 31 mars 2005 à 21:50:13 |
VC++ - Automation Excel - Save tout court et non pas SaveAS ??

clothilde
|
Bonsoir tout le monde, je ne savais pas dans quelle rubrique poster ce sujet, je l'ai donc mis dans "au secours". Je travaille avec Visual C++, j'ai créé une appli qui, au terme de diverses manip, vient écrire son compte rendu dans un fichier excel. Jusque là pas de soucis. J'accès bien à excel, je crée bien le fichier si nécessaire et je sauvegarde via une ligne du style :
worksheet->SaveAs(cheminDeSauvegarde); Lorsque le fichier n'existe pas, aucun soucis, le fichier est créé et excel est fermé ensuite par un close. Comme je souhaite que cette manipe soit faite de façon transparente pour l'utilisateur, je n'affiche pas excel. Mon soucis réside dans le SaveAs. En effet, comme je viens de le dire, lorsque le fichier n'existe pas, c'est ok. Par contre, lorsque le fichier existe, je complète son contenu avec les nouvelles infos, pas de soucis. Mais étant donné qu'il s'agit d'un SaveAs, comme tout SaveAs qui se respecte, il me demande, par l'intermédiaire d'une boite de dialogue, si je veux remplacer le fichier existant. La transparence est foutue :-( Etant donné que si le fichier existe je l'ouvre pour y ajouter des données, je souhaiterais pouvoir le sauver à la méthode du Save, c'est à dire sans poser de question. Quelqu'un saurait-il comment faire ?  Clo
|
|
vendredi 1 avril 2005 à 13:15:14 |
Re : VC++ - Automation Excel - Save tout court et non pas SaveAS ??
|
vendredi 1 avril 2005 à 14:06:04 |
Re : VC++ - Automation Excel - Save tout court et non pas SaveAS ??

clothilde
|
Salut Meech,
tout d'abord merci pour le lien, j'ai eu beau chercher je n'avais pas trouvé (mettons ça sur le dos de la fatigue ;-) )
Pour répondre à ta question, oui j'ai bien mis visible à False. L'environnement Excel n'apparaît pas à l'utilisateur. Seule la boîte de dialogue de confirmation d'enregistrement du fichier apparaît.
Alors effectivement, grâce au lien que tu viens de m'indiquer, je constate que la méthode Save est une méthode du workbook et non pas du sheet. Ce qui est déjà très intéressant.
En utilisant la méthode Save correctement appliquée, il y a une évolution : la dialogue box n'affiche plus "il existe déjà un fichier machin.xls, voulez-vous le remplacer ?" mais "Voulez-vous sauvegarder les modifications apportées au fichier machin.xls", ce qui en soit est déjà un net progrès car le deuxième message est moins inquiétant d'un point de vue utilisateur.
Mais cela ne résoud pas entièrement le problème. L'idéal serait de ne pas avoir du tout cette dialogue box.
Toujours avec le lien que tu m'as indiqué, je vois que la méthode SaveAs peut s'appliquer au wookbook au lieu du sheet, avec un paramètre suplémentaire qui est le paramètre ConflictResolution . Ce paramètre semble être ce que je recherche. Je suppose qu'en lui passant la valeur xlLocalSessionChanges je devrais pouvoir forcer l'enregistrement des modifications sans afficher de dialog box.
Et là je sèche de nouveau, comment faire pour passer ce paramètre ? A la compilation la constante n'est pas reconnue (avec un x ou un X d'ailleurs) D'autre part, quelle valeur faut-il passer aux autres paramètres pour que leur valeur par défaut soit conservée ? est-ce que NULL fait l'affaire ou surtout pas ?
J'ai essayé de chercher, mais j'avoue bloquer sur ce point.
Si tu as la solution, je t'en serais reconnaissante ;-)
Merci,
Clo
|
|
vendredi 1 avril 2005 à 15:09:58 |
Re : VC++ - Automation Excel - Save tout court et non pas SaveAS ??

meech
|
Re-bonjour,
A priori, d'après ce que j'ai pu trouver, en C ou C++ (ou quel que soit le langage, en fait...), xlLocalSessionChanges est une macro définie du genre : #define xlLocalSessionChanges 2
... ce qui me porte à dire qu'en spécifiant 2 dans l'argument concerné, tu obtiendras peut-être une solution à ton problème. En effet, MSDN lui-même n'explique-t-il pas que "xlLocalSessionChanges (automatically accept the local users changes)" ?
Bref, en gros, xlLocalSessionChanges est sans doute une macro non spécifiée dans un des nombreux fichiers d'en-têtes fourni avec Visual C++...
En espérant que tu vois le bout du tunnel, Ciao. 
PS. Dans l(hypothèse où cela fonctionne enfin, n'oublies pas de valider ma réponse ! 
|
|
vendredi 1 avril 2005 à 15:10:07 |
Re : VC++ - Automation Excel - Save tout court et non pas SaveAS ??

meech
|
Re-bonjour,
A priori, d'après ce que j'ai pu trouver, en C ou C++ (ou quel que soit le langage, en fait...), xlLocalSessionChanges est une macro définie du genre : #define xlLocalSessionChanges 2
... ce qui me porte à dire qu'en spécifiant 2 dans l'argument concerné, tu obtiendras peut-être une solution à ton problème. En effet, MSDN lui-même n'explique-t-il pas que "xlLocalSessionChanges (automatically accept the local users changes)" ?
Bref, en gros, xlLocalSessionChanges est sans doute une macro non spécifiée dans un des nombreux fichiers d'en-têtes fourni avec Visual C++...
En espérant que tu vois le bout du tunnel, Ciao. 
PS. Dans l'hypothèse où cela fonctionne enfin, n'oublies pas de valider ma réponse ! 
|
|
vendredi 1 avril 2005 à 15:52:45 |
Re : VC++ - Automation Excel - Save tout court et non pas SaveAS ??

clothilde
|
Re, merci pour ces infos et pour ton aide. Par contre, comment faire pour passer cet argument à la méthode ???  Clo
|
|
samedi 2 avril 2005 à 14:29:38 |
Re : VC++ - Automation Excel - Save tout court et non pas SaveAS ??

clothilde
|
:-( je reste bloquée, je n'arrive pas à passer l'argument à la méthode parmis les 11 arguments requis, j'ai cherché un peu partout mais aucune solution :-(  Clo
|
|
lundi 4 avril 2005 à 09:27:16 |
Re : VC++ - Automation Excel - Save tout court et non pas SaveAS ??

meech
|
Réponse acceptée !
Bonjour Clothilde,
Désolé de ma réponse tardive. Je me demande si nous sommes bien sur la bonne voie... J'ai en effet découvert une propriété qui définit (sous Excel 97 mais cela doit fonctionner sur les versions suivantes) pour éviter la boîte de dialogue :
[ Lien ]
Il faudrait définir dès lors Application.AlertBeforeOverwriting = FALSE où Application constitue l'objet instancié de Excel.
En espérant enfin t'avoir aidé un peu... A +
(Sans vouloir toujours critiquer, c'est quand même un peu le bord..l, Microsoft et sa MSDN)
|
|
lundi 4 avril 2005 à 15:26:47 |
Re : VC++ - Automation Excel - Save tout court et non pas SaveAS ??

clothilde
|
Salut Meech,
en fait l'AlertBeforeOverwriting concerne l'écrasement des cellules et non pas l'écrasement des fichiers semblerait-il.
Toujours est-il qu'en travaillant sur cette dernière option j'ai repris un peu mon code et je l'ai modifié de la sorte :
excel->PutVisible ( false);
Excel::_WorkbookPtr workbook;
if (!existant) { workbook = excel->Workbooks->Add(static_cast<long>(Excel::xlWorksheet));}
if (existant) { workbook = excel->Workbooks->Open (cheminDeSauvegarde); }où existant est un booléen permettant de savoir si le fichier existe déjà ou non
puis je fais mes manipe et je fais un
worksheet->SaveAs(cheminDeSauvegarde); si le fichier n'existait pas au départ ou un
workbook->Save(); si le fichier existait.
Et là ça marche. Il me semble que j'avais fait ça dès ton premier indice, mais apparemment j'avais dû écrire workbook->Save; qui fonctionne mais qui fait apparaître la dialogue d'après les essais que j'ai pû faire.
En tout cas merci pour ton aide, merci à BruNews également.
Clo
|
|
lundi 4 avril 2005 à 16:52:46 |
Re : VC++ - Automation Excel - Save tout court et non pas SaveAS ??

meech
|
Désolé pour la dernière confusion. A +. 
|
|
Cette discussion est classée dans : fichier, excel, existe, soucis, saveas
Répondre à ce message
Sujets en rapport avec ce message
Ecrire dans fichier excel par interface C plus plus [ par cvi ]
Comment puis-je écrire dans un fichier excel à partir d'une interface concue en c plus plus ?Pouvez-cous me donner un exemple de code ?Merci d'avance.
accés à un fichier Excel [ par gagaet22 ]
Bonjour à tous!!!En basic, pas de souci pour l accés à Excel. Par contre en c++ je n ai AUCUNES IDEES de comment m y prendre. J ai regardé dans MSDN e
aide sur les fichiers [ par dickymoe ]
VinceExiste-t-il une fonction permettant de savoir si un fichier existe ?et une autre permettant de savoir si un fichier est vide ?merci
L'équivalence de common en C [ par khalidlyon ]
Bonjour, Enfaite, j'ai un variable qui prend 1 si le fichier existe et 0 si non, le probleme que l'application commence par un fichier qui n existe pa
tester si un fichier existe [ par desquesa ]
Bonjour tout le monde,je voudrais juste savoir comment tester en Visual c++6, si un fichier existe ou non, car en fait je cherche a copier un fichier
Ouvrir un fichier excel deja enregistrer ss VC++ [ par kalf2000 ]
salut a tous,voila je voudrai faire un truc très simple, je veux que lorsque je click sur un bouton, un fichier excel (.xls) qui contien deja des info
ouvrir un fichier Excel avec 'C plus plus ' [ par cvi ]
Mon problème est d'ouvrir un fichier excel d'après une interface créer à l'aide de visual C"plus plus" 6.0.Le but est d'ouvrir un fichier avec un bout
pb de lecture ecriture d'un fichier excel [ par margotfleur ]
MargotFleur Bonjour à tous !Après avoir lu tout ce qu'il y a sur ce forum concernant l'accès à un fichier excel, (je suis débutante en VC++), je n'arr
EXcel i need you [ par ifren ]
bonjourje voudrai creer une application sous vc++ et qui (en clickant par exemple sur un boutton) me crée un fichier .xls (Excel), en faisant remplir
ecrire dans un fichier Excel sous Dev-Cpp [ par fox88 ]
je recherche un moyen afin d'ecrire des donnees dans un fichier Excel afin de mettre de la mise en forme (couleur des cellules, etc...) en c++ sous De
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
MATLAB PROGRAMME MATLAB PROGRAMME par wahab1087
Cliquez pour lire la suite par wahab1087 RGB2GRAYRGB2GRAY par musa18
Cliquez pour lire la suite par musa18
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|