ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   relative address in validate (https://www.excelbanter.com/excel-programming/317950-relative-address-validate.html)

miro

relative address in validate
 
HI.
with this code I put the formula in B1 with absolute reference to cell A1:

Range("B1").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=
_
xlBetween, Formula1:="=A1"
...
...
End With

..

Is possible by vba insert a relative address?
If I use

formular1c1:="RC[-1]"

the code doesn't word.

Any help will be appreciated.
Best rgds
M.



Bob Phillips[_6_]

relative address in validate
 
How about this?


Range("K1").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, _
AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, _
Formula1:="=" & ColumnLetter(ActiveCell.Column - 1) &
ActiveCell.Row
....
....
End With

'-----------------------------------------------------------------
Function ColumnLetter(Col As Long)
'-----------------------------------------------------------------
Dim sColumn As String
sColumn = Split(Columns(Col).Address(, False), ":")(1)
ColumnLetter = sColumn
End Function



--

HTH

RP
(remove nothere from the email address if mailing direct)


"miro" wrote in message
...
HI.
with this code I put the formula in B1 with absolute reference to cell A1:

Range("B1").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop,

Operator:=
_
xlBetween, Formula1:="=A1"
...
...
End With

.

Is possible by vba insert a relative address?
If I use

formular1c1:="RC[-1]"

the code doesn't word.

Any help will be appreciated.
Best rgds
M.





miro

relative address in validate
 
MMM.. thanks Bob, but the formula in validate is more complicated.

Formula1:= "=OFFSET($AA$11,MATCH( D10
,$AA$11:$AA$106),0):OFFSET($AA$11,95,0)"

I need that D10 is not absolute but relative (2 columns left from cell where
the formula is put)

Thanks
M.


"Bob Phillips" ha scritto nel messaggio
...
How about this?


Range("K1").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, _
AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, _
Formula1:="=" & ColumnLetter(ActiveCell.Column - 1) &
ActiveCell.Row
...
...
End With

'-----------------------------------------------------------------
Function ColumnLetter(Col As Long)
'-----------------------------------------------------------------
Dim sColumn As String
sColumn = Split(Columns(Col).Address(, False), ":")(1)
ColumnLetter = sColumn
End Function



--

HTH

RP
(remove nothere from the email address if mailing direct)


"miro" wrote in message
...
HI.
with this code I put the formula in B1 with absolute reference to cell
A1:

Range("B1").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop,

Operator:=
_
xlBetween, Formula1:="=A1"
...
...
End With

.

Is possible by vba insert a relative address?
If I use

formular1c1:="RC[-1]"

the code doesn't word.

Any help will be appreciated.
Best rgds
M.








Bob Phillips[_6_]

relative address in validate
 
Same principle applies,

"=OFFSET($AA$11,MATCH( & ColumnLetter(ActiveCell.Column - 2) &
ActiveCell.Row
& ",$AA$11:$AA$106),0):OFFSET($AA$11,95,0)"


--

HTH

RP
(remove nothere from the email address if mailing direct)


"miro" wrote in message
...
MMM.. thanks Bob, but the formula in validate is more complicated.

Formula1:= "=OFFSET($AA$11,MATCH( D10
,$AA$11:$AA$106),0):OFFSET($AA$11,95,0)"

I need that D10 is not absolute but relative (2 columns left from cell

where
the formula is put)

Thanks
M.


"Bob Phillips" ha scritto nel

messaggio
...
How about this?


Range("K1").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, _
AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, _
Formula1:="=" & ColumnLetter(ActiveCell.Column - 1) &
ActiveCell.Row
...
...
End With

'-----------------------------------------------------------------
Function ColumnLetter(Col As Long)
'-----------------------------------------------------------------
Dim sColumn As String
sColumn = Split(Columns(Col).Address(, False), ":")(1)
ColumnLetter = sColumn
End Function



--

HTH

RP
(remove nothere from the email address if mailing direct)


"miro" wrote in message
...
HI.
with this code I put the formula in B1 with absolute reference to cell
A1:

Range("B1").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop,

Operator:=
_
xlBetween, Formula1:="=A1"
...
...
End With

.

Is possible by vba insert a relative address?
If I use

formular1c1:="RC[-1]"

the code doesn't word.

Any help will be appreciated.
Best rgds
M.










miro

relative address in validate
 
Thank you Bob!
In the night (I'm write from Italy) I've found another simply way:

Formula1:= "=OFFSET($AA$11,MATCH(" & ActiveCell.Offset(, -2).Address &
",$AA$11:$AA$106),0):OFFSET($AA$11,95,0)"

Bye
M.


"Bob Phillips" ha scritto nel messaggio
...
Same principle applies,

"=OFFSET($AA$11,MATCH( & ColumnLetter(ActiveCell.Column - 2) &
ActiveCell.Row
& ",$AA$11:$AA$106),0):OFFSET($AA$11,95,0)"


--

HTH

RP
(remove nothere from the email address if mailing direct)


"miro" wrote in message
...
MMM.. thanks Bob, but the formula in validate is more complicated.

Formula1:= "=OFFSET($AA$11,MATCH( D10
,$AA$11:$AA$106),0):OFFSET($AA$11,95,0)"

I need that D10 is not absolute but relative (2 columns left from cell

where
the formula is put)

Thanks
M.


"Bob Phillips" ha scritto nel

messaggio
...
How about this?


Range("K1").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, _
AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, _
Formula1:="=" & ColumnLetter(ActiveCell.Column - 1) &
ActiveCell.Row
...
...
End With

'-----------------------------------------------------------------
Function ColumnLetter(Col As Long)
'-----------------------------------------------------------------
Dim sColumn As String
sColumn = Split(Columns(Col).Address(, False), ":")(1)
ColumnLetter = sColumn
End Function



--

HTH

RP
(remove nothere from the email address if mailing direct)


"miro" wrote in message
...
HI.
with this code I put the formula in B1 with absolute reference to cell
A1:

Range("B1").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop,
Operator:=
_
xlBetween, Formula1:="=A1"
...
...
End With

.

Is possible by vba insert a relative address?
If I use

formular1c1:="RC[-1]"

the code doesn't word.

Any help will be appreciated.
Best rgds
M.













All times are GMT +1. The time now is 09:24 AM.

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