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 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 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 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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
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