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

0

Estou usando o Excel 2013. Sou novo no VBA. Eu encontrei um código que simplesmente esconderia 2 linhas (36 e 37) se minha célula N39 fosse igual a "Passado"

Encontrei esse código, mas recebo a mensagem "nome ambíguo detectado" Worksheet_Change "

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 ideia do que estou fazendo errado?

    
por BardonE 13.04.2016 / 00:06

2 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 ortográfico de "Linhas" como "ows" pode ter algo a ver com isso. E eu também tive que remover o feed de linha externo para que ele funcionasse.

    
por 13.04.2016 / 03:17
0

Alguma ideia do que estou fazendo errado?

I found that code but I receive the message "ambiguous name detected "Worksheet_Change"

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

I removed the previous code and it works. How could it make it work with the other code?

Você precisa colocar todo o código dentro de uma única função Worksheet_Change .

    
por 15.04.2016 / 17:33