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

Interdire l'utilisation des touches suppr et del dans une cellule

jujulebiker85

XLDnaute Nouveau
Re moi j'en demande beaucoup je sais mais ya que vous qui puissiez m'aidez:

est-il possible d'nterdire l'utilisation des touches suppr et del dans une cellule avec dévérouillage mot de passe?

merci je débute dans le vba...
 

jujulebiker85

XLDnaute Nouveau
Re : Interdire l'utilisation des touches suppr et del dans une cellule


ça ne mache pas je peux toujours supprimer le contenu des cellules en en séléctionnant plusieurs
 

Staple1600

XLDnaute Barbatruc
Re : Interdire l'utilisation des touches suppr et del dans une cellule

Re


Je viens de voir que ce que je proposais était déjà implémenter par BrunoM45 (que je salue au passage)
Code:
If Intersect([I4:I300,K4:K300,U4:U300], Target) Is Nothing Or Target.Count > 1 Then Exit Sub
 

Staple1600

XLDnaute Barbatruc
Re : Interdire l'utilisation des touches suppr et del dans une cellule

Re

ATTENTION DANGER
Essayes de voir ce que tu peux faire en suivant cette piste
Code:
Sub DesactiveSUPPR()
Application.OnKey "{DEL}", ""
End Sub
Code:
Sub ActiveSUPPR()
Application.OnKey "{DEL}"
End Sub
 

Staple1600

XLDnaute Barbatruc
Re : Interdire l'utilisation des touches suppr et del dans une cellule

Re

essayes ces macros sur un classeur vierge
Lances la macro qui désactives la touche SUPPR
Saisis une valeur dans une cellule puis tape ENTER
sélectionnes cette cellule puis appuie sur SUPPR
Normalement la valeur n'est pas effacée.

PS: Si tu débutes en VBA, cette méthode risque d'être problématique.
Cette macro n'était qu'une piste à suivre.
Pas une solution clé en mains.
 

jujulebiker85

XLDnaute Nouveau
Re : Interdire l'utilisation des touches suppr et del dans une cellule

enfaite ca marche bien pour empecher la suppression d'une cellule mais si avec la souris j'en séléctionne plusieurs la du coup j'arrive à les supprimer...
 

job75

XLDnaute Barbatruc
Re : Interdire l'utilisation des touches suppr et del dans une cellule

Bonjour le fil, le forum,

Il me semble qu'on tourne un peu en rond...

Voici une solution qui empêche l'effacement des nombres sur 3 plages.

Les valeurs sont mémorisées dans les noms définis Zone1 Zone2 Zone3.

Les macros dans le code de la feuille :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Memorise Target, [I4:I300], "Zone1"
Memorise Target, [K4:K300], "Zone2"
Memorise Target, [U4:U300], "Zone3"
End Sub

Sub Memorise(Target As Range, plage As Range, zone$)
If Intersect(Target, plage) Is Nothing Then Exit Sub
Dim i, cel As Range
Application.EnableEvents = False
For i = 1 To plage.Count
  Set cel = plage.Cells(i)
  If Not (Intersect(cel, Target) Is Nothing Or IsNumeric(cel.Formula)) _
    Then cel = Application.Index(Evaluate(zone), i)
Next
ThisWorkbook.Names.Add zone, plage.Formula 'mémorise
ThisWorkbook.Names(zone).Visible = False 'masquage facultatif
Application.EnableEvents = True
End Sub
Pour définir les 3 noms au début, dans ThisWorkbook :

Code:
Private Sub Workbook_Open()
Me.Names.Add "Zone1", [I4:I300].Formula
Me.Names.Add "Zone2", [K4:K300].Formula
Me.Names.Add "Zone3", [U4:U300].Formula
'---masquage facultatif---
Me.Names("Zone1").Visible = False
Me.Names("Zone2").Visible = False
Me.Names("Zone3").Visible = False
'---évite le message à la fermeture---
Me.Saved = True
End Sub
Fichier joint.

A+
 

Pièces jointes

  • Historiquel(1).xls
    55 KB · Affichages: 61

job75

XLDnaute Barbatruc
Re : Interdire l'utilisation des touches suppr et del dans une cellule

Re,

J'ai intégré le code de votre macro Worksheet_Change (post #7) dans la mienne.

Sans oublier de déclarer la variable valsaisie.

Et j'ai modifié légèrement le test de la macro Memorise :

Code:
If Not (Intersect(cel, Target) Is Nothing Or IsNumeric(Evaluate(cel.Formula))) _
Fichier (2).

A+
 

Pièces jointes

  • Historiquel(2).xls
    57 KB · Affichages: 59

jujulebiker85

XLDnaute Nouveau
Re : Interdire l'utilisation des touches suppr et del dans une cellule

impec j'ai réussi à l'intégrer à ma feuille dure dure lol peux tu me remettre les messages "text box" comme quoi il faut entrer une valeur numérique et ne pas supprimer
 

job75

XLDnaute Barbatruc
Re : Interdire l'utilisation des touches suppr et del dans une cellule

Re,

Je modifie aussi le code de votre macro :

Code:
If Not Intersect([I4:I300,K4:K300,U4:U300], Target) Is Nothing And Target.Count = 1 Then
  Dim valsaisie
  On Error Resume Next
  Application.EnableEvents = False
  valsaisie = Target
  Application.Undo
  Target = IIf(Target.HasFormula, Target.Formula & "+", "=") & valsaisie
  Application.EnableEvents = True
End If
Votre test If Target <> "" Then beuguait si l'on entrait une valeur d'erreur...

Fichier (3).

A+
 

Pièces jointes

  • Historiquel(3).xls
    58 KB · Affichages: 39

jujulebiker85

XLDnaute Nouveau
Re : Interdire l'utilisation des touches suppr et del dans une cellule

j'aimerais remettre les messages

MsgBox "Saisie incorrecte, numérique uniquement !"
et
MsgBox "Vous ne devez pas effacer la valeur, mais la remplacer"

j'ai essayer de les réinserer mais il apparaisse tout le temp quand j'appuie sur n'importe quel touche
 

job75

XLDnaute Barbatruc
Re : Interdire l'utilisation des touches suppr et del dans une cellule

Re,

Voyez le fichier (4), je n'ai mis qu'un seul type de message, c'est bien suffisant.

Il a fallu remplacer On Error Resume Next par :

Code:
If IsNumeric(Evaluate(Target.Formula)) Then
A+
 

Pièces jointes

  • Historiquel(4).xls
    59 KB · Affichages: 42

Discussions similaires

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