Code VBA pour empêcher utilisateur de supprimer une ligne
Bonsoir à tous,
des heures que je cherche et personne n'a visiblement eu besoin de cela.
J'ai écris un code dans thisworkbook qui empêche de supprimer une ligne. Ca je l'ai fait, ça marche en mettant count>10, car je n'ai pas réussi à trouver comment dire que c'est une ligne dont je veux empêcher la suppression. Là déjà, si quelqu'un peut m'aider, c'est bien.
Ensuite je voudrais que cela soit quand même possible si c'est une macro qui demande la suppression de ligne. Un code qui dit : si "demandé par macro" then exit sub else "empêche le suppression" etc...
Je veux donc forcer l'utilisateur à utiliser mes procédures dans mes userform, plutôt que supprimer n'importe quoi sans les vérifications que j'ai incluses dans mes userform.
Le code ci-dessous fonctionne, sauf si une procédure du userform est lancée et qui bug. Ensuite, le code dans thisworkbook ne fonctionne plus, dans tous les cas, il faut ré-ouvrir le classeur pour que ça re-fonctionne. Là aussi j'aimerai en savoir plus.
Merci à tous.
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal target As Range)
If target.Count > 10 Then
With Application
.EnableEvents = False
.Undo
.EnableEvents = True
End With
MsgBox "Ne jamais supprimer de ligne sans les formulaires !"
End If
End Sub |
A votre bon coeur.