#1
|
|||
|
|||
Check box form field automatically checked
I read some tutorials for check boxes, so i realize its possible to work with them in different ways, like adding a macro to a group of check boxes so only 1 can be checked at the time.
What i trying to do its adding a check box that gets activated automatically when i check another box myself, if it its possible, adding a single check box that gets activated when at least one of another 2 check boxes are checked or both. Is this possible? if it is please bring me your help, masters of word. I don't know if this its a simple task but i didn't get done myself after a lot of time of research Thanks in advance. Last edited by Charles Kenyon; 09-06-2015 at 05:38 PM. Reason: Mark as solved |
#2
|
||||
|
||||
Are you using Form Fields or Content Controls?
You will need to use a macro to control the logic but the coding will be pretty straightforward.
__________________
Andrew Lockton Chrysalis Design, Melbourne Australia |
#3
|
|||
|
|||
Im using Form fields.
|
#4
|
||||
|
||||
Assuming you have three checkboxes to test your code might work along these lines
Code:
Sub SetCheck() Dim bChecked As Boolean bChecked = False With ActiveDocument If .FormFields("Check1").CheckBox.Value Then bChecked = True If .FormFields("Check2").CheckBox.Value Then bChecked = True If .FormFields("Check3").CheckBox.Value Then bChecked = True .FormFields("Check4").CheckBox.Value = bChecked End With End Sub
__________________
Andrew Lockton Chrysalis Design, Melbourne Australia |
#5
|
|||
|
|||
Thanks for the code Guessed, but i should have been more specific, ill add a document with the checkboxes, and the other macro im using
Im already using another macro in my first 2 checkboxes, all i want its mark the "PV" box when any of the "Yes" boxes in my document its checked, i dont know if the macro it already has dont let me use your macro properly. I need both of the macros, one to prevent both "yes" and "no" box to be checked and the other one to automatically check the "PV" box Code:
Option Explicit Sub ExclusiveCheckBoxes() Dim strTemp As String Dim oFF As FormField Dim strGrpID As String Dim strSeqID As String Dim i As Long Dim strSeqNext As String strTemp = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" 'Permits up to 26 checkboxes per group Set oFF = Selection.FormFields(1) If oFF.CheckBox.Value = True Then strGrpID = Left(oFF.Name, 8) strSeqID = UCase(Right(oFF.Name, 1)) If strSeqID Like "[A-Z]" Then 'Clear all GroupID ChkBoxes including the CB selected (ensure only one CB in group is selected). For i = 1 To Len(strTemp) strSeqNext = strGrpID & "_" & Mid(strTemp, i, 1) If ActiveDocument.Bookmarks.Exists(strSeqNext) Then ActiveDocument.FormFields(strSeqNext).CheckBox.Value = False End If Next i 'Set the CB that was selected oFF.CheckBox.Value = True End If End If lbl_Exit: Exit Sub End Sub Sub SetCheck() Dim bChecked As Boolean bChecked = False With ActiveDocument If .FormFields("CHK_1234_A").CheckBox.Value Then bChecked = True If .FormFields("CHK_2345_A").CheckBox.Value Then bChecked = True If .FormFields("Check1").CheckBox.Value Then bChecked = True .FormFields("Check1").CheckBox.Value = bChecked End With End Sub |
#6
|
||||
|
||||
You can have them both running easily enough.
Code:
Option Explicit Sub ExclusiveCheckBoxes() Dim strTemp As String Dim oFF As FormField Dim strGrpID As String Dim strSeqID As String Dim i As Long Dim strSeqNext As String strTemp = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" 'Permits up to 26 checkboxes per group Set oFF = Selection.FormFields(1) If oFF.CheckBox.Value = True Then strGrpID = Left(oFF.Name, 8) strSeqID = UCase(Right(oFF.Name, 1)) If strSeqID Like "[A-Z]" Then 'Clear all GroupID ChkBoxes including the CB selected (ensure only one CB in group is selected). For i = 1 To Len(strTemp) strSeqNext = strGrpID & "_" & Mid(strTemp, i, 1) If ActiveDocument.Bookmarks.Exists(strSeqNext) Then ActiveDocument.FormFields(strSeqNext).CheckBox.Value = False End If Next i 'Set the CB that was selected oFF.CheckBox.Value = True End If End If SetCheck lbl_Exit: Exit Sub End Sub Sub SetCheck() Dim bChecked As Boolean bChecked = False With ActiveDocument If .FormFields("CHK_1234_A").CheckBox.Value Then bChecked = True If .FormFields("CHK_2345_A").CheckBox.Value Then bChecked = True If Not .FormFields("Check1").CheckBox.Value Then .FormFields("Check1").CheckBox.Value = bChecked End If End With End Sub
__________________
Andrew Lockton Chrysalis Design, Melbourne Australia |
#7
|
|||
|
|||
You might want to look at Greg Maxey's page.
Add Interactive Toggle Objects to Simple Word Documents |
#8
|
|||
|
|||
First of all, i apologize for taking so long in reply to your both answers, thanks alot for the help.
Working just perfect by the way c: |
#9
|
|||
|
|||
Hello people
I was tempted to ask for help, since i end up trying to create some conditions a little more specific but after many hours of researching and reading i learned to catch my own fish thanks to you all people c: I was able to create the following code: Code:
Option Explicit Sub ExclusiveCheckBoxes() Dim strTemp As String Dim oFF As FormField Dim strGrpID As String Dim strSeqID As String Dim i As Long Dim strSeqNext As String strTemp = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" Set oFF = Selection.FormFields(1) If oFF.CheckBox.Value = True Then strGrpID = Left(oFF.Name, 8) strSeqID = UCase(Right(oFF.Name, 1)) If strSeqID Like "[A-Z]" Then 'Clear all GroupID ChkBoxes including the CB selected (ensure only one CB in group is selected). For i = 1 To Len(strTemp) strSeqNext = strGrpID & "_" & Mid(strTemp, i, 1) If ActiveDocument.Bookmarks.Exists(strSeqNext) Then ActiveDocument.FormFields(strSeqNext).CheckBox.Value = False End If Next i 'Set the CB that was selected oFF.CheckBox.Value = True End If End If SetCheck lbl_Exit: Exit Sub End Sub Sub SetCheck() Dim bChecked As Boolean bChecked = False With ActiveDocument If .FormFields("CHK_1234_A").CheckBox.Value Or .FormFields("CHK_2345_A").CheckBox.Value Then .FormFields("PVresult").CheckBox.Value = True Else .FormFields("PVresult").CheckBox.Value = False If Not .FormFields("PVresult").CheckBox.Value Then .FormFields("PVresult").CheckBox.Value = bChecked End If End With End Sub Which allow me to have the following conditions: If at least 1 of the 2 "Yes" Checkbox its market, mark PV box, if no "Yes" box its checked, PV box will be unchecked aswell. If both "No" Boxes are checked, PV box will be unckecked too. Only one box per group can be marked, so you cant have "Yes" and "No" box maked on the same Line. Love you all ppl <3, any tip you guys think that could be useful go ahead, thanks alot for the help. |
Tags |
check boxes |
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Check Box Form Field Book Mark Auto Fill? | zacam87 | Word VBA | 5 | 08-20-2014 02:56 PM |
how to show total of check boxes checked | worder | Word | 16 | 03-10-2014 05:07 PM |
Repeat Spell check in a doc that has already been checked | mawigfie | Word | 1 | 08-22-2012 01:16 PM |
Word Macro That Checks a Check Box Form Field When File Print is Executed | DKerne | Word VBA | 4 | 06-09-2011 11:54 AM |
Form field to automatically be added to header? | razberri | Word VBA | 3 | 02-22-2010 03:48 PM |