Donc voilà, je sais que la réponse à déjà dû être donnée, mais je ne l'ai pas trouvée, mais c'est assez spécifique, alors je vais tacher d'être simple et explicite... aïe ;)
J'ai un classeur nommé "RapHebdo", dans ce classeur il y a une feuille nommée "MATRICE", cette feuille contient absolument toutes les données servant à la création des autres feuille.
Je voudrais donc savoir comment enregistrer uniquement cette feuille "MATRICE" à son emplacement d'origine ?
A savoir que s'il le faut, elle peut être écrasée.
J'ai déja un bout de code me permettant de valider la question de windows me demandant de l'écraser... que voici :
Application.DisplayAlerts = False ' Ta sauvegarde Application.DisplayAlerts = True
Bonjour,
Je ne comprends pas :
"Je voudrais donc savoir comment enregistrer uniquement cette feuille "MATRICE" à son emplacement d'origine ? "
Explique très clairement ce que tu veux dire par là .
Bien en faite, le but est d'enregistrer uniquement cette feuille.Peut importe si d'autre feuilles sont créées, elle ne sont pas garder de toute manière (ça c'est ma petite sécurité qui fait que certain chef ne pourrons plus modifier les pointages dans notre dos)... bref... blague à part
Quand je précise "à son emplacement d'origine", c'est sans importance.
mon classeur de base s'appel RapHebdo, la feuille principale de ce classeur est "MATRICE", dans cette feuille sont stockées toutes les infos, c'est à dire : le nom des personne, les sites, les semaines.
elle est donc très importante. donc ce que je voudrais c'est que lorsque je clique sur mon bouton "Fermer le classeur", il ne m'enregistre que cette feuille "MATRICE" en gardant le nom de fichier "RapHebdo" et dans l'emplacement ou elle se trouve.
Bon, je tâche d'expliquer le fonctionnement de mon classeur en partie, puis j'en viens à ma question de départ, je pense que comme ça se sera plus compréhensible.
Donc :
quand j'ouvre mon classeur "RapHebdo", une feuille nommée "MATRICE" est dupliquée et nommé "VIERGE", cette feuille "MATRICE" est par la suite cachée.
Sur cette feuille "MATRICE" est stockée :
La liste des noms : je peux, via un USF en ajouter ou en supprimer
La liste des sites : idem
et autre liste
de la feuille "VIERGE" sont réalisés les rapport.
Ex: je choisi le nom de l'intervenant, le numero de la semaine puis, via une barre d'outil, je clique sur le bouton "pointage suivant". Là, il me nomme la feuille en cours en fonction de la cellule "NOM" puis me créer une nouvelle feuille "VIERGE" a partir de la "MATRICE"
Toute ces rapport qui ont été créés ne doivent en aucun cas être sauvegardé. c'est pour cela qu'il sont converti en PDF.
Par contre, la feuille "MATRICE" qui contient les noms et sites que je peux modifier c'est elle qui donne départ à tout le reste, et, si j'ajoute un nom ou un site et que je ferme sans enregistrer, vous le savez, ba je recommence la manip a la prochaine ouverture.
S'il y a d'autre moyens n'hésitez pas, je veux juste qu'il soit pris en compte que rien ne doit être sauvegarder sauf cette feuille "MATRICE", avec prise en charge des macro
Donc, après quelques réflexions (bonne je l'espère) je pense que la méthode serait :
que lorsque je clique sur "Enregistrer et fermer", il me supprime tous les rapport qui ont été fait sauf la "MATRICE" dans un nouveau classeur prenant en charge les macros. Et au moment ou windows me dit "ce fichier est déja existant, voulez vous l'écraser ?" il faut répondre "oui" automatiquement...
Le plus simple à ce moment là c'est de supprimer tes feuilles après l'enregistrement en pdf . Dans le bouton qui crée tes pdf tu mets la suppression de la feuille en cours. basta
Sub es() Dim ws As Worksheet Sheets("MATRICE").Visible = True With Application .DisplayAlerts = False .ScreenUpdating = False For Each ws In Worksheets If ws.name <> "MATRICE" Then ws.Delete Next ws .DisplayAlerts = True .ScreenUpdating = True
Lorsque que je clique sur le bouton "enregistrer et fermer", il me supprime toutes les feuilles SAUF la "MATRICE" et me la nomme Raphebdo. Il ne me previent même plus pour l'écraser s'il est déjà existant...
Mais un soucis reste, toujours sur une incompréhension de ma part... la destination de ce fichier...
Fichier = ....
J'ai du déconner à ce niveau car il ne me le met pas dans mon dossier "POINTAGES".
Pas d'erreur, mais uniquement si :
- existe dans ton classeur actif une feuille nommée "chemin"
- en cellule A1 de la dite feuille, on y trouve une chaîne de caractères représentant un chemin complet.
Oui je me suis aperçu de mon erreur, car en faite pour qu'il sauvegarde au bon endroit (donc dans le dossier pointage), il fallait juste mettre ce classeur dans le dossier, pareil pour les autres PC...
chemin du dossier d'enregistrement, nom du fichier et son extension. Je ne t'en dit pas plus, tu as tous les éléments pour l'enregistrement de ton classeur.
Regarde le site que je t'ai indiqué tu as toutes les données pour enregistrer des 2 manières: d'abord enregistrer ton classeur sous le nom "RapHebdo" et ensuite l'enregistrer sans les modifications. Tu as les cartes en main.
C'est justement ce que j'ai suivi, quand je t'es mis la réponse "rien" c'est parce que j'avais plus simple du coup, j'ai mis le classeur dans le dossier pointage et le bouton "Enregistrer et fermer" contient ce code :
Sub es() Dim ws As Worksheet Sheets("MATRICE").Visible = True With Application .DisplayAlerts = False .ScreenUpdating = False For Each ws In Worksheets If ws.name <> "MATRICE" Then ws.Delete Next ws .DisplayAlerts = True .ScreenUpdating = True
Et ça fonctionne bien... mais je prend quand même note des remarques... il est vrai que réfléchir plus ne serais pas de trop...(dans mon cas), mais j'ai tendance à tout mélanger... enfin.
Pour cette partie là... c'est bon, je classe donc comme résolu.
en faite pour qu'il sauvegarde au bon endroit (donc dans le dossier pointage), il fallait juste mettre ce classeur dans le dossier
--dis-moi a quoi te sert la variable Fichier?
A rien.
FAUX
En fait, si on ne précise pas le répertoire où sauvegarder, il se place dans le même répertoire que le fichier "en cours".
Maintenant, il est clair que de scpécifier un chemin est préférable... dans le cas où un utilisateur ouvrirait ce classeur directement depuis un autre emplacement..
Je suis d'accord avec vous, mais vu que quand tout sera terminé, je leur enverrais comme ceci
POINTAGES.zip
Tout sera dedans à la décompression.
cs_Le pivert : la prochaine fois que je ferais des changements à la volé je tacherais d'en faire part, ça évitera les incompréhensions...euuhh.. je crois que j'ai déjà dis ça... ;)
Merci à tous...
Petite question : vous connaissez Lotus Note ? c'est la prochaine étape donc prochaine étape = nouveau post....