Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.word.formatting.longdocs
|
|||
|
|||
![]()
I am trying to help a colleague with a checklist they have created in
Microsoft Word 2003. We are trying to color code the table so that when the document is opened, all the cells are clear (empty), but when someone clicks in a particular cell of a table, the correct color shows up. Is there a way to get color to appear when you click in a cell in an MS Word 2003 table? Thank you for your help. |
#2
![]()
Posted to microsoft.public.word.formatting.longdocs
|
|||
|
|||
![]()
You could put a macrobutton field in each field, attached to a macro that
changes the cell color. But it seems a lot of work for not much benefit. "mfitz" wrote in message oups.com... I am trying to help a colleague with a checklist they have created in Microsoft Word 2003. We are trying to color code the table so that when the document is opened, all the cells are clear (empty), but when someone clicks in a particular cell of a table, the correct color shows up. Is there a way to get color to appear when you click in a cell in an MS Word 2003 table? Thank you for your help. |
#3
![]()
Posted to microsoft.public.word.formatting.longdocs
|
|||
|
|||
![]()
Another way is to write a DocumentSelectionChange event procedure in
the template for the checklist. You haven't said what the "correct color" is, or how to decide which color is "correct", so I can't provide an exact solution. Here's an example, though. Put this code in the ThisDocument module of the template and see how it works. Then you can modify the logic in the event procedure, or post back and explain exactly what you want to happen and we can write the code. Option Explicit Private WithEvents wdApp As Word.Application Private Sub Document_New() 'assign Word to the application variable If wdApp Is Nothing Then Set wdApp = ThisDocument.Application End If End Sub Private Sub Document_Open() 'assign Word to the application variable If wdApp Is Nothing Then Set wdApp = ThisDocument.Application End If End Sub Private Sub wdApp_WindowSelectionChange(ByVal Sel As Selection) ' get out as fast as possible if not in table If Not Sel.Information(wdWithInTable) Then Exit Sub With Sel.Cells(1) ' work only on the rightmost column If .ColumnIndex = Sel.Tables(1).Columns.Count Then ' shade it pink if value is negative, otherwise green If (.Range.Characters(1) = "-") Or _ (.Range.Characters(1) = "(") Then .Shading.BackgroundPatternColorIndex = wdRed Else .Shading.BackgroundPatternColorIndex = wdBrightGreen End If End If End With End Sub -- Regards, Jay Freedman Microsoft Word MVP FAQ: http://word.mvps.org Email cannot be acknowledged; please post all follow-ups to the newsgroup so all may benefit. On Sat, 1 Jul 2006 09:52:32 +1000, "Jezebel" wrote: You could put a macrobutton field in each field, attached to a macro that changes the cell color. But it seems a lot of work for not much benefit. "mfitz" wrote in message roups.com... I am trying to help a colleague with a checklist they have created in Microsoft Word 2003. We are trying to color code the table so that when the document is opened, all the cells are clear (empty), but when someone clicks in a particular cell of a table, the correct color shows up. Is there a way to get color to appear when you click in a cell in an MS Word 2003 table? Thank you for your help. |
#4
![]()
Posted to microsoft.public.word.formatting.longdocs
|
|||
|
|||
![]()
Thank you for the assistance. Unfortunately, I must say I am not sure
how to find the "ThisDocument module of the template". If someone could help me get there, that would be terrific. However, for a little more detail, here is what I am trying to do: There is a table that has rows of comments and/or questions. Next to each comment or question are 3 columns with the headers "Green" "Yellow" "Red", in that order (1 per column). What we are trying to do is have the color of the cell change to the heading color of that particular column once someone clicks on it. Thank you for any and all help you can offer. Mary Jay Freedman wrote: Another way is to write a DocumentSelectionChange event procedure in the template for the checklist. You haven't said what the "correct color" is, or how to decide which color is "correct", so I can't provide an exact solution. Here's an example, though. Put this code in the ThisDocument module of the template and see how it works. Then you can modify the logic in the event procedure, or post back and explain exactly what you want to happen and we can write the code. Option Explicit Private WithEvents wdApp As Word.Application Private Sub Document_New() 'assign Word to the application variable If wdApp Is Nothing Then Set wdApp = ThisDocument.Application End If End Sub Private Sub Document_Open() 'assign Word to the application variable If wdApp Is Nothing Then Set wdApp = ThisDocument.Application End If End Sub Private Sub wdApp_WindowSelectionChange(ByVal Sel As Selection) ' get out as fast as possible if not in table If Not Sel.Information(wdWithInTable) Then Exit Sub With Sel.Cells(1) ' work only on the rightmost column If .ColumnIndex = Sel.Tables(1).Columns.Count Then ' shade it pink if value is negative, otherwise green If (.Range.Characters(1) = "-") Or _ (.Range.Characters(1) = "(") Then .Shading.BackgroundPatternColorIndex = wdRed Else .Shading.BackgroundPatternColorIndex = wdBrightGreen End If End If End With End Sub -- Regards, Jay Freedman Microsoft Word MVP FAQ: http://word.mvps.org Email cannot be acknowledged; please post all follow-ups to the newsgroup so all may benefit. On Sat, 1 Jul 2006 09:52:32 +1000, "Jezebel" wrote: You could put a macrobutton field in each field, attached to a macro that changes the cell color. But it seems a lot of work for not much benefit. "mfitz" wrote in message roups.com... I am trying to help a colleague with a checklist they have created in Microsoft Word 2003. We are trying to color code the table so that when the document is opened, all the cells are clear (empty), but when someone clicks in a particular cell of a table, the correct color shows up. Is there a way to get color to appear when you click in a cell in an MS Word 2003 table? Thank you for your help. |
#5
![]()
Posted to microsoft.public.word.formatting.longdocs
|
|||
|
|||
![]()
Hi Mary,
Step by step: 1. I assume you're working in a document (a file whose name has a .doc extension). Use the File Save As command and set the "Save as type" box at the bottom of the dialog to "Document Template (*.dot)". The folder automatically changes to your Templates folder. Save the template there with an appropriate name. 2. Press Alt+F11 to open the macro editor. On the left side there should be a pane with a tree view showing the open templates (if not, click View Project Explorer). One of the icons in the tree will be labeled with the name of the template. 3. Expand the icon for the template (click the little plus sign next to it if necessary). There will be a sub-item labeled Microsoft Word Objects and, under that, one labeled ThisDocument. Double-click the ThisDocument icon. You should get a large empty pane to the right. 4. Copy the following code (which I've altered to match the behavior you described) and paste it into the large empty pane. 5. Save the template and close it. 6. Click File New. If you get a task pane on the right, choose Templates On My Computer. Find the template in the list and double-click it to make a new document based on the template. Clicking in any cell in the last three columns of the table will change the background color from blank to the proper color for that column, and clicking it again will change it back to blank. Option Explicit Private WithEvents wdApp As Word.Application Private Sub Document_New() 'assign Word to the application variable If wdApp Is Nothing Then Set wdApp = ThisDocument.Application End If End Sub Private Sub Document_Open() 'assign Word to the application variable If wdApp Is Nothing Then Set wdApp = ThisDocument.Application End If End Sub Private Sub wdApp_WindowSelectionChange(ByVal Sel As Selection) ' get out as fast as possible if not in table If Not Sel.Information(wdWithInTable) Then Exit Sub With Sel.Cells(1) ' work only on the rightmost three columns Select Case .ColumnIndex Case Sel.Tables(1).Columns.Count - 2: ' green If .Shading.BackgroundPatternColorIndex wdAuto Then .Shading.BackgroundPatternColorIndex = wdAuto Else .Shading.BackgroundPatternColorIndex = wdBrightGreen End If Case Sel.Tables(1).Columns.Count - 1: ' yellow If .Shading.BackgroundPatternColorIndex wdAuto Then .Shading.BackgroundPatternColorIndex = wdAuto Else .Shading.BackgroundPatternColorIndex = wdYellow End If Case Sel.Tables(1).Columns.Count: 'red If .Shading.BackgroundPatternColorIndex wdAuto Then .Shading.BackgroundPatternColorIndex = wdAuto Else .Shading.BackgroundPatternColorIndex = wdRed End If End Select End With End Sub -- Regards, Jay Freedman Microsoft Word MVP FAQ: http://word.mvps.org Email cannot be acknowledged; please post all follow-ups to the newsgroup so all may benefit. On 5 Jul 2006 08:00:45 -0700, "mfitz" wrote: Thank you for the assistance. Unfortunately, I must say I am not sure how to find the "ThisDocument module of the template". If someone could help me get there, that would be terrific. However, for a little more detail, here is what I am trying to do: There is a table that has rows of comments and/or questions. Next to each comment or question are 3 columns with the headers "Green" "Yellow" "Red", in that order (1 per column). What we are trying to do is have the color of the cell change to the heading color of that particular column once someone clicks on it. Thank you for any and all help you can offer. Mary Jay Freedman wrote: Another way is to write a DocumentSelectionChange event procedure in the template for the checklist. You haven't said what the "correct color" is, or how to decide which color is "correct", so I can't provide an exact solution. Here's an example, though. Put this code in the ThisDocument module of the template and see how it works. Then you can modify the logic in the event procedure, or post back and explain exactly what you want to happen and we can write the code. Option Explicit Private WithEvents wdApp As Word.Application Private Sub Document_New() 'assign Word to the application variable If wdApp Is Nothing Then Set wdApp = ThisDocument.Application End If End Sub Private Sub Document_Open() 'assign Word to the application variable If wdApp Is Nothing Then Set wdApp = ThisDocument.Application End If End Sub Private Sub wdApp_WindowSelectionChange(ByVal Sel As Selection) ' get out as fast as possible if not in table If Not Sel.Information(wdWithInTable) Then Exit Sub With Sel.Cells(1) ' work only on the rightmost column If .ColumnIndex = Sel.Tables(1).Columns.Count Then ' shade it pink if value is negative, otherwise green If (.Range.Characters(1) = "-") Or _ (.Range.Characters(1) = "(") Then .Shading.BackgroundPatternColorIndex = wdRed Else .Shading.BackgroundPatternColorIndex = wdBrightGreen End If End If End With End Sub -- Regards, Jay Freedman Microsoft Word MVP FAQ: http://word.mvps.org Email cannot be acknowledged; please post all follow-ups to the newsgroup so all may benefit. On Sat, 1 Jul 2006 09:52:32 +1000, "Jezebel" wrote: You could put a macrobutton field in each field, attached to a macro that changes the cell color. But it seems a lot of work for not much benefit. "mfitz" wrote in message roups.com... I am trying to help a colleague with a checklist they have created in Microsoft Word 2003. We are trying to color code the table so that when the document is opened, all the cells are clear (empty), but when someone clicks in a particular cell of a table, the correct color shows up. Is there a way to get color to appear when you click in a cell in an MS Word 2003 table? Thank you for your help. |
#6
![]()
Posted to microsoft.public.word.formatting.longdocs
|
|||
|
|||
![]()
Jay,
Thank you so much! The macro works like a charm! Mary Jay Freedman wrote: Hi Mary, Step by step: 1. I assume you're working in a document (a file whose name has a .doc extension). Use the File Save As command and set the "Save as type" box at the bottom of the dialog to "Document Template (*.dot)". The folder automatically changes to your Templates folder. Save the template there with an appropriate name. 2. Press Alt+F11 to open the macro editor. On the left side there should be a pane with a tree view showing the open templates (if not, click View Project Explorer). One of the icons in the tree will be labeled with the name of the template. 3. Expand the icon for the template (click the little plus sign next to it if necessary). There will be a sub-item labeled Microsoft Word Objects and, under that, one labeled ThisDocument. Double-click the ThisDocument icon. You should get a large empty pane to the right. 4. Copy the following code (which I've altered to match the behavior you described) and paste it into the large empty pane. 5. Save the template and close it. 6. Click File New. If you get a task pane on the right, choose Templates On My Computer. Find the template in the list and double-click it to make a new document based on the template. Clicking in any cell in the last three columns of the table will change the background color from blank to the proper color for that column, and clicking it again will change it back to blank. Option Explicit Private WithEvents wdApp As Word.Application Private Sub Document_New() 'assign Word to the application variable If wdApp Is Nothing Then Set wdApp = ThisDocument.Application End If End Sub Private Sub Document_Open() 'assign Word to the application variable If wdApp Is Nothing Then Set wdApp = ThisDocument.Application End If End Sub Private Sub wdApp_WindowSelectionChange(ByVal Sel As Selection) ' get out as fast as possible if not in table If Not Sel.Information(wdWithInTable) Then Exit Sub With Sel.Cells(1) ' work only on the rightmost three columns Select Case .ColumnIndex Case Sel.Tables(1).Columns.Count - 2: ' green If .Shading.BackgroundPatternColorIndex wdAuto Then .Shading.BackgroundPatternColorIndex = wdAuto Else .Shading.BackgroundPatternColorIndex = wdBrightGreen End If Case Sel.Tables(1).Columns.Count - 1: ' yellow If .Shading.BackgroundPatternColorIndex wdAuto Then .Shading.BackgroundPatternColorIndex = wdAuto Else .Shading.BackgroundPatternColorIndex = wdYellow End If Case Sel.Tables(1).Columns.Count: 'red If .Shading.BackgroundPatternColorIndex wdAuto Then .Shading.BackgroundPatternColorIndex = wdAuto Else .Shading.BackgroundPatternColorIndex = wdRed End If End Select End With End Sub -- Regards, Jay Freedman Microsoft Word MVP FAQ: http://word.mvps.org Email cannot be acknowledged; please post all follow-ups to the newsgroup so all may benefit. On 5 Jul 2006 08:00:45 -0700, "mfitz" wrote: Thank you for the assistance. Unfortunately, I must say I am not sure how to find the "ThisDocument module of the template". If someone could help me get there, that would be terrific. However, for a little more detail, here is what I am trying to do: There is a table that has rows of comments and/or questions. Next to each comment or question are 3 columns with the headers "Green" "Yellow" "Red", in that order (1 per column). What we are trying to do is have the color of the cell change to the heading color of that particular column once someone clicks on it. Thank you for any and all help you can offer. Mary Jay Freedman wrote: Another way is to write a DocumentSelectionChange event procedure in the template for the checklist. You haven't said what the "correct color" is, or how to decide which color is "correct", so I can't provide an exact solution. Here's an example, though. Put this code in the ThisDocument module of the template and see how it works. Then you can modify the logic in the event procedure, or post back and explain exactly what you want to happen and we can write the code. Option Explicit Private WithEvents wdApp As Word.Application Private Sub Document_New() 'assign Word to the application variable If wdApp Is Nothing Then Set wdApp = ThisDocument.Application End If End Sub Private Sub Document_Open() 'assign Word to the application variable If wdApp Is Nothing Then Set wdApp = ThisDocument.Application End If End Sub Private Sub wdApp_WindowSelectionChange(ByVal Sel As Selection) ' get out as fast as possible if not in table If Not Sel.Information(wdWithInTable) Then Exit Sub With Sel.Cells(1) ' work only on the rightmost column If .ColumnIndex = Sel.Tables(1).Columns.Count Then ' shade it pink if value is negative, otherwise green If (.Range.Characters(1) = "-") Or _ (.Range.Characters(1) = "(") Then .Shading.BackgroundPatternColorIndex = wdRed Else .Shading.BackgroundPatternColorIndex = wdBrightGreen End If End If End With End Sub -- Regards, Jay Freedman Microsoft Word MVP FAQ: http://word.mvps.org Email cannot be acknowledged; please post all follow-ups to the newsgroup so all may benefit. On Sat, 1 Jul 2006 09:52:32 +1000, "Jezebel" wrote: You could put a macrobutton field in each field, attached to a macro that changes the cell color. But it seems a lot of work for not much benefit. "mfitz" wrote in message roups.com... I am trying to help a colleague with a checklist they have created in Microsoft Word 2003. We are trying to color code the table so that when the document is opened, all the cells are clear (empty), but when someone clicks in a particular cell of a table, the correct color shows up. Is there a way to get color to appear when you click in a cell in an MS Word 2003 table? Thank you for your help. |
#7
![]()
Posted to microsoft.public.word.formatting.longdocs
|
|||
|
|||
![]()
I hate to say it, but as wonderful as the macro is, no one else can see
it. I am able to open up the document on my computer, but when I try to send it on to others, for some reason the coding doesn't get sent along with it. The other users just see the initial document, and no color changes occur. Is there something I may have missed that would cause this? Thank you again, Mary Jay Freedman wrote: Hi Mary, Step by step: 1. I assume you're working in a document (a file whose name has a .doc extension). Use the File Save As command and set the "Save as type" box at the bottom of the dialog to "Document Template (*.dot)". The folder automatically changes to your Templates folder. Save the template there with an appropriate name. 2. Press Alt+F11 to open the macro editor. On the left side there should be a pane with a tree view showing the open templates (if not, click View Project Explorer). One of the icons in the tree will be labeled with the name of the template. 3. Expand the icon for the template (click the little plus sign next to it if necessary). There will be a sub-item labeled Microsoft Word Objects and, under that, one labeled ThisDocument. Double-click the ThisDocument icon. You should get a large empty pane to the right. 4. Copy the following code (which I've altered to match the behavior you described) and paste it into the large empty pane. 5. Save the template and close it. 6. Click File New. If you get a task pane on the right, choose Templates On My Computer. Find the template in the list and double-click it to make a new document based on the template. Clicking in any cell in the last three columns of the table will change the background color from blank to the proper color for that column, and clicking it again will change it back to blank. Option Explicit Private WithEvents wdApp As Word.Application Private Sub Document_New() 'assign Word to the application variable If wdApp Is Nothing Then Set wdApp = ThisDocument.Application End If End Sub Private Sub Document_Open() 'assign Word to the application variable If wdApp Is Nothing Then Set wdApp = ThisDocument.Application End If End Sub Private Sub wdApp_WindowSelectionChange(ByVal Sel As Selection) ' get out as fast as possible if not in table If Not Sel.Information(wdWithInTable) Then Exit Sub With Sel.Cells(1) ' work only on the rightmost three columns Select Case .ColumnIndex Case Sel.Tables(1).Columns.Count - 2: ' green If .Shading.BackgroundPatternColorIndex wdAuto Then .Shading.BackgroundPatternColorIndex = wdAuto Else .Shading.BackgroundPatternColorIndex = wdBrightGreen End If Case Sel.Tables(1).Columns.Count - 1: ' yellow If .Shading.BackgroundPatternColorIndex wdAuto Then .Shading.BackgroundPatternColorIndex = wdAuto Else .Shading.BackgroundPatternColorIndex = wdYellow End If Case Sel.Tables(1).Columns.Count: 'red If .Shading.BackgroundPatternColorIndex wdAuto Then .Shading.BackgroundPatternColorIndex = wdAuto Else .Shading.BackgroundPatternColorIndex = wdRed End If End Select End With End Sub -- Regards, Jay Freedman Microsoft Word MVP FAQ: http://word.mvps.org Email cannot be acknowledged; please post all follow-ups to the newsgroup so all may benefit. On 5 Jul 2006 08:00:45 -0700, "mfitz" wrote: Thank you for the assistance. Unfortunately, I must say I am not sure how to find the "ThisDocument module of the template". If someone could help me get there, that would be terrific. However, for a little more detail, here is what I am trying to do: There is a table that has rows of comments and/or questions. Next to each comment or question are 3 columns with the headers "Green" "Yellow" "Red", in that order (1 per column). What we are trying to do is have the color of the cell change to the heading color of that particular column once someone clicks on it. Thank you for any and all help you can offer. Mary Jay Freedman wrote: Another way is to write a DocumentSelectionChange event procedure in the template for the checklist. You haven't said what the "correct color" is, or how to decide which color is "correct", so I can't provide an exact solution. Here's an example, though. Put this code in the ThisDocument module of the template and see how it works. Then you can modify the logic in the event procedure, or post back and explain exactly what you want to happen and we can write the code. Option Explicit Private WithEvents wdApp As Word.Application Private Sub Document_New() 'assign Word to the application variable If wdApp Is Nothing Then Set wdApp = ThisDocument.Application End If End Sub Private Sub Document_Open() 'assign Word to the application variable If wdApp Is Nothing Then Set wdApp = ThisDocument.Application End If End Sub Private Sub wdApp_WindowSelectionChange(ByVal Sel As Selection) ' get out as fast as possible if not in table If Not Sel.Information(wdWithInTable) Then Exit Sub With Sel.Cells(1) ' work only on the rightmost column If .ColumnIndex = Sel.Tables(1).Columns.Count Then ' shade it pink if value is negative, otherwise green If (.Range.Characters(1) = "-") Or _ (.Range.Characters(1) = "(") Then .Shading.BackgroundPatternColorIndex = wdRed Else .Shading.BackgroundPatternColorIndex = wdBrightGreen End If End If End With End Sub -- Regards, Jay Freedman Microsoft Word MVP FAQ: http://word.mvps.org Email cannot be acknowledged; please post all follow-ups to the newsgroup so all may benefit. On Sat, 1 Jul 2006 09:52:32 +1000, "Jezebel" wrote: You could put a macrobutton field in each field, attached to a macro that changes the cell color. But it seems a lot of work for not much benefit. "mfitz" wrote in message roups.com... I am trying to help a colleague with a checklist they have created in Microsoft Word 2003. We are trying to color code the table so that when the document is opened, all the cells are clear (empty), but when someone clicks in a particular cell of a table, the correct color shows up. Is there a way to get color to appear when you click in a cell in an MS Word 2003 table? Thank you for your help. |
Reply |
Thread Tools | |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Word 97 in Windows XP to maintain formatting | Microsoft Word Help | |||
take yet another lesson from wordperfect "reveal codes" | Microsoft Word Help | |||
I need to extend a table in word (click last cell?) | Tables | |||
Word should allow to 'divide' page by 3 or 4, not just 2 | Page Layout | |||
WP merge file to Word | Tables |