1
resposta

[Projeto] Duvida na Implementação do comando apagar dentro do Looping

Bom dia , Tudo bem?

Estou desenvolvendo um código com validação de dados dentro do VBA. Eu preciso que quando o campo da validação de dados for vazio ele limpe a célula mas o meu segundo looping não esta dando certo. Ele nao entende que se o campo cell.validation for igual a null ele precisa apagar aquele campo. Poderia me ajudar?

Set Rng = Planilha1.Range("K4:" & lastColLetter & "4")

For Each cell In Rng
    
    ' Aplica a validação de dados
    With cell.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="=teste1"
        .IgnoreBlank = False
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With
     
Next cell

For Each cell In Rng

    If cell.Validation Is Nothing Then
        cell.Validation.Delete
        End If
        
Next cell

Obrigada!

1 resposta

Oii, Julia! Como vai?

Como sugestão, teste o cell.Validation.Type = xlValidateList para checar se a célula possui uma validação de lista, no lugar de cell.Validation Is Nothing, antes de tentar apagar. Deixo aqui o link da documentação e do artigo para te auxiliar nos estudos:

As páginas podem abrir em ingles, caso não se sinta confortável com o idioma, clique com o botão direito do mouse em qualquer canto da página e escolha a opção traduzir para o português.

Espero ter ajudado e continue se dedicando aos estudos.

Até mais, Julia!