Sauvegarder uen feuille d'un classeur

Résolu
cco86260
Messages postés
166
Date d'inscription
dimanche 22 janvier 2012
Statut
Membre
Dernière intervention
30 juillet 2015
- Modifié par cco86260 le 16/12/2013 à 11:25
cco86260
Messages postés
166
Date d'inscription
dimanche 22 janvier 2012
Statut
Membre
Dernière intervention
30 juillet 2015
- 17 déc. 2013 à 13:19
Bonjour à tous,

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

Et pour la sauvegarde j'ai pensez à ceci :

ActiveSheets("MATRICE").SaveAs

Il en manque bien sure...

C'est pour cela que je vous fais appel.

Merci à tous
--

20 réponses

ucfoutu
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
236
16 déc. 2013 à 11:29
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à .
0
cco86260
Messages postés
166
Date d'inscription
dimanche 22 janvier 2012
Statut
Membre
Dernière intervention
30 juillet 2015
2
16 déc. 2013 à 11:37
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.

Qu'est ce que tu ne comprend pas ?

--
0
ucfoutu
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
236
16 déc. 2013 à 11:44
Je ne comprends toujours pas !
L'enregistrer dans quoi et sous quel nom, cette feuille ?
Explique-toi TECHNIQUEMENT et avec PRECISION.
0
jordane45
Messages postés
35416
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 mai 2022
356
16 déc. 2013 à 11:51
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cco86260
Messages postés
166
Date d'inscription
dimanche 22 janvier 2012
Statut
Membre
Dernière intervention
30 juillet 2015
2
16 déc. 2013 à 11:53
Donc,

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.

Est ce bon comme ça ?

--
0
cco86260
Messages postés
166
Date d'inscription
dimanche 22 janvier 2012
Statut
Membre
Dernière intervention
30 juillet 2015
2
Modifié par cco86260 le 16/12/2013 à 13:24
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

J'espère que j'ai été assez explicite.

Merci

--
0
cs_Le Pivert
Messages postés
7743
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
9 mai 2022
129
16 déc. 2013 à 14:08
bonjour,

Je pense que c'est cela que tu recherches:

http://support.microsoft.com/kb/129153/fr
0
cco86260
Messages postés
166
Date d'inscription
dimanche 22 janvier 2012
Statut
Membre
Dernière intervention
30 juillet 2015
2
16 déc. 2013 à 14:19
ça y ressemble beaucoup mais peut-on l'adapter pour une feuille (rhoooo... je suis pénible avec ma feuille)

Petit code d'exemple par mes soins (en parti)

Sub Auto_Close()
If ThisWorksheets("MATRICE").Saved = False Then
ThisWorksheets("MATRICE").Save
End If
End Sub
0
cco86260
Messages postés
166
Date d'inscription
dimanche 22 janvier 2012
Statut
Membre
Dernière intervention
30 juillet 2015
2
16 déc. 2013 à 14:24
héhé ça marche pas... mais je cherche... ne me donnez pas de solution.
0
cco86260
Messages postés
166
Date d'inscription
dimanche 22 janvier 2012
Statut
Membre
Dernière intervention
30 juillet 2015
2
16 déc. 2013 à 14:51
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...

C'est pas mal ça ?

--
0
cs_Le Pivert
Messages postés
7743
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
9 mai 2022
129
16 déc. 2013 à 14:59
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
0
cco86260
Messages postés
166
Date d'inscription
dimanche 22 janvier 2012
Statut
Membre
Dernière intervention
30 juillet 2015
2
16 déc. 2013 à 15:08
Yes, ça se tient, je cherche mon code et reviens... mais pas de solutions, il faut que je cherche... c'est mieux. Merci

--
0
cco86260
Messages postés
166
Date d'inscription
dimanche 22 janvier 2012
Statut
Membre
Dernière intervention
30 juillet 2015
2
16 déc. 2013 à 15:56
Donc voici un truc qui fonctionne,

Option Explicit

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

End With
Dim Fichier As String

Fichier = Environ("USERPROFILE") & "Documents\POINTAGES\"

Application.DisplayAlerts = False
' Ta sauvegarde
ThisWorkbook.SaveAs "RapHebdo"
Application.DisplayAlerts = True
Application.Quit

End Sub


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".

C'est déjà un début...
--
0
jordane45
Messages postés
35416
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 mai 2022
356
16 déc. 2013 à 16:04
Essayes:
Fichier = Environ("USERPROFILE") & "\Documents\POINTAGES\"
0
cco86260
Messages postés
166
Date d'inscription
dimanche 22 janvier 2012
Statut
Membre
Dernière intervention
30 juillet 2015
2
16 déc. 2013 à 16:09
ça ne fonctionne pas...

Pourtant ils m'ont expliqué !!! mais y a rien à faire...grrrrr
0
cs_Le Pivert
Messages postés
7743
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
9 mai 2022
129
16 déc. 2013 à 16:16
Vu que je connais le problème en mettant:

Fichier = Environ("USERPROFILE") & "\Documents\POINTAGES\"


cela ne sera valable que pour W7 et 8, ça ne passera pas avec XP qui est

Fichier = Environ("USERPROFILE") & "\Mes documents\POINTAGES\"

il faut que tu te serves des chemins enregistrés dans tes cellules
0
jordane45
Messages postés
35416
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 mai 2022
356
16 déc. 2013 à 16:24
Ou sinon, je pense que cela doit marcher sur tous les Windows ( A TESTER bien sur) :

Fichier = Application.DefaultFilePath & "\POINTAGES\"

0
jordane45
Messages postés
35416
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 mai 2022
356
16 déc. 2013 à 16:28
Par contre, il semble que tu aborde déjà ce point dans une autre discussion....????
http://codes-sources.commentcamarche.net/forum/affich-10014466-determiner-le-chemin-vers-mes-documents-suivant-os

Attention à ne pas ouvrir de discussions en DOUBLE. ( Merci )
0
cco86260
Messages postés
166
Date d'inscription
dimanche 22 janvier 2012
Statut
Membre
Dernière intervention
30 juillet 2015
2
16 déc. 2013 à 19:25
Non, celui là n'est plus d'actualité
0
cco86260
Messages postés
166
Date d'inscription
dimanche 22 janvier 2012
Statut
Membre
Dernière intervention
30 juillet 2015
2
16 déc. 2013 à 19:28
cs_le pivert : j'essaye de mettre le chemin comme ceci


Fichier = ThisWorkbook.Sheets("chemin").Range("A1").Value

0
cco86260
Messages postés
166
Date d'inscription
dimanche 22 janvier 2012
Statut
Membre
Dernière intervention
30 juillet 2015
2
16 déc. 2013 à 19:30
Si c'est le cas ... ne met pas la solution... dis moi juste qu'il y a des erreurs..

Merci
0
ucfoutu
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
236
Modifié par ucfoutu le 16/12/2013 à 20:36
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.
0
cs_Le Pivert
Messages postés
7743
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
9 mai 2022
129
16 déc. 2013 à 20:46
As-tu mis

MsgBox Fichier

Le résultat te satisfait-il?

dans un précedent envoi tu as mis cela:


Dim Fichier As String

Fichier = Environ("USERPROFILE") & "Documents\POINTAGES\"

Application.DisplayAlerts = False
' Ta sauvegarde
ThisWorkbook.SaveAs "RapHebdo"
Application.DisplayAlerts = True
Application.Quit

dis-moi a quoi te sert la variable Fichier?

Il faut que tu réfléchisses un peu plus

Bon courage a demain
0
cco86260
Messages postés
166
Date d'inscription
dimanche 22 janvier 2012
Statut
Membre
Dernière intervention
30 juillet 2015
2
16 déc. 2013 à 23:35
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...

Donc pour répondre

--dis-moi a quoi te sert la variable Fichier?

A rien.

Mais merci de ces remarques...

Bonne soirée à toi aussi
0
cs_Le Pivert
Messages postés
7743
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
9 mai 2022
129
17 déc. 2013 à 10:40
--dis-moi a quoi te sert la variable Fichier?

A rien.


FAUX

Pour l'enregistrement d'un fichier il faut:

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.
0
cco86260
Messages postés
166
Date d'inscription
dimanche 22 janvier 2012
Statut
Membre
Dernière intervention
30 juillet 2015
2
17 déc. 2013 à 12:03
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

End With

Application.DisplayAlerts = False
' Ta sauvegarde
ThisWorkbook.SaveAs "RapHebdo"
Application.DisplayAlerts = True
Application.Quit

End Sub


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.

Merci encore
0
jordane45
Messages postés
35416
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 mai 2022
356
17 déc. 2013 à 10:50

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..


0
cs_Le Pivert
Messages postés
7743
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
9 mai 2022
129
17 déc. 2013 à 11:14
C'est justement cela, ce classeur crée le dossier "Pointage", mais n'est pas dans ce dossier.

merci Jordane45, je ne connaissais pas:

Application.DefaultFilePath

c'est bon à savoir
0
cco86260
Messages postés
166
Date d'inscription
dimanche 22 janvier 2012
Statut
Membre
Dernière intervention
30 juillet 2015
2
17 déc. 2013 à 13:06
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....

Bonne journée à tous

--
0
jordane45
Messages postés
35416
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 mai 2022
356
17 déc. 2013 à 13:14
Lotus Notes ? Oui.
Mais en effet, on verra ça dans ton prochain POST. ^^
0
cco86260
Messages postés
166
Date d'inscription
dimanche 22 janvier 2012
Statut
Membre
Dernière intervention
30 juillet 2015
2
17 déc. 2013 à 13:19
cool ;)

J'ai pris mon papier crayon pour ne pas poster n'importe quoi, tout ce fera étape par étape
0