ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Finding column again (https://www.excelbanter.com/excel-programming/322557-finding-column-again.html)

Prema

Finding column again
 
I posted a message before asking how to find the column within a range which
held a six digit number. Tom Ogilvy kindly provided some codes as below
Dim ans as String, num as Long
Dim res as Variant
ans = Inputbox("Enter 6 digit number")
if isnumeric(ans) and len(trim(ans)) = 6 then
num = clng(ans)
res = application.Match(num, range("A1:E1"),0)
if not iserror(res) then
col = range("A1")(1, res).Column
else
msgbox "Not found"
end if
End if

This gives me the column number. But I would like the corresponding letter
of the column. For example If the sis dogit number was in column G, I would
like to update 3 cells in column G (e.g. range("G5").select ActiveCell =
"Done" Range("G7").Select ActiveCell = "OK" and so on) If column was H then
I would update H5, H7 and so on. How can I do this in VB?

Thank you
Prema

Tom Ogilvy

Finding column again
 
using the letter instead of the column Number would be the backwards way to
do it.

Dim ans as String, num as Long
Dim res as Variant
ans = Inputbox("Enter 6 digit number")
if isnumeric(ans) and len(trim(ans)) = 6 then
num = clng(ans)
res = application.Match(num, range("A1:E1"),0)
if not iserror(res) then
col = range("A1")(1, res).Column
cells(5,col).Value = "Done"
cells(7,col).Value = "OK"
cells(9,col).Value = "And So On"
else
msgbox "Not found"
end if
End if


If you absolutely need the column letter - using col from the existing code

Dim sStr as String
sStr = Left(cells(1,col).Address(0,0), 2 + (col <= 26))
msgbox "Column letter: " & sStr


--
Regards,
Tom Ogilvy



"Prema" wrote in message
...
I posted a message before asking how to find the column within a range

which
held a six digit number. Tom Ogilvy kindly provided some codes as below
Dim ans as String, num as Long
Dim res as Variant
ans = Inputbox("Enter 6 digit number")
if isnumeric(ans) and len(trim(ans)) = 6 then
num = clng(ans)
res = application.Match(num, range("A1:E1"),0)
if not iserror(res) then
col = range("A1")(1, res).Column
else
msgbox "Not found"
end if
End if

This gives me the column number. But I would like the corresponding letter
of the column. For example If the sis dogit number was in column G, I

would
like to update 3 cells in column G (e.g. range("G5").select ActiveCell =
"Done" Range("G7").Select ActiveCell = "OK" and so on) If column was H

then
I would update H5, H7 and so on. How can I do this in VB?

Thank you
Prema




Bernie Deitrick

Finding column again
 
Prema,

There is no reason to use the column letter once you have the column
number - simply use the Cells(row #, col#) property of the sheet rather than
the Range property. So cell H6 is Cells(6,8)

HTH,
Bernie
MS Excel MVP

"Prema" wrote in message
...
I posted a message before asking how to find the column within a range

which
held a six digit number. Tom Ogilvy kindly provided some codes as below
Dim ans as String, num as Long
Dim res as Variant
ans = Inputbox("Enter 6 digit number")
if isnumeric(ans) and len(trim(ans)) = 6 then
num = clng(ans)
res = application.Match(num, range("A1:E1"),0)
if not iserror(res) then
col = range("A1")(1, res).Column
else
msgbox "Not found"
end if
End if

This gives me the column number. But I would like the corresponding letter
of the column. For example If the sis dogit number was in column G, I

would
like to update 3 cells in column G (e.g. range("G5").select ActiveCell =
"Done" Range("G7").Select ActiveCell = "OK" and so on) If column was H

then
I would update H5, H7 and so on. How can I do this in VB?

Thank you
Prema




Prema

Finding column again
 
Thank you very much Tom. I was thinking only in one way. Of course what you
have said is best.
Prema

"Prema" wrote:

I posted a message before asking how to find the column within a range which
held a six digit number. Tom Ogilvy kindly provided some codes as below
Dim ans as String, num as Long
Dim res as Variant
ans = Inputbox("Enter 6 digit number")
if isnumeric(ans) and len(trim(ans)) = 6 then
num = clng(ans)
res = application.Match(num, range("A1:E1"),0)
if not iserror(res) then
col = range("A1")(1, res).Column
else
msgbox "Not found"
end if
End if

This gives me the column number. But I would like the corresponding letter
of the column. For example If the sis dogit number was in column G, I would
like to update 3 cells in column G (e.g. range("G5").select ActiveCell =
"Done" Range("G7").Select ActiveCell = "OK" and so on) If column was H then
I would update H5, H7 and so on. How can I do this in VB?

Thank you
Prema



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

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