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

Empecher couper et supprimer cellules

atc

XLDnaute Junior
bonjour forum
je me demande s'il y'a un moyen pour empecher de couper et de supprimer les cellules,j'ai des feuilles liees et j'ai remarqué que si on coupe ou on supprime il y'a des erreurs de ref qui s'affichent sur les cellules referencées

merci d'avance
 

Sylvie

XLDnaute Accro
Re : Empecher couper et supprimer cellules

Bonsoir Atc, Bonsoir Brigitte, Bonsoir le forum, coucou les Italiens

la solution qui t'est soufflée par Brigitte semble parfaitement adaptable dès lors que tu utilises au moins Excel 2002.
En dévérouillant les cellules qui nécessitent une saisie, cela aura pour effet de permettre la saisie dans ces cellules quand la feuille sera protégée.
Par contre, tu peux cibler les actions autorisées en protégeant la feuille et donc ne pas autoriser les actions "insérer ou supprimer des lignes".

En procédant ainsi, la suppression ou l'insertion de lignes et de colonnes peut etre interdite mais la saisie dans des cellules ciblées (ou non) possible.

Bonne soirée
 

atc

XLDnaute Junior
Re : Empecher couper et supprimer cellules

re forum
re brijitte
re sylvie
je viens de verifier ce que tu m'as suggerer je le trouve faisable ,malheureusement ca ne resout pas totalement mon pb,puisque la fonction couper persiste tjrs et ca me perturbe les ref merci bcp
@+
 

coco_lapin

XLDnaute Impliqué
Bonjour à tous,

Je remonte ce fil car c'est exactement ce que je cherche.

Je pense qu'il faudrait détecter l'action de "couper" sur l'événement "selection d'une cellule" mais c'est ce code que je n'arrive pas à trouver.
 

eriiic

XLDnaute Barbatruc
Bonjour,

bonne idée job75.
Seulement ça n'empêche pas le coupé-collé par un cliqué-glissé de la cellule.
A part l'interdire :
VB:
Application.CellDragAndDrop = False
je ne vois pas.
eric
 

job75

XLDnaute Barbatruc
Bonsoir coco_lapin, coucou chère Brigitte si jamais tu passes par ici

3 macros très simples dans le code de la feuille pour y interdire le couper-coller :
Code:
Private Sub Worksheet_Activate()
If Application.CutCopyMode = xlCut Then Application.CutCopyMode = 0
End Sub

Private Sub Worksheet_Deactivate()
Worksheet_Activate 'lance la macro
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Worksheet_Activate 'lance la macro
End Sub
Fichier joint.

Bonne nuit.
 

Pièces jointes

  • Interdire le couper-coller(1).xlsm
    21.3 KB · Affichages: 26

coco_lapin

XLDnaute Impliqué
Bonjour job75 et eriiiic,

Merci job75 j'ai essayé ta proposition et cela répond exactement à ma question. Super

Effectivement eriiic cela n'empêche pas le coupé-collé par un cliqué-glissé de la ou les cellule(s).
A l'ouverture du classeur il faut mettre le code que tu proposes mais il faut aussi pensez de mettre un code inverse à la fermeture du classeur sinon l'utilisateur se retrouve sans cliqué-glissé.
Je ne sais pas trop ce qu'il se passe pour l'utilisateur si entre l'ouverture et la fermeture du classeur excel plante ou si un réseau plante et que le classeur se trouve dessus ou qu'il y ait une coupure secteur. Dans ces cas l'utilisateur pourrait se retrouver sans cliqué-glissé. C'est pourquoi je n'aime pas trop jouer sur ces paramètres excel mais dans notre cas c'est pas trop grave et je vais faire ainsi. C'est plus grave lorsque le calcul a été mis en manuel par macro et que cela reste en manuel après la fermeture du classeur, dans ce cas c'est très dangereux.

Encore merci pour vos aides et bon Week-end.
Je vais prévenir atc qui avait initialisé ce fil en message personnel pour qu'il puisse voir la solution et mettre le titre en "résolu"
 

job75

XLDnaute Barbatruc
Bonjour coco_lapin, eriiiic,

Je n'avais pas vu le message d'eriiiic après suppression de mon 1er message :
Seulement ça n'empêche pas le coupé-collé par un cliqué-glissé de la cellule.
Oui en effet, alors comme il y a des cellules liées servons-nous en :
Code:
Private Sub Worksheet_Deactivate()
If Application.CutCopyMode = xlCut Then Application.CutCopyMode = 0
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
Set c = Feuil2.Cells.Find("#REF!", , xlFormulas, xlPart)
If c Is Nothing Then Exit Sub
With Application
    .EnableEvents = False
    .Undo 'annule la modification
    .CutCopyMode = 0
    .EnableEvents = True
End With
End Sub
Fichier (2).

A+
 

Pièces jointes

  • Interdire le couper-coller(2).xlsm
    23.2 KB · Affichages: 25

Jean-Marie!

XLDnaute Nouveau
bonjour,
je suis très intéressé par cette macro. dans le test que j'ai fait j'ai déplacer une case jaune E14 vers le bas en E15, cela a généré une erreur dans la feuille 2 mais la macro n'a pas empêche le déplacement.
ai-je loupé qqch
merci
 

Pièces jointes

  • Interdire le couper-coller(2).xlsm
    15.2 KB · Affichages: 3

job75

XLDnaute Barbatruc
Bonsoir Jean-Mariel,

N'auriez-vous pas tenté un couper-coller via une macro comme :
VB:
Sub Test()
[E14].Cut [E15]
End Sub
Dans ce cas Application.Undo crée un bug et n'annule pas la modification.

A+
 

Discussions similaires

Réponses
7
Affichages
405
Réponses
6
Affichages
167
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…