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?


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.


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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.