Empecher la suupression des cellules avec formules

Le
Patrednef
Bonjour vous tous,

Je souhaite mettre dans le module code d'une feuille un sub qui
empecherait la suppression de certaines cellules dans la feuille
active:

Certaines cellules masques font des oprations et l'utilisateur peut
slectionner une partie de ligne et appuyer sur Suppr pour effacer les
cellules masques !!!! l'erreur est humaine

dans le : Private Sub Worksheet_SelectionChange(ByVal Target As Range)

1/ Comment dfinir que si dans la slction que l'on veut supprimer o=
n
a des cellules avec formules, alors msgbox et message d'avertissement
l'utilisateur

Pour les cellules avec formules, j'ai l'habitude d'utiliser le
Cells.SpecialCells(xlCellTypeFormulas) mais l je ne vois pas

2/ Vu que cela ne concerne que la possibilit de supprimer, ne faut
t'il pas tester avant l'appui de la touche Suppr ? ou cela est il trop
lourd en lignes de code ?

Le but tant que l'utilisateur slctionne une plage ou il n'y a
aucune formule afin de ne pas effacer involontairement le travail de
ses petits camarades

Je vous remercie par avance de vos indications et ne manquerai pas de
donner suite vos suggestions toujours plus pertinentes (que les
notres !!!!! NDLR)

Bonne journe nos sympatiques contributeurs

PatRednef
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
FdeCourt
Le #21465841
Salut,

Avec ce petit bout de code à mettre dans le code de la feuille
concernée :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim active As Boolean
For Each c In Selection
If c.HasFormula = True Then
Application.OnKey "{suppr}", ""
Application.OnKey "{BackSpace}", ""
active = False
Exit For
Else
Application.OnKey "{suppr}"
Application.OnKey "{BackSpace}"
active = True
End If
Next

CommandBars(1).Controls("Edition").Controls("&Supprimer...").Enabled =
active
CommandBars("cell").Controls("&Supprimer...").Enabled = active
End Sub

Cordialement,

F.

PS : petite question, comment appeler un controle à partir de son ID
plutot que de son nom, afin d'éviter les problèmes avec les
différentes version d'Excel ?
Merci
Daniel.C
Le #21465831
Bonjour.
Pourquoi ne pas verrouiller les cellules concernées et protéger la
feuille ?
Cordialement.
Daniel

Bonjour à vous tous,

Je souhaite mettre dans le module code d'une feuille un sub qui
empecherait la suppression de certaines cellules dans la feuille
active:

Certaines cellules masquèes font des opérations et l'utilisateur peut
sélectionner une partie de ligne et appuyer sur Suppr pour effacer les
cellules masquées !!!! l'erreur est humaine

dans le : Private Sub Worksheet_SelectionChange(ByVal Target As Range)

1/ Comment définir que si dans la séléction que l'on veut supprimer on
a des cellules avec formules, alors msgbox et message d'avertissement
à l'utilisateur

Pour les cellules avec formules, j'ai l'habitude d'utiliser le
Cells.SpecialCells(xlCellTypeFormulas) mais là je ne vois pas ...

2/ Vu que cela ne concerne que la possibilité de supprimer, ne faut
t'il pas tester avant l'appui de la touche Suppr ? ou cela est il trop
lourd en lignes de code ?

Le but étant que l'utilisateur séléctionne une plage ou il n'y a
aucune formule afin de ne pas effacer involontairement le travail de
ses petits camarades

Je vous remercie par avance de vos indications et ne manquerai pas de
donner suite à vos suggestions toujours plus pertinentes (que les
notres !!!!! NDLR)

Bonne journée à nos sympatiques contributeurs

PatRednef
Patrednef
Le #21465961
Bonjour Daniel,

Entre temps cette idée est venue, merci de me la suggerer

On pourrait faire:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With ActiveSheet
.Unprotect Password:=""
.Cells.Locked = False
On Error Resume Next
.Cells.SpecialCells(xlCellTypeFormulas).Locked = True
On Error GoTo 0
.Protect Password:=""
End With

End Sub


Peut on faire un "chouya" plus court ou qu'en pensez vous ?

PatRednef
Publicité
Poster une réponse
Anonyme