Comment empecher suppression worksheet ?

Bonjour le forum,

Tout est dans le titre. J'apporte cependant un précision : l'idée est bien d'empêcher la supression de la feuille. Je n'arrive à trouver sur internet que des codes qui permettent d'annuler l'enregistrement si une des feuilles protégées a été supprimée.

Merci d'avance,

Batoine

Salut,

Sinon tu peux verrouiller la structure du classeur ?

Sinon avec une macro tu peux vérifier que les feuilles que tu cherche à conserver son présente au moment de fermer/sauvegarder le classeur.

Sinon si tu es sous Excel 2013

Private Sub Worksheet_BeforeDelete()

Dim MyName As String

‘Capture the original worksheet name
MyName = ThisWorkbook.ActiveSheet.Name

‘Rename the worksheet
ThisWorkbook.ActiveSheet.Name = Left(MyName, 30) + “#”

‘Create a copy of the worksheet
ThisWorkbook.ActiveSheet.Copy _
After:=Sheets(ThisWorkbook.ActiveSheet.Index)

‘Name the copy to the original name
ThisWorkbook.ActiveSheet.Name = MyName

End Sub

Bonjour Kant1,

Merci pour ta réponse si rapide !

Qu'entends-tu par verrouiller la structure du classeur ? J'ai déja verrouiller l'ensemble de mes feuilles avec un mots de passe, et empêcher qu'on les renomme. En revanche je peux toujours supprimer les feuilles (même protégées) en faisant un clique droit sur les onglets des feuilles en bas d'Excel...

Ta deuxième solution m'intéresse que moyennement car au cas où les futurs utilisateurs aient effectuées de nombreuses modifications et que par mégarde ils effacent une feuille ; ton script empêchera l'enregistrement. Ils seront donc obligés de fermer le classeur sans enregistrer et toutes leurs modifications seront perdues.

Dans l'attente de te relire,

Batoine

EDIT : En relisant ton message je m'aperçois que ta dernière option semble répondre à mes attentes. En revanche j'ai un soucis avec la ligne de code :

ThisWorkbook.ActiveSheet.Name = Left(MyName, 30) + “#”

La syntaxe de la frappe n'est pas bonne, les caractères sont écrits en rouge. Peux-tu m'expliquer l'intérêt de l'utilisation de la fonction left ?

Salut,

Quand je parlais de verrouiller je parlais du Classeur en entier et pas de chaque feuille indépendamment. Ca permet d'éviter de pouvoir supprimer les feuilles.

Sinon le code que j'ai mis entre balise fait une copie de ta feuille, ce qui fait que même si qqn supprime un feuille elle est copiée avant et donc pas supprimer. Par contre il faut mettre le code dans chaque feuille et que l'utilisateur active les macros.

RE,

Ok, je n'avais pas bien ce que verrouiller la structure d'un classeur signifiait. Je vais alors opter pour cette solution qui me va à merveille !

Pour ceux qui liront ce fil de discussion voici la marche à suivre sous excel 2013 : https://support.office.com/fr-ch/article/Prot%C3%A9ger-les-%C3%A9l%C3%A9ments-d-une-feuille-de-calcul-ou-d-un-classeur-%C3%A0-l-aide-d-un-mot-de-passe-dbf706e0-ba22-4a08-84d8-552db16eef11?ui=fr-FR&rs=fr-CH&ad=CH

Merci Kant1 pour ton aide !

Batoine

Rechercher des sujets similaires à "comment empecher suppression worksheet"