Microsoft 365 Interdire le copier / coller sur certaines colonnes (VBA)

  • Initiateur de la discussion Initiateur de la discussion ALF75
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

ALF75

XLDnaute Nouveau
Bonjour,
J'ai fait quelques recherches, mais étant totalement novice en VBA, je ne trouve pas exactement ce que je souhaite.
Je voudrais interdire le copier / coller sur certaines colonnes uniquement (sans avoir à devoir mettre en place la protection avec mdp).
J'ai des colonnes avec des listes (validation de données) et je voudrais que sur ces colonnes spécifiquement, les personnes ne puissent pas mettre autre chose que ce qui est dans cette liste.

Auriez vous des suggestions ?

Merci par avance et bon après-midi

Adrien
 
Bonjour @ALF75

Sans fichier pour test je ferais comme ceci :

Pour par exemple interdire la copie dans les colonne A et B et E (à adapter à tes colonnes)

VB:
Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Range("A:B,E:E"), Target) Is Nothing Then
  If Application.CutCopyMode <> False Then Cancel = True
End If
End Sub

Sub Worksheet_Change(ByVal Target As Range)
If Flag Or Intersect(Target, Range("A:B,E:E")) Is Nothing Or Application.CutCopyMode = False Then
    Exit Sub
End If
Flag = True
Application.Undo
Flag = False
End Sub

Merci de ton retour

@Phil69970
 
Bonjour @ALF75

Sans fichier pour test je ferais comme ceci :

Pour par exemple interdire la copie dans les colonne A et B et E (à adapter à tes colonnes)

VB:
Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Range("A:B,E:E"), Target) Is Nothing Then
  If Application.CutCopyMode <> False Then Cancel = True
End If
End Sub

Sub Worksheet_Change(ByVal Target As Range)
If Flag Or Intersect(Target, Range("A:B,E:E")) Is Nothing Or Application.CutCopyMode = False Then
    Exit Sub
End If
Flag = True
Application.Undo
Flag = False
End Sub

Merci de ton retour

@Phil69970
Bonjour,
Merci pour votre retour !
J'ai essayé avec mon fichier et je peux toujours écraser les données dans les colonnes stipulées dans la macro.
Mon fichier de travail étant confidentiel, j'ai fait un fichier un peu similaire avec une liste. J'ai cherché à bloquer les col A et B dans ce fichier. Mais dans l'idée, vous avez tout à fait saisi ma demande ! Une macro malléable me permettant de sélectionner les colonnes voulues.
Une idée sur ce qui bloque dans les lignes de macro ?
Merci par avance pour le temps passé et bon après-midi,

Adrien
 

Pièces jointes

Re

Comme c'est des procédures évènementielles il faut les mettre dans le module de la feuille et non dans Thisworkbook non pécisé certe mais me semblait évident au vu des nom de sub

1670338965338.png


1670339033155.png


Merci de ton retour

@Phil69970
 
re
Bonjour
un autre exemple pour bloquer le copier /coller sur une cellule avec liste de validation par le menu click droit sans bloquer
Bloque aussi par la meme occasion le CTRL+V
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
If Target.Validation.Type = xlValidateList Then
    With CreateObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}"): .SetText Target.Value: .PutInClipboard: End With
End If
End Sub
 
re
Bonjour
un autre exemple pour bloquer le copier /coller sur une cellule avec liste de validation par le menu click droit sans bloquer
Bloque aussi par la meme occasion le CTRL+V
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
If Target.Validation.Type = xlValidateList Then
    With CreateObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}"): .SetText Target.Value: .PutInClipboard: End With
End If
End Sub
Ca fonctionne également... Par contre, cela bloque bloque vraiment tout CTRL V, et pas uniquement sur une zone (colonnes) spécifique
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
6
Affichages
907
Réponses
11
Affichages
996
Retour