Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 'Exit Sub Cancel = True Dim i As Long Dim j As Long Dim k As Long Dim ri As PivotItemList Dim ci As PivotItemList Dim df As Object Dim rd As Object Dim cd As Object Dim dd As Object Set ri = Target.Cells.PivotCell.RowItems Set ci = Target.Cells.PivotCell.ColumnItems Set df = Target.Cells.PivotCell.DataField Set rd = Target.Cells.PivotTable.RowFields Set cd = Target.Cells.PivotTable.ColumnFields Dim sql As String For i = 1 To ri.Count If i <> 1 Then sql = sql & vbCrLf & "AND " sql = sql & rd(piv_pos(rd, i)).Name & " = '" & ri(i).Name & "'" Next i For i = 1 To ci.Count sql = sql & vbCrLf & "AND " sql = sql & cd(piv_pos(cd, ci(i).Parent.Position)).Name & " = '" & ci(i).Name & "'" Next i MsgBox (sql) End Sub Function piv_pos(list As Object, target_pos As Long) As Long Dim i As Long For i = 1 To list.Count If list(i).Position = target_pos Then piv_pos = i Exit Function End If Next i 'should not get to this point End Function