Sauvegarder uen feuille d'un classeur [Résolu]

cco86260 166 Messages postés dimanche 22 janvier 2012Date d'inscription 30 juillet 2015 Dernière intervention - 16 déc. 2013 à 11:24 - Dernière réponse : cco86260 166 Messages postés dimanche 22 janvier 2012Date d'inscription 30 juillet 2015 Dernière intervention
- 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
--
Afficher la suite 

Votre réponse

31 réponses

ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 16 déc. 2013 à 11:29
0
Merci
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à .
Commenter la réponse de ucfoutu
cco86260 166 Messages postés dimanche 22 janvier 2012Date d'inscription 30 juillet 2015 Dernière intervention - 16 déc. 2013 à 11:37
0
Merci
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 ?

--
Commenter la réponse de cco86260
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 16 déc. 2013 à 11:44
0
Merci
Je ne comprends toujours pas !
L'enregistrer dans quoi et sous quel nom, cette feuille ?
Explique-toi TECHNIQUEMENT et avec PRECISION.
Commenter la réponse de ucfoutu
jordane45 22579 Messages postés mercredi 22 octobre 2003Date d'inscriptionContributeurStatut 25 septembre 2018 Dernière intervention - 16 déc. 2013 à 11:51
Commenter la réponse de jordane45
cco86260 166 Messages postés dimanche 22 janvier 2012Date d'inscription 30 juillet 2015 Dernière intervention - 16 déc. 2013 à 11:53
0
Merci
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 ?

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

--
Commenter la réponse de cco86260
cs_Le Pivert 5367 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 25 septembre 2018 Dernière intervention - 16 déc. 2013 à 14:08
0
Merci
bonjour,

Je pense que c'est cela que tu recherches:

http://support.microsoft.com/kb/129153/fr
cco86260 166 Messages postés dimanche 22 janvier 2012Date d'inscription 30 juillet 2015 Dernière intervention - 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
cco86260 166 Messages postés dimanche 22 janvier 2012Date d'inscription 30 juillet 2015 Dernière intervention - 16 déc. 2013 à 14:24
héhé ça marche pas... mais je cherche... ne me donnez pas de solution.
Commenter la réponse de cs_Le Pivert
cco86260 166 Messages postés dimanche 22 janvier 2012Date d'inscription 30 juillet 2015 Dernière intervention - 16 déc. 2013 à 14:51
0
Merci
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 ?

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

--
Commenter la réponse de cco86260
cco86260 166 Messages postés dimanche 22 janvier 2012Date d'inscription 30 juillet 2015 Dernière intervention - 16 déc. 2013 à 15:56
0
Merci
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...
--
jordane45 22579 Messages postés mercredi 22 octobre 2003Date d'inscriptionContributeurStatut 25 septembre 2018 Dernière intervention - 16 déc. 2013 à 16:04
Essayes:
Fichier = Environ("USERPROFILE") & "\Documents\POINTAGES\"
cco86260 166 Messages postés dimanche 22 janvier 2012Date d'inscription 30 juillet 2015 Dernière intervention - 16 déc. 2013 à 16:09
ça ne fonctionne pas...

Pourtant ils m'ont expliqué !!! mais y a rien à faire...grrrrr
Commenter la réponse de cco86260
cs_Le Pivert 5367 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 25 septembre 2018 Dernière intervention - 16 déc. 2013 à 16:16
0
Merci
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
jordane45 22579 Messages postés mercredi 22 octobre 2003Date d'inscriptionContributeurStatut 25 septembre 2018 Dernière intervention - 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\"

Commenter la réponse de cs_Le Pivert
jordane45 22579 Messages postés mercredi 22 octobre 2003Date d'inscriptionContributeurStatut 25 septembre 2018 Dernière intervention - 16 déc. 2013 à 16:28
0
Merci
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 )
cco86260 166 Messages postés dimanche 22 janvier 2012Date d'inscription 30 juillet 2015 Dernière intervention - 16 déc. 2013 à 19:25
Non, celui là n'est plus d'actualité
Commenter la réponse de jordane45
cco86260 166 Messages postés dimanche 22 janvier 2012Date d'inscription 30 juillet 2015 Dernière intervention - 16 déc. 2013 à 19:28
0
Merci
cs_le pivert : j'essaye de mettre le chemin comme ceci


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

cco86260 166 Messages postés dimanche 22 janvier 2012Date d'inscription 30 juillet 2015 Dernière intervention - 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
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 16 déc. 2013 à 20:35
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.
Commenter la réponse de cco86260
cs_Le Pivert 5367 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 25 septembre 2018 Dernière intervention - 16 déc. 2013 à 20:46
0
Merci
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
Commenter la réponse de cs_Le Pivert
cco86260 166 Messages postés dimanche 22 janvier 2012Date d'inscription 30 juillet 2015 Dernière intervention - 16 déc. 2013 à 23:35
0
Merci
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
Commenter la réponse de cco86260
cs_Le Pivert 5367 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 25 septembre 2018 Dernière intervention - 17 déc. 2013 à 10:40
0
Merci
--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.
cco86260 166 Messages postés dimanche 22 janvier 2012Date d'inscription 30 juillet 2015 Dernière intervention - 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
Commenter la réponse de cs_Le Pivert
jordane45 22579 Messages postés mercredi 22 octobre 2003Date d'inscriptionContributeurStatut 25 septembre 2018 Dernière intervention - 17 déc. 2013 à 10:50
0
Merci

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


Commenter la réponse de jordane45
cs_Le Pivert 5367 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 25 septembre 2018 Dernière intervention - 17 déc. 2013 à 11:14
0
Merci
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
Commenter la réponse de cs_Le Pivert
cco86260 166 Messages postés dimanche 22 janvier 2012Date d'inscription 30 juillet 2015 Dernière intervention - 17 déc. 2013 à 13:06
0
Merci
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

--
jordane45 22579 Messages postés mercredi 22 octobre 2003Date d'inscriptionContributeurStatut 25 septembre 2018 Dernière intervention - 17 déc. 2013 à 13:14
Lotus Notes ? Oui.
Mais en effet, on verra ça dans ton prochain POST. ^^
cco86260 166 Messages postés dimanche 22 janvier 2012Date d'inscription 30 juillet 2015 Dernière intervention - 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
Commenter la réponse de cco86260

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.