Notifications
Clear all

Bloquear Copiar / Colar na abertura do Excel.

3 Posts
2 Usuários
0 Reactions
1,499 Visualizações
(@felipesrz)
Posts: 2
New Member
Topic starter
 

Boa tarde,

Estou precisando bloquear no inicio / abertura do excel os comando copiar / colar em uma determinada aba e determinada coluna! Achei o código abaixo, porem ele bloquei a planilha inteira (Colocando o script na "EstaPasta_de_trabalho").

"Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)

Application.CutCopyMode = False
Application.CellDragAndDrop = False

End Sub"

Obrigado

 
Postado : 25/09/2013 10:18 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Felipe, como não disse qual a versão do Excel, as rotinas abaixo funcionam no Excel 2003, não testei em outras versões :

Supondo que quer que na Aba "Plan2" quer que ocorra o Bloqueio, então no evento desta aba cole as rotinas abaixo :
Veja que na Worksheet_SelectionChange está definido a Coluna e os Ranges que serão Bloqueados:
Set ColunasC = Range("C2:C20") 'Range a Impedir Copiar / Recortar / Colar se for outro tem de ajustar aqui.

Private Sub Worksheet_Activate()
Dim oCtrl As Office.CommandBarControl
 
    'Desabilita todos os comandos de Recortar
     For Each oCtrl In Application.CommandBars.FindControls(ID:=21)
            oCtrl.Enabled = False
     Next oCtrl
 
    'Desabilita todos os comandos de Copiar
     For Each oCtrl In Application.CommandBars.FindControls(ID:=19)
            oCtrl.Enabled = False
     Next oCtrl
 
        Application.CellDragAndDrop = False

End Sub

 
Private Sub Worksheet_Deactivate()
    Dim oCtrl As Office.CommandBarControl
 
'Habilita todos os comandos de Recortar
     For Each oCtrl In Application.CommandBars.FindControls(ID:=21)
            oCtrl.Enabled = True
     Next oCtrl
 
'Desabilita todos os comandos de Copiar
     For Each oCtrl In Application.CommandBars.FindControls(ID:=19)
            oCtrl.Enabled = True
     Next oCtrl
 
        Application.CellDragAndDrop = True

End Sub


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim oCtrl As Office.CommandBarControl

    Dim ColunasC As Range
    
    Set ColunasC = Range("C2:C20") 'Range a Impedir Copiar / Recortar / Colar

    If Not Application.Intersect(ColunasC, Range(Target.Address)) Is Nothing Then
    
    'Desabilita todos os comandos de Recortar
         For Each oCtrl In Application.CommandBars.FindControls(ID:=21)
                oCtrl.Enabled = False
         Next oCtrl
     
        'Desabilita todos os comandos de Copiar
         For Each oCtrl In Application.CommandBars.FindControls(ID:=19)
                oCtrl.Enabled = False
         Next oCtrl
     
            Application.CellDragAndDrop = False
    
        With Application
            .CellDragAndDrop = True
            .CutCopyMode = False 'limpa a área de transferência
        End With
        
    Else
        'Habilita todos os comandos de Recortar
         For Each oCtrl In Application.CommandBars.FindControls(ID:=21)
                oCtrl.Enabled = True
         Next oCtrl
     
        'Desabilita todos os comandos de Copiar
         For Each oCtrl In Application.CommandBars.FindControls(ID:=19)
                oCtrl.Enabled = True
         Next oCtrl
     
            Application.CellDragAndDrop = True
    
        
    End If
    
End Sub

Faça os testes e veja se é isto.

[]s

** Em Tempo : Aproveitei o assunto e anexei um Modelo no forum Biblioteca :
Bloquear Copiar / Colar Determinada Aba e Range
viewtopic.php?f=21&t=9269

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 25/09/2013 11:22 am
(@felipesrz)
Posts: 2
New Member
Topic starter
 

Boa tarde Mauro,
O Excel é 2010, porem funcionou perfeitamente.

Obrigado.

 
Postado : 26/09/2013 11:11 am