Empêcher le copier-coller d'une séléction de ligne

Bonjour, j'aimerais sur un onglet interdire le copier-coller uniquement sur la sélection H51:ARV52 que ce soit avec le raccourci clavier (CTRLC ou CTRLV) ou le click droit sans passer par la verrouillage de ces cellules.

Existe t'il une macro VBA permettant de faire ceci? car j'ai trouvé une macro interdisant tous les copier-coller mais sur toute la feuille et non sur ma sélection.

Merci

Bonjour,

Essayez ce code à coller dans le module de la feuille.

-Interdit le copié-collé dans la zone "H51:ARV52" , mais autorise le remplissage des cellules.

Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo Sortie
    Application.EnableEvents = False
    If Not Intersect(Target, Range("H51:ARV52")) Is Nothing Then
        If Application.CutCopyMode = xlCopy Or Application.CutCopyMode = xlCut Then Application.Undo
    End If
Sortie:
    Application.EnableEvents = True
End Sub

Cdlt

ça fonctionne le copier coller est impossible mais le menu déroulant existant dans les colonnes n'est pas accessible. C'est à dire que dans ces cellules il y a un menu déroulant et je ne peux pas choisir un intitulé parmi ce menu déroulant.

Et oui, mais si vous ne dites pas tout, je ne peux pas deviner.

Où est ce menu déroulant ? Sous quelle forme, "textbox", validation de données"?

Avec un fichier modèle (sans données confidentielles), se serait plus simple.

Voici un exemple.

Je ne veux pas qu'il soit possible de faire de copier coller de E3 à T4, mais par contre qu'il soit possible de choisir une valeur dans le menu déroulant.

Si je fais un copier-coller ta macro fonctionne parfaitement, mais à partir de là quand je choisis une valeur dans le menu déroulant, cette dernière s'efface. Je suis obligé d'aller dans la cellule et clicker sur la touche supr pour que la valeur du menu déroulant s'inscrive.

Merci pour ton aide

Maintenant, j'y vois plus clair. donc ce que vous souhaitez faire, c'est d'appliquer les validations de données aux nouvelles dates ou toutes nouvelles entrées.

Il suffit pour cela de réappliquer les validations de données a la nouvelle plage.

Dans le module de la feuille:

Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo Sortie
    Application.EnableEvents = True
    Set f1 = Sheets("Feuil1")
    Set f2 = Sheets("DEROULANT")
    Derlig_f1 = f1.Range("A1").End(xlDown).Row
    If Not Intersect(Target, Range("E1:ZZ1, A2:A" & Derlig_f1)) Is Nothing Then Creation_Liste
Sortie:
    Application.EnableEvents = True
End Sub

Dans un module standard

Public Derlig_f1 As Long
Public f1 As Worksheet, f2 As Worksheet

Sub Creation_Liste()
    Dim DerCol_f1 As Long, Derlig_f2 As Long
    Application.ScreenUpdating = False
    DerCol_f1 = f1.Range("A1").End(xlToRight).Column
    Derlig_f2 = f2.Range("A1").End(xlDown).Row
    f2.Select
    Range("A2:A" & Derlig_f2).Select
    ActiveWorkbook.Names.Add Name:="FONCTION", RefersToR1C1:="=" & f2.Name & "!R2C1:R" & Derlig_f2 & "C1"
    f1.Select
    With Range(f1.Cells(3, "E"), f1.Cells(Derlig_f1, DerCol_f1)).Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=FONCTION"
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With
End Sub

Cdlt

Merci mais le 1er code marchait à merveille et fait exactement ce que j'ai demandé en empêchant le copier-coller entre E3:T4

Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo Sortie
    Application.EnableEvents = False
    If Not Intersect(Target, Range("E3:T4")) Is Nothing Then
        If Application.CutCopyMode = xlCopy Or Application.CutCopyMode = xlCut Then Application.Undo
    End If
Sortie:
    Application.EnableEvents = True
End Sub

Par contre, à partir du moment ou je ne peux pas faire le copier-coller, j'aimerais pouvoir avoir le menu déroulant qui est valide (et là ce n'est pas le cas)

Je ne comprends pas pourquoi vous vous obstinez à vouloir utiliser le copié-collé, puisqu'il ne doit pas y avoir de valeur dans la cellule de destination, si ce ne simplement que pour récupérer la validation de données.

Donc ma question: quel est le but du copié-collé?

Ma dernière proposition recrée automatiquement toutes les validations de données dès que vous ajouterai une nouvelle journée ou un nouveau nom, alors pourquoi faire un copié-collé?

Rechercher des sujets similaires à "empecher copier coller selection ligne"