Notifications
Clear all

SelectionChange

15 Posts
5 Usuários
0 Reactions
2,189 Visualizações
(@vonzuben)
Posts: 549
Prominent Member
Topic starter
 

Gostaria de saber pq ao selecionar a celula K7 não abre o calendario ?

Tenho que dar 2 cliques e tirar o cursor para abrir, sendo que só selecionar era para abrir.

Aconteceu isso quando deixei a planilha bloqueada, mas a celula K7 não está bloqueada.

Obrigado !

 
Postado : 23/02/2017 1:29 pm
(@jpedro)
Posts: 0
New Member
 

vonzuben, boa noite.

Vc tá usando o evento Worksheet.SelectionChange. Então, para acionar o que vc quer é necessário haver mudança (Change) da seleção. E como toda a planilha está bloqueada, a seleção sempre ficará na K7, que está desbloqueada. Uma solução é deixar outras células desbloqueadas ou criar uma forma/botão para chamar a macro.
Ou ainda usar o evento Worksheet_BeforeDoubleClick (2 cliques, mas sem precisar tirar o cursor).

Qlq dúvida é só falar.

Abraço!

 
Postado : 23/02/2017 6:27 pm
(@vonzuben)
Posts: 549
Prominent Member
Topic starter
 

Problema que Worksheet_BeforeDoubleClick que fica o cursor, se caso eu queira alterar, tenho que clicar fora da celula e clicar novamente

 
Postado : 23/02/2017 8:15 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Experimente outros eventos de planilha, como por exemplo BeforeRightClick (aciona a rotina com o botão direito do maouse):

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Dim DateFormats, DF
DateFormats = Array("m/d/yyyy", "dd mmmm yyyy")
    For Each DF In DateFormats
        If DF = Target.NumberFormat Then
            If CalendarFrm.HelpLabel.Caption <> "" Then
                CalendarFrm.Height = 191 + CalendarFrm.HelpLabel.Height
            Else: CalendarFrm.Height = 191
                CalendarFrm.Show
            End If
        End If
    Next
End Sub
 
Postado : 24/02/2017 5:17 am
(@hronconi)
Posts: 314
Reputable Member
 

É por causa do evento SelectionChange já ter ocorrido.

Tente usar algo como:
Worksheet_Change()
If Target.Address = "?????" Then
End if

 
Postado : 24/02/2017 5:39 am
(@vonzuben)
Posts: 549
Prominent Member
Topic starter
 

Com botão direito ao clicar no X fechar, fica abrindo menu do Excel

 
Postado : 24/02/2017 6:26 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

???

 
Postado : 24/02/2017 6:41 am
(@vonzuben)
Posts: 549
Prominent Member
Topic starter
 

Usando esse modo, se ao clicar no botao x de fechar o pop do calendario, abre o menu do excel

 
Postado : 24/02/2017 6:45 am
(@hronconi)
Posts: 314
Reputable Member
 
Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = "$K$7" Then
    Dim DateFormats, DF
    DateFormats = Array("m/d/yyyy", "dd mmmm yyyy")
    For Each DF In DateFormats
        If DF = Target.NumberFormat Then
            If CalendarFrm.HelpLabel.Caption <> "" Then
                CalendarFrm.Height = 191 + CalendarFrm.HelpLabel.Height
            Else: CalendarFrm.Height = 191
                CalendarFrm.Show
            End If
        End If
    Next
End If
End Sub
 
Postado : 24/02/2017 7:30 am
(@vonzuben)
Posts: 549
Prominent Member
Topic starter
 

Já tinha feito isso hronconi, pois não deu certo !

Se clica na celula e não faz nada !

 
Postado : 24/02/2017 7:41 am
(@hronconi)
Posts: 314
Reputable Member
 

Já tinha feito isso hronconi, pois não deu certo !

Se clica na celula e não faz nada !

Por que não cria um botão então?

 
Postado : 24/02/2017 7:46 am
(@teleguiado)
Posts: 0
New Member
 

Usando esse modo, se ao clicar no botao x de fechar o pop do calendario, abre o menu do excel

Use esse código com o botão direito:

Private Sub Worksheet_BeforerightClick(ByVal Target As Range, Cancel As Boolean)

    Dim DateFormats, DF
    DateFormats = Array("m/d/yyyy", "dd mmmm yyyy")
    For Each DF In DateFormats
        If DF = Target.NumberFormat Then
            If CalendarFrm.HelpLabel.Caption <> "" Then
                CalendarFrm.Height = 191 + CalendarFrm.HelpLabel.Height
            Else: CalendarFrm.Height = 191
                CalendarFrm.Show
                Cancel = True
            End If
        End If
    Next
 
Postado : 24/02/2017 8:25 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Voce pode tambem ao proteger a planilha, deixar o item selecionar celulas bloqueada ativado, assim altere a seleção e tera o calendaraberto ou, simular a alteração de seleção na abertura ou ativamento da planilha, veja em seu modelo para jan

 
Postado : 24/02/2017 8:28 am
(@vonzuben)
Posts: 549
Prominent Member
Topic starter
 

Vou tentar aqui, Valeu

 
Postado : 24/02/2017 8:48 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Foi em duplicata mas faltou o anexo

 
Postado : 24/02/2017 8:58 am