interdire copier/coller/couper/glissement, en vba d'une plage de cellules.

mani

XLDnaute Nouveau
bonjours a tous,

J'utilise ce code dans thisworkbook :


Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Application.CutCopyMode = False
Application.CellDragAndDrop = False
End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, _
ByVal Target As Range)
Application.CutCopyMode = False
Application.CellDragAndDrop = False
End Sub

est-it possible d'empecher le couper coller et le glissement de certaines plages de cellules non protégé de certaines feuilles d'un classeur de plusieurs feuilles.
Ce code fonctionne bien mais il s'applique a tout le classeur.
J'ai lu quelque part qu'on pouvais modifier "sh" et/ou "target" pour choisir les plages de cellules et les feuilles auxquelles on veut que le code s'applique mais je débute en vba dans excel et je n'ai pas encore trouver comment faire.

Merci d'avance pour votre précieuse aide.
 
Dernière édition:

ff145bv

XLDnaute Junior
Re : interdire copier/coller/couper/glissement, en vba d'une plage de cellules.

+1

Partout on peut lire la mention "Modifiez sh et Target et vous affinerez votre interdiction" mais je ne trouve aucun moyen de réaliser cela.
Moi aussi, je voudrais limiter cette contrainte à l'une des feuilles de mon classeur.

Des idées ? Des réponses pour Mani et moi ?

Merci d'avance pour votre aide précieuse... car cela fait des semaines que je tourne en rond !
 

Cousinhub

XLDnaute Barbatruc
Re : interdire copier/coller/couper/glissement, en vba d'une plage de cellules.

Bonsoir,

au vu du code, ces instructions fonctionnement effectivement pour tout le classeur, l'évènement utilisé étant dans le WorkBook.....

Tu peux mettre ces codes dans les évènements de feuille (clic droit sur le nom de l'onglet, Visualiser le code)

Tu as alors accès aux évènements propres à cette feuille, et uniquement, à cette feuille
Et l'évènement se nommera :

Code:
Private Sub Worksheet_Activate()
Application.CutCopyMode = False
Application.CellDragAndDrop = False
End Sub

ou :

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.CutCopyMode = False
Application.CellDragAndDrop = False
End Sub
 

skoobi

XLDnaute Barbatruc
Re : interdire copier/coller/couper/glissement, en vba d'une plage de cellules.

Bonsoir le fil,
Hub :),

pour interdire sur des feuilles en particulier (en reprenant le code de bhbh):

Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
  Select Case Sh.Name
    'interdire copier, couper etc... sur feuille 1 et 2
  Case "Feuil1", "Feuil2"
    Application.CutCopyMode = False
    Application.CellDragAndDrop = False
    'autoriser copier, couper etc... sur les autres feuilles
  Case Else
    Application.CutCopyMode = True
    Application.CellDragAndDrop = True
  End Select
End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
  Select Case Sh.Name
    'interdire copier, couper etc... sur feuille 1 et 2
  Case "Feuil1", "Feuil2"
    Application.CutCopyMode = False
    Application.CellDragAndDrop = False
  End Select
End Sub
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
311 725
Messages
2 081 941
Membres
101 848
dernier inscrit
Djigbenou