Empecher supprimer un cellule une fois rempli

Résolu/Fermé
AGAZOU Messages postés 17 Date d'inscription lundi 14 mars 2016 Statut Membre Dernière intervention 8 mars 2018 - 18 nov. 2017 à 21:07
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 - 20 nov. 2017 à 05:12
Bonjour,

Je vous explique mon petit problème

Dans la feuille contrat dans la colonne AE lorsqu'on met un X avec la liste déroulante elle valide le montant en AG et additionne ce montant et le transfère dans la feuille cumulatif dans la colonne revenu. Ceci fonctionne bien ensuite l'employé valide et inscris dans la colonne grand livre le montant, les montant doivent être identique (validé avec validation de donné) fonctionne également tres bien: Le problème est que lorsque l'employé par erreur supprime le X dans la colonne AE et si l'employé avait déjà inscris la valeur au grand livre dans la colonne C cumulatif, la validation de donné ne se fait plus.

Le fichier joint ci-dessous

http://www.cjoint.com/c/GKsuf3eGZGk

Est ce possible que lorsque que l'employé valide avec le X dans la colonne AE quelle ne puisse ensuite supprimer la cellule rempli, si elle veux le supprimer qu'une boite de dialogue s'ouvre avec comme Texte vérifier le montant au grand livre.

De plus est ce possible d'avoir un journal événement qui serait inscrit quel employé a tenté de supprimer quelle cellule

Est ce possible que lorsq'on supprime le X dans la colonne AE qu'une validation de donné se fasse Feuil cumulatif C7 n'est plus = a B7

Merci a ceux qui vont m'aider sur ce problème


A voir également:

3 réponses

Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
Modifié le 19 nov. 2017 à 11:26
Bonjour
Essayez ceci
https://www.cjoint.com/c/GKtkAmPqkLw
Toute tentative d'effacement d'un "X" dans la colonne AE fait l'objet d'un message demandant à l'utilisateur de valider son action d'effacement, volontaire ou non.
Cdlt
0
AGAZOU Messages postés 17 Date d'inscription lundi 14 mars 2016 Statut Membre Dernière intervention 8 mars 2018
19 nov. 2017 à 18:51
Bonjour,

Oui ceci est une bonne solution, mais pourriez vous m’expliquer ce que vous avez fait,
je ne vois rien en vba, et rien non plus dans les validation de donné

Merci
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337 > AGAZOU Messages postés 17 Date d'inscription lundi 14 mars 2016 Statut Membre Dernière intervention 8 mars 2018
19 nov. 2017 à 18:57
Le code se trouve dans le module de la feuille "Contrat"
0
AGAZOU Messages postés 17 Date d'inscription lundi 14 mars 2016 Statut Membre Dernière intervention 8 mars 2018 > Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023
19 nov. 2017 à 19:08
Merci je n'avais pas vu, cela fonctionne bien et je crois que cela devrais empêcher les erreur.

Merci pour votre aide
0
AGAZOU Messages postés 17 Date d'inscription lundi 14 mars 2016 Statut Membre Dernière intervention 8 mars 2018 > Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023
19 nov. 2017 à 19:45
Pardon de vous demander une autre chose mais je ne touche pas souvent au vba

J'ai modifié le code pour avoir la colonne ak également

If Not Intersect(Target, Range("AE6:AE10000", "ak6:ak10000")) Is Nothing Then

Mais j'aimerais 2 msg différent

Si il tente d'éffacer un X dans AE6:AE10000 un msg et si dans AK6:ak10000 un autre msg

pourriez vous m'aider svp
0
The_boss_68 Messages postés 925 Date d'inscription dimanche 15 novembre 2015 Statut Membre Dernière intervention 23 avril 2024 174
Modifié le 19 nov. 2017 à 21:28
Bonsoir

Peut-être comme ça

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Target, Range("AE6:AE10000,ak6:ak10000")) Is Nothing Then
If Target.Interior.ColorIndex <> xlNone Then
If Target.Value <> "X" Then
If MsgBox("Etes-vous sûr de vouloir effacer le contenu de cette cellule?", vbYesNo + vbCritical + vbDefaultButton2, "Contrôle cellule") = vbYes Then
Target.ClearContents
Target.Interior.ColorIndex = xlNone
Application.EnableEvents = True
Exit Sub
Else
Target.Value = "X"
End If
End If
End If
If Target.Value <> "X" Then Target.Interior.ColorIndex = xlNone Else: Target.Interior.Color = RGB(226, 239, 217)
End If
Application.EnableEvents = True
End Sub

Sub Worksheet_SelectionChange(ByVal Target As Range)
If Selection.Column = 31 And Selection.Rows.Count > 1 Then
MsgBox "Vous ne pouvez sélectionner qu'une seule cellule à la fois"
[AE1].Activate
Exit Sub
End If
If Not Intersect(Target, Range("AE6:AE10000,ak6:ak10000")) Is Nothing Then If Target.Value <> "X" Then Target.Interior.ColorIndex = xlNone Else: Target.Interior.Color = RGB(226, 239, 217)
End Sub


Slts
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
20 nov. 2017 à 05:12
Bonjour
Voici avec les 2 propositions de messages distincts.J'y ai apporté une modification pour renforcer la sécurité contre tout effacement.
https://www.cjoint.com/c/GKuehoxDBfw
Cdlt
0