Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 Supprimer DataBodyRange Feuilles protégées

cathodique

XLDnaute Barbatruc
Bonjour,

je n'arrive pas à comprendre la raison pour laquelle les lignes de code ci-dessous fonctionnent pour une feuille et pas pour l'autre.
VB:
Private Sub Worksheet_Deactivate()
   With Feuil2 'ne fonctionne pas'
      .Unprotect 123
      If Not .ListObjects(1).DataBodyRange Is Nothing Then .ListObjects(1).DataBodyRange.Delete
      .Protect 123
   End With
End Sub

Private Sub Worksheet_Deactivate()
   With Feuil3 'fonctionne'
      .Unprotect 123
      If Not .ListObjects(1).DataBodyRange Is Nothing Then .ListObjects(1).DataBodyRange.Delete
      .Protect 123
   End With
End Sub
Merci de m'indiquer mon erreur.

Bon dimanche
 

Pièces jointes

  • Désactivate.xlsm
    17.6 KB · Affichages: 4

dysorthographie

XLDnaute Accro
Bonjour,
Tu as des données en feuille 2 et pas en feuille 3
Code:
If .ListObjects.Count > 0 Then
   If Not .ListObjects(1).DataBodyRange Is Nothing Then .ListObjects(1).DataBodyRange.Delete
End If
Il faut vérifier si il y a quelques chose à supprimer.
 

cathodique

XLDnaute Barbatruc
Bonjour,

Quand on active Feuil2 rien ne se passe, c'est normal.

Quand on quitte cette feuille c'est alors que A2:B2 est supprimé.

A+
Bonjour @job75 ,

Merci, ça m'a complétement dérouté ce matin. Je n'ai pas compris pourquoi ça fonctionner pour une feuille et pas pour l'autre. Le code proposé par @dysorthographie fonctionne.

Bon dimanche
 
Dernière édition:

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…