Interdire avec vba la suppression d'une feuille?

  • Initiateur de la discussion Initiateur de la discussion Didou
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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+
 
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
 
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
 
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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
645
Réponses
13
Affichages
2 K
Retour