![]() |
|
|
|
#1
|
|||
|
|||
|
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 |