2017-06-16 5 views
0

オプションボタンリンクされたセルに問題があります。リンクされたセルの値が変わるたびにマクロをロードしたいと思います。 私は2つの異なる方法を試しましたが、ボタンが値を変更しても機能しません。選択したセルに値を入力すると、マクロが読み込まれます。ここでオプションボタンのリンクセルが変更されたときの動作

は私の二つの技術です:

Private Cel_CONGESg As Byte 
Private Sub Worksheet_Calculate() 
Dim Ws As Worksheet 

Set Ws = ThisWorkbook.Sheets("Externe") 

If Ws.Range("$I$12").Value <> Cel_CONGESg Then 
    MsgBox "heheheheeheheheheee" 
End If 

Cel_CONGESg = Ws.Range("$I$12").Value 

End Sub 

第二の方法

Private Sub Worksheet_Change(ByVal target As Range) 
Dim CongesG 
Dim Ws As Worksheet 

Set CongesG = Ws.Range("$I$12") 

If Not Application.Intersect(CongesG, Range(target.Address)) _ 
     Is Nothing Then 
    If Ws.Range("$I$12").Value = 2 Or Ws.Range("$I$12").Value = 0 Then 
     Ws.Range("$I$13").EntireRow.Hidden = True 
      With Range("H12:L12").Borders(xlEdgeBottom) 
       .LineStyle = xlDot 
       .Color = RGB(51, 63, 79) 
       .Weight = xlThin 
      End With 
    ElseIf Ws.Range("$I$12").Value = 1 Then 
     Ws.Range("$I$13").EntireRow.Hidden = False 
      With Range("H12:L12").Borders(xlEdgeBottom) 
       .LineStyle = xlNone 
      End With 
    End If 'I12 Congés 
End If 'Application intersect CongesG 
End Sub 

あなたは私の問題で何を理解する助けていただけますか?

ありがとうございます。すてきな一日を。

ジャン

enter image description here

答えて

0

すでにRangeのように定義されてWorksheet_Changeイベント、およびTarget、のすべての機能を使用していません。

は、以下のコード試してみてください。

Private Sub Worksheet_Change(ByVal Target As Range) 

Dim CongesG As Range 

Set CongesG = Range("$I$12") 

If Not Application.Intersect(CongesG, Target) Is Nothing Then 
    Application.EnableEvents = False 
    Select Case Target.Value 
     Case 2, 0 
      Target.Offset(1).EntireRow.Hidden = True 
      With Range("H12:L12").Borders(xlEdgeBottom) 
       .LineStyle = xlDot 
       .Color = RGB(51, 63, 79) 
       .Weight = xlThin 
      End With 
     Case 1 
      Target.Offset(1).EntireRow.Hidden = False 
      With Range("H12:L12").Borders(xlEdgeBottom) 
       .LineStyle = xlNone 
      End With 
    End Select 
End If 'Application intersect CongesG 
Application.EnableEvents = True 

End Sub 
+0

こんにちはシャイをし、あなたの時間をありがとうございました。残念ながら、このコードは機能しません...シートには何の効果もありません:(私はコピーして貼り付けて完全に貼り付けます)EDIT:行を手動で変更すると(オプションボタンではなく)以前の同じ問題 –

+0

さらなる研究の後、私はしたいことができないと思う...それは、変更するセルが別のアクションによって変更されたとき、worksheet_changeまたはworksheet_calculateを呼び出すことはできないようだ(CheckBoxまたは(つまり、O12: "= I12")、リンクされたセルに数式を設定しなければならないかもしれませんし、すべてのオプションボタンにマクロを割り当てるようにしても構いません。 (値= 0)詳細情報[ここ](https://stackoverflow.com/questions/20377911/change-worksheet-when-a-cell-value-and-a-checkbox-change) –

+0

別のトピック[Neil Flamingの2010-10-07回答](https://www.experts-exchange.com/questions/26526885/Run-code-when-cell-value-change)を参照してください。 s-as-a-result-of-an-action.html)を参照してください。 手掛かりがある場合は、教えてください。 :D –