2011-04-05 3 views
0

내 스프레드 시트 내의 특정 셀이 특정 번호와 동일한 경우 내 userForm 내의 버튼을 비활성화하는 방법을 알아 내려고하고 있습니다. 아래 명시된 코드를 시도했지만 작동하지 않습니다.사용자 정의 폼의 버튼 사용 안함

Private Sub UserForm_Initialize() 
Label2 = Sheets("DATA").Range("AM2").Value 
Label4 = Sheets("DATA").Range("AO2").Value 
Label7 = Format(Sheets("DATA").Range("R8").Value, "Currency") 

If Sheets("DATA").Range("AL10").Value = 10 Then 
ActiveSheet.Shapes("CommandButton1").Select 
UserFormact_Upgrade.CommandButton1.Enabled = False 

Else 


End If 

End Sub 

답변

5

올바른 경로에 있으므로 코드가 작동해야합니다.

테스트하려면 단순히 새 양식을 만들고이 코드를 추가하기 만하면 작동합니다. 어쩌면 당신은 IF 절에서 문제가있을 수 있습니까?

게다가 모양을 비활성화하기 전에 선택하지 않아도됩니다. 바로 사용 중지하십시오. 및 (로드 명령과 관련된)하지 초기화 이벤트 ( 방법을 표시와 관련된)

Private Sub UserForm_Initialize() 

    CommandButton1.Enabled = False 

End Sub 
0

사용 속성을 설정하기위한 적절한 장소는 활성화 이벤트입니다. AL10 셀> = 10

 Private Sub UserForm_Activate() 
      CommandButton1.Enabled = (Sheets("DATA").Range("AL10") < 10) 
     End Sub 

버튼의 당신이 사이의 일반 버튼을 선택할 수 있습니다 때 아래의 코드는, (재산 = 거짓과 재산 보이는 = true를 사용) 버튼을 CommandButton1을을 해제 해제 버튼보이지 않는 버튼 (재산 = 거짓과 재산 보이는 = TRUE를 사용) (prope rty 사용 = 거짓이고 속성이 표시 = False), 대부분의 경우 더 깨끗한 인터페이스입니다. 텍스트 상자에 관한

정상, 장애인보이지 않는 상태 외에, 그 활성화 볼 수 있지만, 사용자가 편집 할 수 없습니다하는 상태를 잠겨있다. (잠김 = True)

잠긴 컨트롤 만 VBA 코드로 변경할 수 있습니다. 예를 들어 누군가 캘린더 컨트롤과 함께 보조 팝업 날짜 양식을 사용하여 채워진 날짜 텍스트 상자를 포함 할 수 있습니다.

1

나는 이것이 오래되었다는 것을 알고 있지만,이 문제를 해결하려고 시도한이 스레드에 도착하여 여기에 언급되지 않은 해결책을 발견했습니다. 그래서 누군가가 내가했던 것처럼 여기에 왔을 때, 그리고 그들이 필요한 곳을 찾지 못했을 때, 이것이 도움이 될 것이라고 생각했습니다.

cmdADAMFields라는 드롭 다운 상자가있는 userform이 있는데 드롭 다운 상자에서 무언가를 선택할 때까지 FieldsSubmitButton이라는 제출 단추를 사용할 수 없도록 설정했습니다.

내 인수를 두 개의 다른 개인용 서브 시스템과 하나의 더 큰 If-Then-Else 구문으로 구분해야했습니다.먼저

, 내가 넣어 :

Private Sub UserForm_Activate() 
If cmbADAMFields.ListIndex = -1 Then FieldsSubmitButton.Enabled = False 
End Sub 

그리고 내가 쓴 내 풀다운의 개인 서브 것은 값이 변경 될 때 때

Private Sub cmbADAMFields_Change() 
FieldsSubmitButton.Enabled = True 
End Sub