bloqueio da célula da folha dinâmica com base na faixa de valores

0

Eu quero usar a planilha do Excel para fins dinâmicos.

Vários números de produto provenientes dos códigos de barras de digitalização precisam ser inseridos na coluna A. Quero garantir que, se o número do produto inserido (digitalizado) começar com "200", a célula será bloqueada automaticamente depois que o número do produto for inserido. Se qualquer outro número de produto for inserido, a célula não será bloqueada.

Eu também quero alterar a cor de vermelho para a série de códigos de produto que não seja "200".

Por exemplo:

Column A
200412311     - Cell " A1" gets locked
200142390     - Cell " A2" gets locked
200412345     - Cell " A3" gets locked
200154672     - Cell " A4" gets locked
200234578     - Cell " A5" gets locked
100452433     - Cell is not locked
100452412     - Cell is not locked
    
por Varun 13.09.2013 / 21:40

1 resposta

3

Acredito que, seguindo estes passos, você terá o que deseja.

  1. Selecione a coluna A. Clique com o botão direito e selecione Format Cells... . Na guia Proteção, desmarque Locked . Clique em OK.
  2. Com a coluna A ainda selecionada, clique em Conditional Formatting na faixa de opções da Página inicial e selecione New Rule... . A partir daí, escolha Use a formula to determine which cells to format. . Você pode inserir a fórmula =LEFT(A1,3)<>"200" e definir a formatação como texto vermelho. Clique em OK.
  3. Na faixa de opções Revisar, clique em Protect Sheet . Escolha as configurações que você deseja para a proteção.
  4. Pressione Alt + F11 para abrir o editor do VBA. No painel do Project Explorer do VBA, clique duas vezes no módulo da planilha em que você está trabalhando.

    Issoabriráumpaineldoeditordetexto.Nessepainel,coleocódigoaseguir.
    PrivateSubWorksheet_Change(ByValTargetAsRange)DimcAsRangeIfNotIntersect(Target,Range("A:A")) Is Nothing Then
    For Each c In Target.Cells
        If Len(CStr(c.Value)) >= 3 Then
            If Left(c.Value, 3) = "200" Then
                Me.Unprotect
                c.Locked = True
                Me.Protect
            End If
        End If
    Next c
    End If
    End Sub
    
    Isso bloqueará as células que começam com "200" e deixará as outras desbloqueadas.
por 13.09.2013 / 23:04