SaveCopyAs amélioré ????

Résolu/Fermé
jasdrian Messages postés 4 Date d'inscription mardi 12 mai 2015 Statut Membre Dernière intervention 5 novembre 2015 - 12 mai 2015 à 14:05
jasdrian Messages postés 4 Date d'inscription mardi 12 mai 2015 Statut Membre Dernière intervention 5 novembre 2015 - 18 mai 2015 à 13:21
Salut,

Je vous expose mon petit problème :
J'ai un classeur excel servant à dépouiller des résultats (saisie de quelques paramètres par userform, importation de données qui passent dans un mixte de code VBA et excel pour finir en graphique).
Le classeur est au format xlsm
Depuis le userform, j'aimerais enregistrer mes résulats dépouillés tout en conservant mon classeur de calcul ouvert pour traiter les données suivantes. Donc enregistrement d'une copie, de préférence en simple format xlsx (pas besoin de trainer les macros une fois qu'elles ont servi).

J'ai tout d'abord essayé le save as en xlsx, mais une fenêtre me demandait systématiquement si je désirais bien me passer des macros (fenêtre que j'ai finalement dégagée). Néanmoins, ça m'obligeait à aller rouvrir à chaque fois mon classeur de calcul... bref ça n'était le bon code (A moins de rajouter la réouverture du classeur de calcul avant la fermeture de l'autre, mais une fois en xlsx, une macro pour appeler mon classeur marchera-t elle ?).

Puis en fouillant les forums j'ai découvert le SaveCopyAs. ça marche super, en enregistrant directement en xlsx, tout en gardant ouvert le bon classeur. Sauf que lorsque j'essaie de rouvrir les fichiers sauvés, j'ai message d'erreur racontant que le format n'est pas bon et que le fichier est peut-être corrompu. En changeant l'extension en xlsm, le ficher s'ouvre et je retrouve mes résultats. Et le code, aussi.

Donc je cherche à comprendre : pourquoi Excel ne pose-t-il pas la question à propos des macros, puisque je lui demande le format xlsx (avec SaveCopyAs) ?

Et une question : existe-t-il une autre commande similaire à SaveCopyAs permettant de choisir le format d'enregistrement (xlsm, même si j'aime pas vraiment l'idée de trainer le code) ou est-il possible de bidouiller le SaveCopyAs pour supprimer le code en même temps ?

Merci d'avance pour vos idées !

2 réponses

Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338
13 mai 2015 à 05:27
Bonjour
Ajouter au début de votre macro la ligne suivante
Application.DisplayAlerts=false
et conservez l'enregistrement en *.xlsm
cdlt
0
jasdrian Messages postés 4 Date d'inscription mardi 12 mai 2015 Statut Membre Dernière intervention 5 novembre 2015
18 mai 2015 à 10:01
C'est effectivement avec cette ligne (Application.DisplayAlerts=false) que j'ai "dégagé" la fenêtre demandant si je souhaitais garder ou pas les macros en enregistrant en xslx. Mais ça ne me gardait pas le classeur de calcul ouvert, il fallait systèmatiquement aller le chercher...
Cela dit (et un peu par hasard) j'ai réussi à faire à peu près ce que je voulais en créant un bouton directement sur la barre d'outil d'excel appelant la macro (qui elle-même ne fait qu'une chose : appeler le userform). En fait je voulais juste tester le tutoriel... mais comme ça permet de lancer mon userform depuis n'importe quel classeur, ça fait le job puisqu'une fois mes résultats enregistrés (sous un nouveau nom) en xlsx (sans la question récurrente sur les macros), je peux relancer le userform, sans aller ouvrir le classeur de calcul.
Seul hic, le bouton supplémentaire se retrouve du coup dans tous mes classeurs, y compris ce qui n'ont rien à voir avec les dépuillements de résultats. C'est pas vraiment gênant pour moi (puisque je sais d'où il sort), mais pour les autres utilisateurs..? Car je suppose que pour partager la macro-userform en réseau, il va falloir créer le bouton sur l'excel des autres postes de travail..?
Bref j'aurais préféré une solution plus indépendante (à l'intérieur d'un ficher) plutôt qu'une "modification de la façade" (le terme est un peu fort) d'excel.

Une autre solution ??
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 247
18 mai 2015 à 10:15
Bonjour,

Une autre solution ??
Créer un classeur et y copier tes feuilles ?
eric
0
jasdrian Messages postés 4 Date d'inscription mardi 12 mai 2015 Statut Membre Dernière intervention 5 novembre 2015
Modifié par jasdrian le 18/05/2015 à 13:21
ah ben oui ! tout simplement ! (je cherchais tellement la commande adaptée à mon cas, que j'en ai oublié les autres solutions)
Et puis ça peut-être l'occasion de présenter mes résultats de façon plus synthétique.
Parfait !

merci, Eriiic
0