Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
hi there,
i have a task to check whether a user has align some text in the range cells from A1:F1. so there is some text in cell A1. then the user selects all the cells from A1:f1 and merges them and then aligns the text center. that is easy. i wrote the above sub and thought would work fine but the problem is that when someone selects the cells a1 to c1 and centers the text in that range my sub still gives me a correct result it should not. how can i write a sub that will give me a correct result only when the user aligns the given text in the range from cells A1:f1 and only in that range? please help!! Sub center() Set app = Application.Workbooks("budget").Worksheets("money" ) If app.Range("A1:F1").HorizontalAlignment < xlCenter Then MsgBox "error" Exit Sub End If MsgBox ("ok") End Sub ------------------------------------------------ ~~ Message posted from http://www.ExcelTip.com/ ~~ View and post usenet messages directly from http://www.ExcelForum.com/ |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
if Range("A1").MergeArea.Address = "$A$1:$F$1" then
if Range("A1").app.Range("A1:F1").HorizontalAlignment < xlCenter then End if else messagebox "Wrong merge area" End if Why not just have your code perform the action of merging and centering. -- Regards, Tom Ogilvy nikolaosk wrote in message ... hi there, i have a task to check whether a user has align some text in the range cells from A1:F1. so there is some text in cell A1. then the user selects all the cells from A1:f1 and merges them and then aligns the text center. that is easy. i wrote the above sub and thought would work fine but the problem is that when someone selects the cells a1 to c1 and centers the text in that range my sub still gives me a correct result it should not. how can i write a sub that will give me a correct result only when the user aligns the given text in the range from cells A1:f1 and only in that range? please help!! Sub center() Set app = Application.Workbooks("budget").Worksheets("money" ) If app.Range("A1:F1").HorizontalAlignment < xlCenter Then MsgBox "error" Exit Sub End If MsgBox ("ok") End Sub ------------------------------------------------ ~~ Message posted from http://www.ExcelTip.com/ ~~ View and post usenet messages directly from http://www.ExcelForum.com/ |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi
What you need to do is check which cells are merged first. Try this: If range("a1").mergearea.address="$a$1:$f$1" then ' the correct range is merged. check if text is centred else ' the merged range has been changed. tell the user msgbox "You have changed the merged range." end if Hope that helps. Iain nikolaosk wrote in message ... hi there, i have a task to check whether a user has align some text in the range cells from A1:F1. so there is some text in cell A1. then the user selects all the cells from A1:f1 and merges them and then aligns the text center. that is easy. i wrote the above sub and thought would work fine but the problem is that when someone selects the cells a1 to c1 and centers the text in that range my sub still gives me a correct result it should not. how can i write a sub that will give me a correct result only when the user aligns the given text in the range from cells A1:f1 and only in that range? please help!! Sub center() Set app = Application.Workbooks("budget").Worksheets("money" ) If app.Range("A1:F1").HorizontalAlignment < xlCenter Then MsgBox "error" Exit Sub End If MsgBox ("ok") End Sub ------------------------------------------------ ~~ Message posted from http://www.ExcelTip.com/ ~~ View and post usenet messages directly from http://www.ExcelForum.com/ |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
your test will always be false:
? range("A1").MergeArea.Address $A$1:$F$1 ? range("a1").mergearea.address="$a$1:$f$1" False Addresses are returned in uppercase. -- Regards, Tom Ogilvy Iain Sheetware wrote in message om... Hi What you need to do is check which cells are merged first. Try this: If range("a1").mergearea.address="$a$1:$f$1" then ' the correct range is merged. check if text is centred else ' the merged range has been changed. tell the user msgbox "You have changed the merged range." end if Hope that helps. Iain nikolaosk wrote in message ... hi there, i have a task to check whether a user has align some text in the range cells from A1:F1. so there is some text in cell A1. then the user selects all the cells from A1:f1 and merges them and then aligns the text center. that is easy. i wrote the above sub and thought would work fine but the problem is that when someone selects the cells a1 to c1 and centers the text in that range my sub still gives me a correct result it should not. how can i write a sub that will give me a correct result only when the user aligns the given text in the range from cells A1:f1 and only in that range? please help!! Sub center() Set app = Application.Workbooks("budget").Worksheets("money" ) If app.Range("A1:F1").HorizontalAlignment < xlCenter Then MsgBox "error" Exit Sub End If MsgBox ("ok") End Sub ------------------------------------------------ ~~ Message posted from http://www.ExcelTip.com/ ~~ View and post usenet messages directly from http://www.ExcelForum.com/ |
#5
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Yes and no. If you have Option Compare Text at the top of the
appropriate module, you will find that "a1"="A1" returns TRUE. But I agree that in general it is best to test for the exact case you expect. "Tom Ogilvy" wrote in message ... your test will always be false: ? range("A1").MergeArea.Address $A$1:$F$1 ? range("a1").mergearea.address="$a$1:$f$1" False Addresses are returned in uppercase. -- Regards, Tom Ogilvy Iain Sheetware wrote in message om... Hi What you need to do is check which cells are merged first. Try this: If range("a1").mergearea.address="$a$1:$f$1" then ' the correct range is merged. check if text is centred else ' the merged range has been changed. tell the user msgbox "You have changed the merged range." end if Hope that helps. Iain nikolaosk wrote in message ... hi there, i have a task to check whether a user has align some text in the range cells from A1:F1. so there is some text in cell A1. then the user selects all the cells from A1:f1 and merges them and then aligns the text center. that is easy. i wrote the above sub and thought would work fine but the problem is that when someone selects the cells a1 to c1 and centers the text in that range my sub still gives me a correct result it should not. how can i write a sub that will give me a correct result only when the user aligns the given text in the range from cells A1:f1 and only in that range? please help!! Sub center() Set app = Application.Workbooks("budget").Worksheets("money" ) If app.Range("A1:F1").HorizontalAlignment < xlCenter Then MsgBox "error" Exit Sub End If MsgBox ("ok") End Sub ------------------------------------------------ ~~ Message posted from http://www.ExcelTip.com/ ~~ View and post usenet messages directly from http://www.ExcelForum.com/ |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Text won't align at bottom of cells in Excel 2007. | Excel Discussion (Misc queries) | |||
align text?? | New Users to Excel | |||
How do I center numbers in a cell, but align by decimal? | Excel Discussion (Misc queries) | |||
How do I center align a title at top of sheet. | Excel Worksheet Functions | |||
How to center a title across a range of cells in Excel ? | Excel Discussion (Misc queries) |