Empêcher de copier certaines ligne/colonnes

Bonjour à tous,

Promis j'ai beaucoup cherché mais je ne trouve aucune piste intéressante. J'espère me tromper

Mon problème:

J'ai une feuille bien sécurisée avec du code vba qui empêche tout collage extérieur à celle de la feuille (ça c'est réglé)

J'ai besoin de permettre aux utilisateurs de copier des cellules mais uniquement si celles-ci sont situées en-dehors des colonnes A:B et des lignes 1:2 pour garantir la validité de mes validations de données

Comment puis-je empêcher de faire un copier sur certaines cellules (cellules protégées) mais en permettant de les sélectionner ?

La finalité est de garantir la validité de mes validations de données

Merci pour votre aide

Bonsoir,

Sur un projet, j'avais une problématique quasi similaire :

A savoir, ne laissez la saisie que ds certaine zone pour des utilisateurs non accoutumé à Excel, tant pour éviter d'effacer des formules par inadvertance, que pour éviter des erreurs suite à de mauvaises saisies.

2 bout de codes ci-dessous :

l'un qui empêche le copié-collé dans certaines zones si sélection : (ws1 étant le Shortname de la feuille, le corriger le cas échéant)

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)

If Not Intersect(ws1.Range("D11:K11,C18:J18,C31:K31,C34:J34,C49:J49"), Target) Is Nothing Then
    If Application.CutCopyMode <> False Then Cancel = True
End If
End Sub

l'autre protège la feuille si sélection dans une cellule d'une liste : (ws1 étant le Shortname de la feuille, le corriger le cas échéant)

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Set entrees = ws1.Range("C3:O3,C4:O4,C5:O5,C6:O6,C7:O7,D12:K12,D13:K13,C8,C9,G15,C19:J30,M19:M30,C35:J46,C50:J53")
Set nonmodif = ws1.Range("B18,D15,D11:K11,C18:J18,C31:K31,C34:J34,C49:J49") 'zone qui présente des formules à protéger quoi qu'il en soit

If Not Application.Intersect(Target, nonmodif) Is Nothing Then 'si selection reprend une zone qui présente une formule (empeche effacement impromptu)
    ws1.Protect AllowSorting:=True
ElseIf Not Intersect(Target, entrees) Is Nothing Then
    ws1.Unprotect
End If

End Sub

Ces 2 codes sont à mettre sur la Feuille concernée (car procédure événementielle) et non ds un module !

En espérant que cela pourra vous aider.

Bien Cordialement,

Bonjour CVC,

J'avais bien vu cette solution qui marche bien, mais malheureusement dans l'autre sens !

Si je copie quelque chose et que je sélectionne une cellule dans A:B je peux déclencher le cutcopymode = False

Par contre dans l'autre sens, si je copie des cellules en A:B pour les coller ailleurs je n'arrive pas à déclencher la vérification pour annuler le cutcopymode

Je n'arrive pas à contrôler l'origine des cellules copiées

Est-ce qu'il est possible de récupérer l'adresse des cellules copiées ?

Merci beaucoup pour l'aide en tout cas

Bonjour,

Si tu veux ne pas que ta validation de données puisse être écrasée ...

Ci-joint une proposition ...

Merci James,

Mes validation ne s'écrasent pas malgré les copier coller, je pense que c'est lié aux sécurités

Personne d'autre n'a d'idée ?

Merci James,

Mes validation ne s'écrasent pas malgré les copier coller, je pense que c'est lié aux sécurités

Personne d'autre n'a d'idée ?

Bonjour,

Et moi qui pensais qu'il fallait un moyen pour qu'elles ne soient PAS écrasées ....

J'ai été agréablement surpris de voir qu'elles ne s'écrasaient pas non plus

Un problème de plus en moins

Bon, pour contourner ce problème j'ai pensé à une autre solution qui limiterait les dégâts

Sur ma page on ne peut pas faire de clic droit pour coller (j'ai donné une autre fonction à cette touche)

En conséquence pour coller il faut faire CTRL+V ou aller dans l'onglet accueil et choisir coller

Comment :

* Remplacer CTRL+V par collage valeur (ça c'est bon) mais qui ne s'appliquerait que sur ThisWorkbook (et pas les autres !)

* Ne laisser que coller valeur dans l'onglet d'accueil > Coller

Question Bonus (même si je ne pense pas que ce soit possible)

* Connaissez-vous un moyen pour permettre un d'annuler la/les dernière(s) action(s) (CTRL+Z) après exécution d'une Macro ?

Voilà, beaucoup de questions (l'emmerdeur)

Merci beaucoup pour votre aide !

Rechercher des sujets similaires à "empecher copier certaines ligne colonnes"