Notifications
Clear all

VBA para Controle de Cursor

4 Posts
2 Usuários
0 Reactions
709 Visualizações
(@magber)
Posts: 14
Active Member
Topic starter
 

Bom dia Senhores,

Estou a criar alguns coódigos e sempre com a ajuda aqui de vocês do fórum Planilhando.

Travei em outro ponto, pois agora estou apenas a multiplicar meus códigos e não estou tendo problemas, mas ao finalizar,
me apareceu a necessidade de controlar os códigos, ativando-os ou desativando-os.

O Código:

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Column <> 0 And Target.Column <> 0 Then
If Target.Address = "$C$14" Then
If Target.Value = Range("Y35").Value Then
Cells(Target.Row + 2, Target.Column).Select
Else
Cells(Target.Row, Target.Column).Select
End If
End If
End If
Application.EnableEvents = True
Application.EnableEvents = False
If Target.Column <> 0 And Target.Column <> 0 Then
If Target.Address = "$C$16" Then
If Target.Value = Range("AE35").Value Then
Cells(Target.Row - 2, Target.Column + 2).Select
Else
Cells(Target.Row, Target.Column).Select
End If
End If
End If
Application.EnableEvents = True
Application.EnableEvents = False
If Target.Column <> 0 And Target.Column <> 0 Then
If Target.Address = "$E$14" Then
If Target.Value = Range("Y36").Value Then
Cells(Target.Row + 2, Target.Column).Select
Else
Cells(Target.Row, Target.Column).Select
End If
End If
End If
Application.EnableEvents = True
Application.EnableEvents = False
If Target.Column <> 0 And Target.Column <> 0 Then
If Target.Address = "$E$16" Then
If Target.Value = Range("AE36").Value Then
Cells(Target.Row - 2, Target.Column + 2).Select
Else
Cells(Target.Row, Target.Column).Select
End If
End If
End If
Application.EnableEvents = True
End Sub

Ele não termina aí, pois será disseminado para mais 38 células, sem problemas até aí.

Para cada Aplicação desta, tenho um controle do meu cursor, acontece que gostaria de clicar em um botão descrito com "ON" "OFF", para ativar e desativar as células, de modo que ao estar ativado a vba segue como descrita, desativado, muda o código pois agora não tem atuação nesta célula.

Como posso atuar desta forma pessoal? Interação na VBA com botão?
Se tiverem algum tutorial com este tipo de atuação me enviem por favor, mesmo que em inglês, não tem problema.

Já deixo um obrigado!

 
Postado : 23/09/2015 6:55 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Magber, eu realmente não entendi o que pretende e o que quer dizer com " ativar e desativar as células".

Se está pretendendo interagir na executação das instruções se tivermos a condição "ON" ou "OF", você pode apos clicar nos Botões e supondo que o valor dos mesmos será armazenado no Range("A1"), fazer a checagem antes da rotina continuar, ficando da seguinte forma :

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim sCondicao

    sCondicao = Range("A1").Value

    If sCondicao = "ON" Then

        If Target.Column <> 0 And Target.Column <> 0 Then
            MsgBox "COLOQUE SUAS ROTINAS AQUI"
        End If
    
    Else
        Exit Sub 'Sai da rotina sem executar
    End If
    
End Sub

Não cheguei nem a interpretar suas linhas, mas não entendi esta :
If Target.Column <> 0 And Target.Column <> 0 Then
Uma vez que não temos Coluna 0, a condição será sempre Verdadeira.
Se não for isto, favor detalhar melhor.

[]s

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

 
Postado : 23/09/2015 11:32 am
(@magber)
Posts: 14
Active Member
Topic starter
 

Coutinho, escrevi escrevi e acabei que nada escrevi :D

A atuação desta minha VBA é apenas para controle de cursor: Se o código 1 A1 for igual ao 2 A2 então cursor vai para A3, caso contrario permanece em A1, isto percorre para A1, B1, C1 até a coluna 40, apenas isto. É para controle de Barcodes.
Até aí estaria tudo ok, até que me apareceu que em alguns caso vou ter que limitar o uso de algumas colunas.

Por exemplo: Estou a executar a leitura já em na coluna C1, mas neste exato momento não preciso da coluna D1 nem da coluna E1, F1. Gostaria de ter algo que desligasse esta função rapidamente, sem ter que entrar em VBA e modificar o código para saltar 3 colunas após a ultima, então eu desligaria E1 e F1 e já saltaria para G1.

Confuso néh? Eu não consegui interagir, executei algumas Macros e tive sucesso na modificação dos botões, mas não consigo interagir com a VBA já pronta.

 
Postado : 24/09/2015 4:32 am
(@magber)
Posts: 14
Active Member
Topic starter
 

A questão é se consigo Ligar/Desligar uma VBA já escrita através de um botão?

 
Postado : 25/09/2015 8:18 am