2012-04-26 7 views
2

私はちょっと読んでいて、SO点を聞いてきました。私は名前を変更することができるExcelのドロップダウンセレクタを持っています。名前が変更されると、 "C3"の値が変更されます(C3が別のシート上の別のセルを参照します)。別のシート(今の場合は6)にピボットテーブルを作成して、地域IDでそのフィルタを更新して、新しい値「C3」を反映させます。セル内の値が変更されてピボットテーブルのフィルタが変更されるとき

私にはイベントのように聞こえるので、掘り起こしてVBAイベントがあることがわかりましたが、実際に何かをするイベントを得ることができませんでした。私がそこに持っているコードは、マクロとして実行すると動作しますが、セル "C3"の値が変わるたびに自動的に実行するようにしたいと思います。

Sub Worksheet_Change(ByVal Target As Range) 
If Not Application.Intersect(Target, Sheets("Current Status").Range("C3")) Is Nothing Then 
Sheets("Sheet6").PivotTables("PivotTable5").PivotFields("territory_id"). _ 
    ClearAllFilters 
Sheets("Sheet6").PivotTables("PivotTable5").PivotFields("territory_id").CurrentPage _ 
    = Sheets("Current Status").Range("C3").Value 
End If 
End Sub 

アップデート:私はシート部分(シート2)ではなく、新しいモジュールに上記のコードを入れた場合、私はそれを得ることができることを私が発見したがここで

は、私がこれまでにしようとしていますものです物理的にコードを入力してEnterキーを押すと実行されます。今私は手動で値を入力してEnterキーを押すことなくそれを行う方法があるかどうか疑問に思っています。ドロップダウンセレクタがピボットテーブルを更新するため、c3の値が変更されたとき、新しい名前を選択するためにドロップダウンメニューを使用できるようにしたいだけです。

いつもありがとうございます。

+0

どこにコードを入れましたか?モジュールやシートで? – Sam

+0

私はモジュールで最初にそれを持っていました。シートに入れてから、変化する値を持つセルの代わりにドロップダウンセレクター(@Scottのおかげで)をターゲットにする必要があることを理解しました。 – asjohnson

答えて

3

問題は、C3が実際には変更されていないということです。これは、単に式の参照が更新されているためです。フォーム上またはデータ検証とセルに基づいて "ドロップダウンセレクタ"ですか?

セルに基づいている場合は、C3が単に の数式参照であり、ドロップダウンセルが実際に変更されるセルであるため、C3 - >ではなくターゲットセルに設定します。

フォームに基づいているが、フォームコントロールのon_changeイベントでコード化している場合。

+0

データ検証とセル内のドロップダウンセレクタ。ドロップダウンセレクターで私のイベントを指摘できますか?私はまだ入力を打つことはないと思うので、うまくいかないかもしれません。それを今試みている。 – asjohnson

+0

それは動作します!正しい方向に私を指してくれてありがとう。私はちょうどドロップダウンセレクターへの参照を変更しなければならず、すべてがpeachyです。 – asjohnson

+0

甘い!それがうれしい –