2016-06-30 1 views
0

특정 셀의 값을 기반으로 워크 시트에서 열을 숨기려고합니다. 이 값은 다른 이름 옵션의 범위 일 수 있으며 각 가능한 옵션마다 다른 열이 숨겨져 있습니다. 나는 다음 코드를 가지고 있지만 항상 작동하지 않는 것처럼 보이고 때로는 범위의 일부 열만 숨기지 만 (Abandonnée이 F7 셀에있는 경우처럼 H 열이 숨길 수 있음) 나는 숨어 있지 않을 것이다). 누구든지 아이디어가 있다면 도움을 주시면 감사하겠습니다. 감사!셀 값에 따라 Excel에서 여러 열 숨기기 및 표시

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
If Range("F7").Value = "Abandonnée" Then 
    Columns("G").EntireColumn.Hidden = False 
Else 
    Columns("G").EntireColumn.Hidden = True 
End If 

If Range("F7").Value = "Abandonnée" Then 
    Columns("H:I").EntireColumn.Hidden = True 
Else 
    Columns("H:I").EntireColumn.Hidden = False 
End If 

If Range("F7").Value = "Référé au spécialiste" Then 
    Columns("G").EntireColumn.Hidden = True 
Else 
    Columns("G").EntireColumn.Hidden = False 
End If 

If Range("F7").Value = "Référé au spécialiste" Then 
    Columns("H").EntireColumn.Hidden = False 
Else 
    Columns("H").EntireColumn.Hidden = True 
End If 

If Range("F7").Value = "Référé au spécialiste" Then 
    Columns("I").EntireColumn.Hidden = True 
Else 
    Columns("I").EntireColumn.Hidden = False 
End If 

If Range("F7").Value = "En force" Then 
    Columns("G").EntireColumn.Hidden = True 
Else 
    Columns("G").EntireColumn.Hidden = False 
End If 

If Range("F7").Value = "En attente d'information" Then 
    Columns("G").EntireColumn.Hidden = True 
Else 
    Columns("G").EntireColumn.Hidden = False 
End If 

If Range("F7").Value = "En cours" Then 
    Columns("G").EntireColumn.Hidden = True 
Else 
    Columns("G").EntireColumn.Hidden = False 
End If 

If Range("F7").Value = "Refusé par l'assureur" Then 
    Columns("G").EntireColumn.Hidden = True 
Else 
    Columns("G").EntireColumn.Hidden = False 
End If 

End Sub 

답변

2

두 가지 :

  1. 먼저 숨기기 취소 모든 열.

  2. 그런 다음 Select Case를 사용하여 조건을 반복하고 숨길 필요가있는 것을 숨 깁니다. 이처럼

, 당신은 다른 조건에 넣어해야합니다

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
Columns("G:I").Hidden = False 
Select Case Range("F7") 
    Case "Abandonnée" 
     Columns("H:I").Hidden = True 
    Case "Référé au spécialiste" 
     Columns("G").EntireColumn.Hidden = True 
     Columns("I").EntireColumn.Hidden = True 
    Case "En force" 
     Columns("G").EntireColumn.Hidden = True 
    'Continue with all your tests 
End Select 


End Sub 

을 당신이 당신의 Case 문으로 당신이 미상 수있는 동일한 열을 숨기고 방아쇠 단어가있는 경우 :

Case "En force","Abandonnée" 
    '... 

그런 다음 F7이이 두 가지 중 하나 일 때 아래에있는 것을 수행합니다.

+0

고맙습니다. 이제 작동합니다. 동일한 코드를 사용했지만 동일한 시트의 다른 범위 (예 : 셀 F7을 셀 F10으로 대체)에서 다른 문제가 발생했습니다. 거기에 열이 나타나거나 선택을 통해 변경하는 대신 자동으로 숨길 수 있도록 방법이 있나요 @ Scott – Ben

+0

당신의 질문을 이해하고 있는지, 당신이 예제를 줄 수있는 자신의 질문으로 더 적합 할 수 있습니다. –