none
Desbloquear celulas sequencialmente RRS feed

  • Pergunta

  • Bom dia.

    Tenho uma planilha como a da figura abaixo, onde tem celulas com quadrados para ser preenchido com marca de ticagem e valores. Quando dou dois cliques aparece a marca de ticagem e se der outro dois cliques onde tem a marca, deixa em branco.

    Como as celulas nao sao continuas, nomeei as celulas para facilitar o preenchimento, como por exemplo a celula G4 chamei de Ticar34, G11 de Ticar35, G21 de Ticar36, G28 de Ticar37. G30 de Ticar38. Depois no Boleto1 na celula I5 de Ticar39 e no campo de valores celula S5 de Ticar40 e a data de Ticar41, seguindo abaixo no Boleto2 na celula I6 de Ticar42 e sucessivamente. A Planilha esta protegida e inicialmente os campos a serem preenchidas da Forma de Pagamento mostrado no quadarado vermelho com numero 1, estao desbloqueadas, e fiz uma rotina que ao dar dois cliques numa das Formas de pagamento, a celula clicada fica com a marca de ticagem e as outras ficam bloqueadas.

    Gostaria de que ao ticar na Forma de pagamento(por exemplo) Boleto(Ticar34), o campo de ticagem Boleto1(Ticar39) ficasse desbloqueada para poder ticar, e quando ticado, desbloqueasse na mesma linha o Valor (Ticar40) e Vencimento (Ticar 41) e so depois de preencher o Vencimento(Ticar41), desbloqueasse o campo Boleto 2 ou seja Ticar 42 da celula I6 e assim por diante.

    Qual seria a melhor meneira de fazer essa tarefa usando Funcao ou Subrotinas?

    Desde ja agradeco um retorno.

    Tadao

    Rotina que usei para colocar a marca de ticagem

    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, UsedRange) Is Nothing Then
            If Target.Value = "" Then
                    Target.Value = ChrW(&H2713)
            Else
                    Target.Value = ""
            End If
            Call Ticar
    End If
    End Sub

    Rotina para bloquear que precisa ser incrementada

    Sub Ticar()
    Dim grupo1 As Range
    For i = 34 To 38
            If grupo1 Is Nothing Then
                    Set grupo1 = Range("Ticar" & i)
            Else
                    Set grupo1 = Union(grupo1, Range("Ticar" & i))
            End If
    Next i
    If Not Intersect(ActiveCell, grupo1) Is Nothing Then
             If ActiveCell.Value = "" Then
                     ActiveSheet.Unprotect
                     grupo1.Locked = False
                     ActiveSheet.Protect
             Else
                     ActiveSheet.Unprotect
                     grupo1.Locked = True
                     ActiveCell.Locked = False
                     ActiveSheet.Protect
             End If
    End If
    End Sub


    quarta-feira, 30 de janeiro de 2019 13:32