ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Test for condition before running macro (https://www.excelbanter.com/excel-programming/426210-test-condition-before-running-macro.html)

Rookie 1st class

Test for condition before running macro
 
I have 10 named non consecutive ranges Scl1 - Scl10. I am going to create a
Command bar to run a macro based on the current ActiveCell (Selection = Some
value - from a user form). I need to understand how to test that the selected
cell is indeed named Scl* or Scl# (a wildcard will work I think).

If ActiveCell.range = "scl*" then
UserForm.Show


I also need a method for the UserForm to paste tthe data in the selected cell.

Private Sub OptionButton1_Click() 'Private Sub
Range(ActiveCell) = OurMagic

I've tried everyway I can for the test function and have even less hair than
when I started.
TIA
Lou

Rookie 1st class

Test for condition before running macro
 
I'm running Excel 2003.
Thanks again
Lou

"Rookie 1st class" wrote:

I have 10 named non consecutive ranges Scl1 - Scl10. I am going to create a
Command bar to run a macro based on the current ActiveCell (Selection = Some
value - from a user form). I need to understand how to test that the selected
cell is indeed named Scl* or Scl# (a wildcard will work I think).

If ActiveCell.range = "scl*" then
UserForm.Show


I also need a method for the UserForm to paste tthe data in the selected cell.

Private Sub OptionButton1_Click() 'Private Sub
Range(ActiveCell) = OurMagic

I've tried everyway I can for the test function and have even less hair than
when I started.
TIA
Lou


joel

Test for condition before running macro
 
Will this work?

Sub testRanges()

NamedRanges = Array("FirstRange", "SecondRange", "ThirdRange")

For Each NRange In NamedRanges
Set isect = Application.Intersect(Range(NRange), ActiveCell)
If Not isect Is Nothing Then
'enter your code here
Exit For
End If

Next NRange

End Sub

"Rookie 1st class" wrote:

I'm running Excel 2003.
Thanks again
Lou

"Rookie 1st class" wrote:

I have 10 named non consecutive ranges Scl1 - Scl10. I am going to create a
Command bar to run a macro based on the current ActiveCell (Selection = Some
value - from a user form). I need to understand how to test that the selected
cell is indeed named Scl* or Scl# (a wildcard will work I think).

If ActiveCell.range = "scl*" then
UserForm.Show


I also need a method for the UserForm to paste tthe data in the selected cell.

Private Sub OptionButton1_Click() 'Private Sub
Range(ActiveCell) = OurMagic

I've tried everyway I can for the test function and have even less hair than
when I started.
TIA
Lou


Rookie 1st class

Test for condition before running macro
 
You are a good man Joel. It works as I hoped.
Part 2 isnt as easy as I'd hoped. How do offset where the UserForm places
its data? I thought I could just use ActiveCellOffset(0,3) = "Our magic". Is
there an easy way to make the UserForm reply dynamic too?
Thanks
Lou

"joel" wrote:

Will this work?

Sub testRanges()

NamedRanges = Array("FirstRange", "SecondRange", "ThirdRange")

For Each NRange In NamedRanges
Set isect = Application.Intersect(Range(NRange), ActiveCell)
If Not isect Is Nothing Then
'enter your code here
Exit For
End If

Next NRange

End Sub

"Rookie 1st class" wrote:

I'm running Excel 2003.
Thanks again
Lou

"Rookie 1st class" wrote:

I have 10 named non consecutive ranges Scl1 - Scl10. I am going to create a
Command bar to run a macro based on the current ActiveCell (Selection = Some
value - from a user form). I need to understand how to test that the selected
cell is indeed named Scl* or Scl# (a wildcard will work I think).

If ActiveCell.range = "scl*" then
UserForm.Show


I also need a method for the UserForm to paste tthe data in the selected cell.

Private Sub OptionButton1_Click() 'Private Sub
Range(ActiveCell) = OurMagic

I've tried everyway I can for the test function and have even less hair than
when I started.
TIA
Lou


joel

Test for condition before running macro
 
You have to be smart in the way you design a userform so it makes it easy to
read and write the data. You can use Activecell.Offset(X,Y) and the values
of X and Y can be values from a FOR loop. Depending on your organization of
your data will be the determining factor on how complicated the macro will be.

"Rookie 1st class" wrote:

You are a good man Joel. It works as I hoped.
Part 2 isnt as easy as I'd hoped. How do offset where the UserForm places
its data? I thought I could just use ActiveCellOffset(0,3) = "Our magic". Is
there an easy way to make the UserForm reply dynamic too?
Thanks
Lou

"joel" wrote:

Will this work?

Sub testRanges()

NamedRanges = Array("FirstRange", "SecondRange", "ThirdRange")

For Each NRange In NamedRanges
Set isect = Application.Intersect(Range(NRange), ActiveCell)
If Not isect Is Nothing Then
'enter your code here
Exit For
End If

Next NRange

End Sub

"Rookie 1st class" wrote:

I'm running Excel 2003.
Thanks again
Lou

"Rookie 1st class" wrote:

I have 10 named non consecutive ranges Scl1 - Scl10. I am going to create a
Command bar to run a macro based on the current ActiveCell (Selection = Some
value - from a user form). I need to understand how to test that the selected
cell is indeed named Scl* or Scl# (a wildcard will work I think).

If ActiveCell.range = "scl*" then
UserForm.Show


I also need a method for the UserForm to paste tthe data in the selected cell.

Private Sub OptionButton1_Click() 'Private Sub
Range(ActiveCell) = OurMagic

I've tried everyway I can for the test function and have even less hair than
when I started.
TIA
Lou


Rookie 1st class

Test for condition before running macro
 
Sometimes I scare myself. Part 2 was as simple as I'd hoped. Thank You for
your help.
Lou

"joel" wrote:

You have to be smart in the way you design a userform so it makes it easy to
read and write the data. You can use Activecell.Offset(X,Y) and the values
of X and Y can be values from a FOR loop. Depending on your organization of
your data will be the determining factor on how complicated the macro will be.

"Rookie 1st class" wrote:

You are a good man Joel. It works as I hoped.
Part 2 isnt as easy as I'd hoped. How do offset where the UserForm places
its data? I thought I could just use ActiveCellOffset(0,3) = "Our magic". Is
there an easy way to make the UserForm reply dynamic too?
Thanks
Lou

"joel" wrote:

Will this work?

Sub testRanges()

NamedRanges = Array("FirstRange", "SecondRange", "ThirdRange")

For Each NRange In NamedRanges
Set isect = Application.Intersect(Range(NRange), ActiveCell)
If Not isect Is Nothing Then
'enter your code here
Exit For
End If

Next NRange

End Sub

"Rookie 1st class" wrote:

I'm running Excel 2003.
Thanks again
Lou

"Rookie 1st class" wrote:

I have 10 named non consecutive ranges Scl1 - Scl10. I am going to create a
Command bar to run a macro based on the current ActiveCell (Selection = Some
value - from a user form). I need to understand how to test that the selected
cell is indeed named Scl* or Scl# (a wildcard will work I think).

If ActiveCell.range = "scl*" then
UserForm.Show


I also need a method for the UserForm to paste tthe data in the selected cell.

Private Sub OptionButton1_Click() 'Private Sub
Range(ActiveCell) = OurMagic

I've tried everyway I can for the test function and have even less hair than
when I started.
TIA
Lou



All times are GMT +1. The time now is 05:54 PM.

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