ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Discussion (Misc queries) (https://www.excelbanter.com/excel-discussion-misc-queries/)
-   -   Precedents (https://www.excelbanter.com/excel-discussion-misc-queries/196251-precedents.html)

Abdul Shakeel

Precedents
 
Hi All,

I am using sumif worksheet function in sheet I would like to give an example
here...
Apples 100
Apples 100
Mangos 150
Apples 10
I am using this formula in cell B5:
=Sumif(A1:A4,A5,B1:B4) I just want that when I press
Ctrl + [ in my sumif holding formula it select only those cell that meets my
given criteria specification, rather select the range A1:B5. is there any
way to this





Héctor Miguel

Precedents
 
hi, Abdul !

I am using sumif worksheet function in sheet I would like to give an example here...
Apples 100
Apples 100
Mangos 150
Apples 10
I am using this formula in cell B5: =Sumif(A1:A4,A5,B1:B4)
I just want that when I press Ctrl + [ in my sumif holding formula
it select only those cell that meets my given criteria specification
rather select the range A1:B5. is there any way to this


(i.e.) the following sub does what you ask (selects only the matching cells in B1:B4)
you will need to assign "the sub" to any short-cut key (i.e. in your workbook_open event)
and release "the short-cut key" (i.e. in your workbook_beforeclose event) -???-

Sub myMatchingSumif()
Dim theFunction As String, theCriteria As String, theCondition As String, _
theResults As String, theRange As Range, n As Integer, Temp As String, Tmp
If ActiveCell.HasFormula Then theFunction = ActiveCell.Formula Else Exit Sub
If Mid(theFunction, 2, 5) < "SUMIF" Then Exit Sub
Temp = Mid(theFunction, 8, Len(theFunction) - 8)
Tmp = Split(Temp, ",")
theCriteria = Tmp(LBound(Tmp))
theCondition = Tmp(LBound(Tmp) + 1)
theResults = Tmp(LBound(Tmp) + 2)
With Range(theCriteria)
For n = 1 To .Count
If .Cells(n) = Range(theCondition) Then
Set theRange = Union(IIf(theRange Is Nothing, _
Range(theResults).Cells(n), theRange), Range(theResults).Cells(n))
End If
Next
End With
If Not theRange Is Nothing Then theRange.Select: Set theRange = Nothing
End Sub

hth,
hector.

*IF* you need this sub for xl-97 (VBA5 doesn't support split-vba function)...
change this:
Tmp = Split(Temp, ",")
to this:
Tmp = Evaluate("{""" & Application.Substitute(Temp, ",", """,""") & """}")



Abdul Shakeel

Precedents
 
Thank you very much for your code, its exactly works as I want.

"Héctor Miguel" wrote:

hi, Abdul !

I am using sumif worksheet function in sheet I would like to give an example here...
Apples 100
Apples 100
Mangos 150
Apples 10
I am using this formula in cell B5: =Sumif(A1:A4,A5,B1:B4)
I just want that when I press Ctrl + [ in my sumif holding formula
it select only those cell that meets my given criteria specification
rather select the range A1:B5. is there any way to this


(i.e.) the following sub does what you ask (selects only the matching cells in B1:B4)
you will need to assign "the sub" to any short-cut key (i.e. in your workbook_open event)
and release "the short-cut key" (i.e. in your workbook_beforeclose event) -???-

Sub myMatchingSumif()
Dim theFunction As String, theCriteria As String, theCondition As String, _
theResults As String, theRange As Range, n As Integer, Temp As String, Tmp
If ActiveCell.HasFormula Then theFunction = ActiveCell.Formula Else Exit Sub
If Mid(theFunction, 2, 5) < "SUMIF" Then Exit Sub
Temp = Mid(theFunction, 8, Len(theFunction) - 8)
Tmp = Split(Temp, ",")
theCriteria = Tmp(LBound(Tmp))
theCondition = Tmp(LBound(Tmp) + 1)
theResults = Tmp(LBound(Tmp) + 2)
With Range(theCriteria)
For n = 1 To .Count
If .Cells(n) = Range(theCondition) Then
Set theRange = Union(IIf(theRange Is Nothing, _
Range(theResults).Cells(n), theRange), Range(theResults).Cells(n))
End If
Next
End With
If Not theRange Is Nothing Then theRange.Select: Set theRange = Nothing
End Sub

hth,
hector.

*IF* you need this sub for xl-97 (VBA5 doesn't support split-vba function)...
change this:
Tmp = Split(Temp, ",")
to this:
Tmp = Evaluate("{""" & Application.Substitute(Temp, ",", """,""") & """}")




Héctor Miguel

Precedents
 
hi, Abdul !

Thank you very much for your code, its exactly works as I want.


thank you for your feed-back ;)

regards,
hector.

I am using sumif worksheet function in sheet I would like to give an example here...
Apples 100
Apples 100
Mangos 150
Apples 10
I am using this formula in cell B5: =Sumif(A1:A4,A5,B1:B4)
I just want that when I press Ctrl + [ in my sumif holding formula
it select only those cell that meets my given criteria specification
rather select the range A1:B5. is there any way to this


(i.e.) the following sub does what you ask (selects only the matching cells in B1:B4)
you will need to assign "the sub" to any short-cut key (i.e. in your workbook_open event)
and release "the short-cut key" (i.e. in your workbook_beforeclose event) -???-

Sub myMatchingSumif()
Dim theFunction As String, theCriteria As String, theCondition As String, _
theResults As String, theRange As Range, n As Integer, Temp As String, Tmp
If ActiveCell.HasFormula Then theFunction = ActiveCell.Formula Else Exit Sub
If Mid(theFunction, 2, 5) < "SUMIF" Then Exit Sub
Temp = Mid(theFunction, 8, Len(theFunction) - 8)
Tmp = Split(Temp, ",")
theCriteria = Tmp(LBound(Tmp))
theCondition = Tmp(LBound(Tmp) + 1)
theResults = Tmp(LBound(Tmp) + 2)
With Range(theCriteria)
For n = 1 To .Count
If .Cells(n) = Range(theCondition) Then
Set theRange = Union(IIf(theRange Is Nothing, _
Range(theResults).Cells(n), theRange), Range(theResults).Cells(n))
End If
Next
End With
If Not theRange Is Nothing Then theRange.Select: Set theRange = Nothing
End Sub

hth,
hector.

*IF* you need this sub for xl-97 (VBA5 doesn't support split-vba function)...
change this:
Tmp = Split(Temp, ",")
to this:
Tmp = Evaluate("{""" & Application.Substitute(Temp, ",", """,""") & """}")





All times are GMT +1. The time now is 08:11 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com