VBA: como ocultar linhas se uma célula contiver um determinado texto

0

Estou usando o Excel 2013. Sou novo no VBA. Encontrei um código que simplesmente ocultaria 2 linhas (36 e 37) se meu celular N39 fosse igual a "Aprovado"

Encontrei esse código, mas recebo a mensagem "nome ambíguo detectado" Alteração da planilha "

Private Sub Worksheet_Change(ByVal Target As Range)
    If Range("N39").Value = "Passed" Then
        Rows("36:37").EntireRow.Hidden = True
    ElseIf Range("N39").Value = "Failed" Then
        Rows("36:37").EntireRow.Hidden = False

    End If
End Sub

então eu tentei o nome da minha planilha, mas não faz nada

Private Sub NRF(ByVal Target As Range)
    If Range("N39").Value = "Passed" Then
        Rows("36:37").EntireRow.Hidden = True
    ElseIf Range("N39").Value = "Failed" Then
        Rows("36:37").EntireRow.Hidden = False
    End If
End Sub

Poderia ser porque eu tenho outro código acima?

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    Dim celltxt As String
    celltxt = ActiveSheet.Range("E39").Text
    If InStr(1, celltxt, "P670-Staffing") Then
    MsgBox "Add the job title and type of hire in the description cell - column H" & vbNewLine & vbNewLine & "If this is a new position, please obtain your HRBP's approval"
    End If
End Sub

Alguma idéia do que estou fazendo de errado?

BardonE
fonte
11
Estou votando para fechar esta questão como fora de tópico, porque o OP tem um erro de digitação "ows" em vez de "Rows" em seu código. Portanto, é improvável que a pergunta seja útil para futuros leitores.
DavidPostill
Eu corrigido o erro de digitação e ainda ter a mesma mensagem de erro
Bardone
Você não pode ter duas funções com o mesmo nome e parâmetrosWorksheet_Change
DavidPostill
Eu removi o código anterior e funciona. Como isso poderia funcionar com o outro código?
precisa saber é o seguinte
Não há nada chamando NRF. Worksheet_Changeé uma função de evento chamada pelo Excel quando a planilha é alterada. Você precisa colocar todo o código dentro #Worksheet_Change
DavidPostill

Respostas:

0

Este código funciona na minha máquina (Windows 7 x64, Excel 2016):

Private Sub Worksheet_Change(ByVal Target As Range)
    If Range("N39").Value = "Passed" Then
        Rows("36:37").EntireRow.Hidden = True
    ElseIf Range("N39").Value = "Failed" Then
        Rows("36:37").EntireRow.Hidden = False
    End If
End Sub

Eu acho que o erro de ortografia de "Rows" como "ows" pode ter algo a ver com isso. E também tive que remover o feed de linha estranho para fazê-lo funcionar.

BillDOe
fonte
Copiei e colei seu código, mas ainda tenho a mesma mensagem de erro. Eu pensei que poderia ser o código que eu tinha antes, mas mesmo se eu excluir o código anterior, ele não funciona. Alguma sugestão?
precisa saber é o seguinte
Você tem esse código anexado à planilha ou como um módulo separado? Deve ser anexado à folha.
BillDOe
0

Alguma idéia do que estou fazendo de errado?

Encontrei esse código, mas recebo a mensagem "nome ambíguo detectado" Alteração da planilha "

Você não pode ter duas funções com o mesmo nome e parâmetros Worksheet_Change.

Eu removi o código anterior e funciona. Como isso poderia funcionar com o outro código?

Você precisa colocar todo o código em uma única Worksheet_Changefunção.

DavidPostill
fonte