Setting Tag Property of UserForm TextBox
I need some help with setting the Tag Property of a TextBox in a UserForm when the form activates and then checking to make sure that the Text Boxes with that Tag
match the conditions when the Save Button is clicked. I believe the issue to be with how I am setting the tag property when the UserForm activates, but I wouldnt be surprised if there is something wrong in the logic of the code when the UserForm Activates. Thank you in advance for your assistance.
Code for when the UserForm Activates:
Private Sub UserForm_Activate()
Dim i As Long
For Each ctrl In UWchecklist.Controls
Select Case TypeName(ctrl)
Case Is = "ComboBox"
If ctrl.Tag = "yesno" Then
ctrl.RowSource = "YesNo"
End If
ctrl.Font.Size = 10
Case Is = "TextBox"
ctrl.Font.Size = 10
For i = 1 To 30
If ctrl.Name = ("uwtxTB" & i) Then
ctrl.Tag = "Check"
End If
Next i
End Select
Next ctrl
End Sub
Code for when the Save Button is Clicked:
Private Sub SandCont_Click()
For Each ctrl In UWchecklist.Controls
If TypeName(ctrl) = "TextBox" Then
If ctrl.Tag = "Check" Then
If Not ctrl.Value = vbNullString And Not ctrl.Value = "X" Or Not ctrl.Value = "NA" Then
ctrl.Value = vbNullString
ctrl.BackColor = vbRed
MsgBox "Only a value of " & "X " & "or " & "NA " & "is allowed.", 0, "DATA ENTRY ERROR"
End If
End If
End If
Next ctrl
End Sub
vba excel-2013
add a comment |
I need some help with setting the Tag Property of a TextBox in a UserForm when the form activates and then checking to make sure that the Text Boxes with that Tag
match the conditions when the Save Button is clicked. I believe the issue to be with how I am setting the tag property when the UserForm activates, but I wouldnt be surprised if there is something wrong in the logic of the code when the UserForm Activates. Thank you in advance for your assistance.
Code for when the UserForm Activates:
Private Sub UserForm_Activate()
Dim i As Long
For Each ctrl In UWchecklist.Controls
Select Case TypeName(ctrl)
Case Is = "ComboBox"
If ctrl.Tag = "yesno" Then
ctrl.RowSource = "YesNo"
End If
ctrl.Font.Size = 10
Case Is = "TextBox"
ctrl.Font.Size = 10
For i = 1 To 30
If ctrl.Name = ("uwtxTB" & i) Then
ctrl.Tag = "Check"
End If
Next i
End Select
Next ctrl
End Sub
Code for when the Save Button is Clicked:
Private Sub SandCont_Click()
For Each ctrl In UWchecklist.Controls
If TypeName(ctrl) = "TextBox" Then
If ctrl.Tag = "Check" Then
If Not ctrl.Value = vbNullString And Not ctrl.Value = "X" Or Not ctrl.Value = "NA" Then
ctrl.Value = vbNullString
ctrl.BackColor = vbRed
MsgBox "Only a value of " & "X " & "or " & "NA " & "is allowed.", 0, "DATA ENTRY ERROR"
End If
End If
End If
Next ctrl
End Sub
vba excel-2013
1
YourIf
condition is completely tortured. Based on theMsgBox
, it should be more likeIf ctrl.Value <> "X" And ctrl.Value <> "NA" Then
.
– Comintern
Nov 14 '18 at 21:14
Yeah I noticed that and changed it completely. See answer below. Thanks.
– Zack E
Nov 14 '18 at 21:55
add a comment |
I need some help with setting the Tag Property of a TextBox in a UserForm when the form activates and then checking to make sure that the Text Boxes with that Tag
match the conditions when the Save Button is clicked. I believe the issue to be with how I am setting the tag property when the UserForm activates, but I wouldnt be surprised if there is something wrong in the logic of the code when the UserForm Activates. Thank you in advance for your assistance.
Code for when the UserForm Activates:
Private Sub UserForm_Activate()
Dim i As Long
For Each ctrl In UWchecklist.Controls
Select Case TypeName(ctrl)
Case Is = "ComboBox"
If ctrl.Tag = "yesno" Then
ctrl.RowSource = "YesNo"
End If
ctrl.Font.Size = 10
Case Is = "TextBox"
ctrl.Font.Size = 10
For i = 1 To 30
If ctrl.Name = ("uwtxTB" & i) Then
ctrl.Tag = "Check"
End If
Next i
End Select
Next ctrl
End Sub
Code for when the Save Button is Clicked:
Private Sub SandCont_Click()
For Each ctrl In UWchecklist.Controls
If TypeName(ctrl) = "TextBox" Then
If ctrl.Tag = "Check" Then
If Not ctrl.Value = vbNullString And Not ctrl.Value = "X" Or Not ctrl.Value = "NA" Then
ctrl.Value = vbNullString
ctrl.BackColor = vbRed
MsgBox "Only a value of " & "X " & "or " & "NA " & "is allowed.", 0, "DATA ENTRY ERROR"
End If
End If
End If
Next ctrl
End Sub
vba excel-2013
I need some help with setting the Tag Property of a TextBox in a UserForm when the form activates and then checking to make sure that the Text Boxes with that Tag
match the conditions when the Save Button is clicked. I believe the issue to be with how I am setting the tag property when the UserForm activates, but I wouldnt be surprised if there is something wrong in the logic of the code when the UserForm Activates. Thank you in advance for your assistance.
Code for when the UserForm Activates:
Private Sub UserForm_Activate()
Dim i As Long
For Each ctrl In UWchecklist.Controls
Select Case TypeName(ctrl)
Case Is = "ComboBox"
If ctrl.Tag = "yesno" Then
ctrl.RowSource = "YesNo"
End If
ctrl.Font.Size = 10
Case Is = "TextBox"
ctrl.Font.Size = 10
For i = 1 To 30
If ctrl.Name = ("uwtxTB" & i) Then
ctrl.Tag = "Check"
End If
Next i
End Select
Next ctrl
End Sub
Code for when the Save Button is Clicked:
Private Sub SandCont_Click()
For Each ctrl In UWchecklist.Controls
If TypeName(ctrl) = "TextBox" Then
If ctrl.Tag = "Check" Then
If Not ctrl.Value = vbNullString And Not ctrl.Value = "X" Or Not ctrl.Value = "NA" Then
ctrl.Value = vbNullString
ctrl.BackColor = vbRed
MsgBox "Only a value of " & "X " & "or " & "NA " & "is allowed.", 0, "DATA ENTRY ERROR"
End If
End If
End If
Next ctrl
End Sub
vba excel-2013
vba excel-2013
asked Nov 14 '18 at 21:03
Zack EZack E
9910
9910
1
YourIf
condition is completely tortured. Based on theMsgBox
, it should be more likeIf ctrl.Value <> "X" And ctrl.Value <> "NA" Then
.
– Comintern
Nov 14 '18 at 21:14
Yeah I noticed that and changed it completely. See answer below. Thanks.
– Zack E
Nov 14 '18 at 21:55
add a comment |
1
YourIf
condition is completely tortured. Based on theMsgBox
, it should be more likeIf ctrl.Value <> "X" And ctrl.Value <> "NA" Then
.
– Comintern
Nov 14 '18 at 21:14
Yeah I noticed that and changed it completely. See answer below. Thanks.
– Zack E
Nov 14 '18 at 21:55
1
1
Your
If
condition is completely tortured. Based on the MsgBox
, it should be more like If ctrl.Value <> "X" And ctrl.Value <> "NA" Then
.– Comintern
Nov 14 '18 at 21:14
Your
If
condition is completely tortured. Based on the MsgBox
, it should be more like If ctrl.Value <> "X" And ctrl.Value <> "NA" Then
.– Comintern
Nov 14 '18 at 21:14
Yeah I noticed that and changed it completely. See answer below. Thanks.
– Zack E
Nov 14 '18 at 21:55
Yeah I noticed that and changed it completely. See answer below. Thanks.
– Zack E
Nov 14 '18 at 21:55
add a comment |
1 Answer
1
active
oldest
votes
I figured it out; the issue wasn't in the UserForm Activate
. It was in the Save and Cont Code. I dont think I was looking at enough of the If
conditions, so I set up a Select Case
and it works now. It's probably not the most elegant solution.
For Each ctrl In UWchecklist.Controls
If ctrl.Tag = "Check" Then
Select Case ctrl.Value
Case Is = ""
ctrl.BackColor = vbWhite
Case Is = "X"
ctrl.BackColor = vbWhite
ctrl.Text = "X"
Case Is = "NA"
ctrl.BackColor = vbWhite
ctrl.Text = "NA"
Case Is <> "X"
ctrl.Value = vbNullString
ctrl.BackColor = vbRed
Case Is <> "NA"
ctrl.Value = vbNullString
ctrl.BackColor = vbRed
End Select
End If
Next ctrl
MsgBox "Only a value of " & "X " & "or " & "NA " & "is allowed.", 0, "DATA ENTRY ERROR"
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53308668%2fsetting-tag-property-of-userform-textbox%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
I figured it out; the issue wasn't in the UserForm Activate
. It was in the Save and Cont Code. I dont think I was looking at enough of the If
conditions, so I set up a Select Case
and it works now. It's probably not the most elegant solution.
For Each ctrl In UWchecklist.Controls
If ctrl.Tag = "Check" Then
Select Case ctrl.Value
Case Is = ""
ctrl.BackColor = vbWhite
Case Is = "X"
ctrl.BackColor = vbWhite
ctrl.Text = "X"
Case Is = "NA"
ctrl.BackColor = vbWhite
ctrl.Text = "NA"
Case Is <> "X"
ctrl.Value = vbNullString
ctrl.BackColor = vbRed
Case Is <> "NA"
ctrl.Value = vbNullString
ctrl.BackColor = vbRed
End Select
End If
Next ctrl
MsgBox "Only a value of " & "X " & "or " & "NA " & "is allowed.", 0, "DATA ENTRY ERROR"
add a comment |
I figured it out; the issue wasn't in the UserForm Activate
. It was in the Save and Cont Code. I dont think I was looking at enough of the If
conditions, so I set up a Select Case
and it works now. It's probably not the most elegant solution.
For Each ctrl In UWchecklist.Controls
If ctrl.Tag = "Check" Then
Select Case ctrl.Value
Case Is = ""
ctrl.BackColor = vbWhite
Case Is = "X"
ctrl.BackColor = vbWhite
ctrl.Text = "X"
Case Is = "NA"
ctrl.BackColor = vbWhite
ctrl.Text = "NA"
Case Is <> "X"
ctrl.Value = vbNullString
ctrl.BackColor = vbRed
Case Is <> "NA"
ctrl.Value = vbNullString
ctrl.BackColor = vbRed
End Select
End If
Next ctrl
MsgBox "Only a value of " & "X " & "or " & "NA " & "is allowed.", 0, "DATA ENTRY ERROR"
add a comment |
I figured it out; the issue wasn't in the UserForm Activate
. It was in the Save and Cont Code. I dont think I was looking at enough of the If
conditions, so I set up a Select Case
and it works now. It's probably not the most elegant solution.
For Each ctrl In UWchecklist.Controls
If ctrl.Tag = "Check" Then
Select Case ctrl.Value
Case Is = ""
ctrl.BackColor = vbWhite
Case Is = "X"
ctrl.BackColor = vbWhite
ctrl.Text = "X"
Case Is = "NA"
ctrl.BackColor = vbWhite
ctrl.Text = "NA"
Case Is <> "X"
ctrl.Value = vbNullString
ctrl.BackColor = vbRed
Case Is <> "NA"
ctrl.Value = vbNullString
ctrl.BackColor = vbRed
End Select
End If
Next ctrl
MsgBox "Only a value of " & "X " & "or " & "NA " & "is allowed.", 0, "DATA ENTRY ERROR"
I figured it out; the issue wasn't in the UserForm Activate
. It was in the Save and Cont Code. I dont think I was looking at enough of the If
conditions, so I set up a Select Case
and it works now. It's probably not the most elegant solution.
For Each ctrl In UWchecklist.Controls
If ctrl.Tag = "Check" Then
Select Case ctrl.Value
Case Is = ""
ctrl.BackColor = vbWhite
Case Is = "X"
ctrl.BackColor = vbWhite
ctrl.Text = "X"
Case Is = "NA"
ctrl.BackColor = vbWhite
ctrl.Text = "NA"
Case Is <> "X"
ctrl.Value = vbNullString
ctrl.BackColor = vbRed
Case Is <> "NA"
ctrl.Value = vbNullString
ctrl.BackColor = vbRed
End Select
End If
Next ctrl
MsgBox "Only a value of " & "X " & "or " & "NA " & "is allowed.", 0, "DATA ENTRY ERROR"
edited Nov 14 '18 at 22:00
answered Nov 14 '18 at 21:54
Zack EZack E
9910
9910
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53308668%2fsetting-tag-property-of-userform-textbox%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
Your
If
condition is completely tortured. Based on theMsgBox
, it should be more likeIf ctrl.Value <> "X" And ctrl.Value <> "NA" Then
.– Comintern
Nov 14 '18 at 21:14
Yeah I noticed that and changed it completely. See answer below. Thanks.
– Zack E
Nov 14 '18 at 21:55