Hi I am trying to get the following Macro to work when the checkbox on the userform is not selected. The macro works fine when the checkbox is selected. But when I unselect the checkbox it does not change the value of "E38" to ""
I am also looking for a way for the Checkbox to remain selected once I unload the userform
Private Sub CheckBox_AddBDetails_Click()
If CheckBox_AddBDetails = True Then
Worksheets("Schedule of Supports").Range("E38").Value = TextBox_Name.Value
Else
Worksheets("Schedule of Supports").Range("E38").Value = ""
End If
End Sub
Related
I have a VBA code that checks/unchecks all checkboxes. However I want the code to check/uncheck only the checkboxes that don't a have 'False' written in them in column E5:E150.
Any help would be appreciated, here is my code :
Sub SelectAllSubSector()
Dim cBoxSector As CheckBox
For Each cBoxSector In Worksheets("Input attractivite").CheckBoxes
If Not Intersect(cBoxSector.TopLeftCell, Range("C5:C150")) Is Nothing Then
If cBoxSector.Name <> ActiveSheet.CheckBoxes("Check Box 3").Name Then
cBoxSector.Value = ActiveSheet.CheckBoxes("Check Box 3").Value
End If
End If
Next cBoxSector
End Sub
I am working on an analysis template with a UserForm.
I have macros associated with checkboxes. I want to activate them by clicking the separate analysis command box. The macros are called: graph_dur, graph_ram, dur_calc, ram_calc.
The UserForm allows users to check off the analyses they want, then run calculations with an "Analysis" command button.
Any boxes that are not checked should not run their macros when "Analyze" is clicked.
I understand that when a checkbox is "checked" then it returns "True".
I don't know how to associate the True return with the run of a macro when "Analyze" is activated.
This code is not correct, but attempts to highlight my basic layout.
Private Sub CheckBox1_Click()
If CheckBox1 = True
Then Call.Graph_duration
Else CheckBox1 = False
End If
End Sub
Private Sub CheckBox2_Click()
If CheckBox2 = True
Then Call.Graph_ram
Else CheckBox2 = False
End If
End Sub
Perhaps you mean something like this - it should be attached to your button. If you had lots of checkboxes then this will become inefficient.
Private Button_Click()
If CheckBox1 Then
Graph_Duration
End If
If CheckBox2 Then
Graph_ram
End If
'etc
End Sub
The VBA code below is meant to allow only certain users to tick & un-tick a checkbox. However, the problem is that if I check the box and then close the spreadsheet, when I re-open the excel file the 'tick' is no longer there. It's like the code does not save the 'tick' action. Basically, if I check the box I want that to stay like that, even after closing the spreadsheet. In the VBA code below i added ThisWorkbook.Save in order to save the "Tick" action but it simply saves the spreadsheet instead of saving the "Tick" in the check box. Could you please advise what's wrong in my code? I've asked this question before but unfortunately nobody seemed to be able to find a solution. thanks so much
Private Sub CheckBox1_Click()
If CheckBox1.Value = True Then
If (UCase(Environ("username")) = "TESTNAME") Then
'Do nothing
Else
'Uncheck because user not matching
CheckBox1.Value = False
MsgBox ("You are not authorized to tick this box.")
End If
End If
ThisWorkbook.Save
End Sub
on my sheet1 I have a commandButton (bShow) and in the code behind:
Private Sub bShow_Click()
UserForm1.Show
End Sub
then I have a UserForm named UserForm1 with a checkbox (named checkBox1) and a button named saveButton, and with a code behind:
Private Sub saveButton_Click()
Sheets(1).Cells(1, 1).Value = UserForm1.CheckBox1.Value
End Sub
with this setup in cell("A1") appears TRUE or FALSE depending on the checkbox state
i hope it helps
EDIT1:
by opening the Form reading the value from the sheet:
Private Sub UserForm_Activate()
UserForm1.CheckBox1.Value = Sheets(1).Cells(1, 1).Value
End Sub
EDIT2:
be aware of error handling (eg.: what if cell value is neither TRUE nor FALSE) But that I leave to you
im having some weird things happen with some code in excel
Private Sub CommandButton2_Click()
Dim thiswb As Workbook
Set thiswb = ActiveWorkbook
Call EnterDataToSS(thiswb)
Me.Hide
BeamNoFind.Show vbModal
End Sub
the called code basically drops some values into a spreadsheet.
any left over values are populated to LISTBOX1 on BeamNoFind Userform.
Then on the BeamNoFind userform there is a button and the LISTBOX1. when you select and item from listbox1, and click the button, a third userform opens (VBMODELESS) to allow placement of the value.
below is the code of the button to show the third userform.
Private Sub CommandButton2_Click()
Dim Selected_Length As String
Dim Selected_Name As String
Dim Selected_Length_index As Integer
Selected_Length_index = BeamNoFind.ListBox1.ListIndex
With BeamNoFind.ListBox1
If .ListIndex > -1 Then
Selected_Name = .Column(0, .ListIndex)
Selected_Length = .Column(1, .ListIndex)
CellInputForm.beam_length_label.Caption = Selected_Name & " [ " & Selected_Length & " ] "
BeamNoFind.Hide
'ChngDataSrc.Hide
'Unload ChngDataSrc
CellInputForm.Show vbModeless
Else
MsgBox "No selection", vbExclamation, "Oops!"
End If
End With
End Sub
the weird thing is, when i click the button to show my modeless userform, to place the data in a cell, the initial macro is being triggered that drops you into the first userform.
Where i have the commented code 'ChngDataSrc.Hide' and 'Unload ChngDataSrc' are my attempts to stop the userform from displaying when i dont want it to.
When i unload the form, i then get an error instead of the form displaying, the error is with the initial macro:
Sub get_scheduling_data(control As IRibbonControl)
ChngDataSrc.Show
End Sub
It has something to do with vbModeless because if i replace "vbModeless" from "CellInputForm.Show vbModeless" line with "vbModal", it shows correctly, without the unwanted form (ChngDataSrc). but then the function of the form (select cell, press ok button, value placed in selected cell) is gone.
I found a solution, but its not a real solution,
i placed
ChngDataSrc.Hide in the Activate sub of the CellInputForm userform.
So when CellInputForm.show vbModeless is run, and the ChngDataSrc userform pops up unwantedly, it is then hidden again.
Id rather find out why it is being showed in the first place, but this fix seems to work for now.
I have a button that is on an excel spreadsheet (not in a userform) and I have a userfrom that has a textbox on and would like it to, when I enter a name in the textbox on my userform for it to then set the Caption of my button that is on my excel sheet to what ever is entered in the textbox. I would like to know what code I need to use and where to insert that code?
Hope that make sense, please keep in mind I'm a newbie to this so this is why I am asking where to insert the code
Many thanks in advance
Code in your userform, assuming a textbox named TextBox1, could be like this:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Len(Me.Textbox1.text) > 0 then
ActiveSheet.Buttons("Button 1").Caption = Me.Textbox1.text
End If
End Sub
or if you want the caption to update as you type:
Private Sub TextBox1_Change()
If Len(Me.TextBox1.Text) > 0 Then _
ActiveSheet.Buttons("Button 1").Caption = Me.TextBox1.Text
End Sub
As you have used "CommandButton" (which is an ActiveX control) yet seemingly heading towards a Form control, I have gone with the 2 methods you will need:
ActiveX:
ActiveSheet.Shapes("YourButton").OLEFormat.Object.Object.Caption = "YourText"
Forms:
ActiveSheet.Shapes("YourButton").TextFrame.Characters.Text = "YourText"