rufo Pas me confondre avec Lycos! | Le verrouillage de l'enregistrer sous doit se faire sur l'événement Open du classeur avec une boucle sur les onglets :
Code :
'A la fermeture du fichier, on verrouille les feuilles de données
For i = 1 To Worksheets.Count
Worksheets(i).Protect Contents:=True, UserInterfaceOnly:=True
Next
|
Pour l'enregistrer sous, ta macro doit :
1) ouvrir une boîte de dialogue qui va permettre de saisir le nouveau nom du fichier et son emplacement
2) créer un nouveau classeur vierge
3) déverrouiller la protection sur les onglets à copier qui a été mise en place à l'ouverture du classeur (mettre False à la place de True pour UserInterfaceOnly et Contents)
4) copier dedans le contenu des onglets que tu veux
5) enregistrer ce nouveau classeur avec le nom saisi par l'utilisateur en 1)
6) dans le classeur ayant servi de source, reverrouiller les onglets qui ont été copiés
Qq instructions qui te seront utiles :
Code :
'On active le fichier de référence
Workbooks(sNomFichierReference).Activate
'On copie le contenu des feuilles de données dans le fichier de référence, au même endroit
For i = 1 To iNumFeuilles
'On définit la plage de cellules à copier pour chaque feuille
Workbooks(sNomFichierCourant).Worksheets(i).Range(sColonneMin & iLigneMin & ":" & sColonneMax & iLigneMax).Copy Destination:=Workbooks(sNomFichierReference).Worksheets(i).Range(sColonneMin & iLigneMin & ":" & sColonneMax & iLigneMax)
Next
'La copie est terminée, on sauve et ferme le fichier de référence
Workbooks(sNomFichierReference).Save
Workbooks(sNomFichierReference).Close
|
---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
|