Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 2
Default Worksheet_Change(ByVal Target As Excel.Range)

I'm trying to alter multiple pivot tables and its working great as long as i
enter a number higher or equal to 100 in the target cell. I have to be able
to use numbers between 0 an 100 to. What am i doing wrong?

My code:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)

Dim pt01 As PivotTable
Dim pf01 As PivotField
Dim pi01 As PivotItem

Dim pt02 As PivotTable
Dim pf02 As PivotField
Dim pi02 As PivotItem

Set pt01 = Sheets("Noter").PivotTables("3601-Fellesutgifter")
Set pt02 = Sheets("Saldobalanse").PivotTables("Saldobalanse")

Set pf01 = pt01.PivotFields("IK")
Set pf02 = pt02.PivotFields("IK")

If Target.Address = "$A$2" Then

For Each pi01 In pf01.PivotItems
If pi01 = Target.Value Then
pf01.CurrentPage = Target.Value
Exit For
End If
Next pi01

For Each pi02 In pf02.PivotItems
If pi02 = Target.Value Then
pf02.CurrentPage = Target.Value
Exit For
End If
Next pi02

End If

End Sub

I realy hope you can help!



--
Daggi
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 2,253
Default Worksheet_Change(ByVal Target As Excel.Range)



your event handler changes values thus triggering more events that it
needs to handle..

try like:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
application.enableevents=False
'your code
application.enableevents=True
end sub



--
keepITcool
| www.XLsupport.com | keepITcool chello nl | amsterdam


Daggi wrote :

I'm trying to alter multiple pivot tables and its working great as
long as i enter a number higher or equal to 100 in the target cell. I
have to be able to use numbers between 0 an 100 to. What am i doing
wrong?

My code:



I realy hope you can help!

  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 2
Default Worksheet_Change(ByVal Target As Excel.Range)

I'm sorry! It did not solve the problem.
The pivot tables have to change when target.value is between 0 and 700.
It's working when the value is between 100 and 700. Not when its 99 or less.
--
Daggi


keepITcool skrev:



your event handler changes values thus triggering more events that it
needs to handle..

try like:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
application.enableevents=False
'your code
application.enableevents=True
end sub



--
keepITcool
| www.XLsupport.com | keepITcool chello nl | amsterdam


Daggi wrote :

I'm trying to alter multiple pivot tables and its working great as
long as i enter a number higher or equal to 100 in the target cell. I
have to be able to use numbers between 0 an 100 to. What am i doing
wrong?

My code:



I realy hope you can help!


  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 2,253
Default Worksheet_Change(ByVal Target As Excel.Range)


hmm. not reading very well, was I :)

note that the PivotItem's value is a string.
a small rewrite..
hopefully this works, else mail me the workbook.
(email in signature.. just add @ and .


Private Sub Worksheet_Change(ByVal Target As Excel.Range)

Dim pt01 As PivotTable
Dim pf01 As PivotField
Dim pi01 As PivotItem

Dim pt02 As PivotTable
Dim pf02 As PivotField
Dim pi02 As PivotItem

'moved IF above the assignment of objects
If Target.Address = "$A$2" Then

Set pt01 = Sheets("Noter").PivotTables("3601-Fellesutgifter")
Set pt02 = Sheets("Saldobalanse").PivotTables("Saldobalanse")

'using pagefields not pivot fields
Set pf01 = pt01.PageFields("IK")
Set pf02 = pt02.PageFields("IK")

For Each pi01 In pf01.PivotItems
'using string compare
'and qualified properties iso relying on "default"
If StrComp(pi01.Value, Target.Value, vbTextCompare) = 0 Then
'avoid problems.. use the pi to set the pf. (not target)

pf01.CurrentPage = pi01.Value
Exit For
End If
Next pi01

For Each pi02 In pf02.PivotItems
If StrComp(pi02.Value, Target.Value, vbTextCompare) = 0 Then
pf02.CurrentPage = pi02.Value
Exit For
End If
Next pi02

End If

End Sub






--
keepITcool
| www.XLsupport.com | keepITcool chello nl | amsterdam


Daggi wrote :

I'm sorry! It did not solve the problem.
The pivot tables have to change when target.value is between 0 and
700. It's working when the value is between 100 and 700. Not when
its 99 or less.

Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
REPSOT?? Sub Worksheet_Change(ByVal Target As Range) Ed Davis[_2_] Excel Discussion (Misc queries) 14 October 13th 09 03:20 PM
Private Sub Worksheet_Change(ByVal Target As Excel.Range) Arturo Excel Programming 5 March 9th 07 04:30 PM
Private Sub Worksheet_Change(ByVal Target As Excel.Range) [email protected] Excel Worksheet Functions 0 December 21st 06 02:13 AM
Private Sub Worksheet_Change(ByVal Target As Range) Arturo Excel Programming 1 May 25th 05 03:32 PM
Excel VBA .... Worksheet_Change(ByVal Target As Range) question Joseph Donnelly Excel Programming 2 May 17th 04 08:35 PM


All times are GMT +1. The time now is 02:35 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"