Interdire avec vba la suppression d'une feuille?

D

Didou

Guest
Bonsoir le forum,
Est-il possible d'interdire ou au moins lancer un message personnalisé (Avec vba) quand un utilisateur supprime une feuille.
J'ai déja laissé un message dans ce sens, je m'exuse d'insister.
J'ai essayé de modifier la macro de l'enregistreur( j'ai supprimé une feuille, puis avec la macro obtenue, mon idée était d'insérer du code sur les feuilles à ne pas enlever , un bloc if- end if ,mais il n'y a pas de propriété Delete dans Worksheet)
Merci par avance pour vos suggestions.

Didou
A+
 
S

schmail

Guest
Bonsoir Didou et le forum

A défaut d'avoir trouvé une réponse à ton pb sur XLD, en voici une de Pascal trouvée sur MPFE pour le même pb.


...Tu ne pourras pas intercepter la suppression de feuilles.
En revanche tu peux réaffecter une macro à la commande supprimer du menu
contextuel de la feuille.
Exemple ici :
1°) Dans un module standard :
Sub ModifierSupprimerFeuille()
Dim c As CommandBarControl
For Each c In Application.CommandBars.FindControls(ID:=847)
c.OnAction = "SupFeuil"
Next c
End Sub
Sub SupFeuil()
Select Case MsgBox("Attention tu vas virer une feuille !", vbc + vbYesNo,
"Tu es sûr ?")
Case vbYes
ActiveSheet.Delete
Case vbNo
Exit Sub
End Select
End Sub
Sub RetablirSupprimerFeuille()
Dim c As CommandBarControl
For Each c In Application.CommandBars.FindControls(ID:=847)
c.OnAction = ""
Next c
End Sub
2°) Dans le code ThisWorkbook
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
RetablirSupprimerFeuille
End Sub

Private Sub Workbook_Open()
ModifierSupprimerFeuille
End Sub
_____________________________________________

Voilà une solution qui fonctionne....mais qui me pose un pb....Ou trouver les étiquettes des commandes comme ID:=847 pour supprimer une feuille ???

@ suivre et bonne soirée
 
R

Roland

Guest
Salut Didou


Pourquoi n'utilises-tu pas la protection classeur

ActiveWorkbook.Protect Password:="219219", Structure:=True, Windows:=True

et la déprotection
ActiveWorkbook.Unprotect Password:="219219"


Je pense que cela fonctionne bien

A+ Roland
 
S

schmail

Guest
Bonsoir Roland et Didou

j'avais raté le premier post <http://www.excel-downloads.com/html/French/forum/messages/1_63981_63981.htm> ou didou désirait également empècher le "renommage des feuilles"

La solution de Roland semble en effet beaucoup plus simple

@+ et bonne nuit
 
D

Didou

Guest
Bonjour et merci Shmail et Roland pour vos réponses.
Je vais essayer la solution de shmail. je suis débutant en vba et c'est justement la prog en vba qui me passionne. Je fréquente ce forum depuis environ 3 mois et j'avoue qu'il est supérieur en qualité et diversité à tous les bouquins que j'ai pu acheter. Ceci grâce à des personnes comme vous qui prenait le temps d'éplucher les problèmes de chacun. Je me connecte en principe au moins une fois par jour pour voir les nouveaux posts avec les solutions proposées.
Encore merci à tous et toutes, à bientôt certainement.
Didou
 

Discussions similaires

Statistiques des forums

Discussions
312 668
Messages
2 090 739
Membres
104 643
dernier inscrit
adriano22