Forum Discussion
Deleted
Jun 26, 2018Trying to create a GUI that can save input values and output values based on inputs into a sheet
Hi all, I'm completely new to working with VBA. I work in a rat lab and I'm trying to create a GUI that will allow a user to input three things: rat number, how much they weight, and how much foo...
- Jun 28, 2018
Hey Laura-
Hope that you're doing well. Maybe you could try doing something like this (See attached file for reference):
Private Sub cmdExit_Click() 'Close PredictFeed Unload Me End Sub Private Sub cmdSave_Click() Dim lo As ListObject Dim ws As Worksheet Dim arrData As Variant Dim NewLstRow As ListRow 'Int() forces an Integer CDbl() forces a Double arrData = Array(Date, Int(Me.cboRatNum), CDbl(Me.txtWeight), CDbl(Me.txtFoodRec)) 'Define worksheet Set ws = ActiveSheet ' Get reference to table Set lo = ws.ListObjects("tblRatData") ' <--- Update this with your table name 'Add List Object Row Set NewLstRow = lo.ListRows.Add(AlwaysInsert:=True) 'Put Data in Row NewLstRow.Range = arrData End Sub Private Sub txtFoodRec_Exit(ByVal Cancel As MSForms.ReturnBoolean) With Me If .cboRatNum.Value = "" Or .txtWeight = "" Or .txtFoodRec = "" Then 'Do Nothing... Exit Sub Else 'Update Feed Amount in Form when last value has been filled in .txtFeedAmount = 300 - CDbl(.txtFoodRec) End If End With End Sub Private Sub UserForm_Initialize() Dim intLp As Integer 'Load cboRatNumber with values.... For intLp = 1 To 28 Me.cboRatNum.AddItem intLp Next intLp End Sub
Matt Mickle
Jun 28, 2018Bronze Contributor
Hey Laura-
Hope that you're doing well. Maybe you could try doing something like this (See attached file for reference):
Private Sub cmdExit_Click() 'Close PredictFeed Unload Me End Sub Private Sub cmdSave_Click() Dim lo As ListObject Dim ws As Worksheet Dim arrData As Variant Dim NewLstRow As ListRow 'Int() forces an Integer CDbl() forces a Double arrData = Array(Date, Int(Me.cboRatNum), CDbl(Me.txtWeight), CDbl(Me.txtFoodRec)) 'Define worksheet Set ws = ActiveSheet ' Get reference to table Set lo = ws.ListObjects("tblRatData") ' <--- Update this with your table name 'Add List Object Row Set NewLstRow = lo.ListRows.Add(AlwaysInsert:=True) 'Put Data in Row NewLstRow.Range = arrData End Sub Private Sub txtFoodRec_Exit(ByVal Cancel As MSForms.ReturnBoolean) With Me If .cboRatNum.Value = "" Or .txtWeight = "" Or .txtFoodRec = "" Then 'Do Nothing... Exit Sub Else 'Update Feed Amount in Form when last value has been filled in .txtFeedAmount = 300 - CDbl(.txtFoodRec) End If End With End Sub Private Sub UserForm_Initialize() Dim intLp As Integer 'Load cboRatNumber with values.... For intLp = 1 To 28 Me.cboRatNum.AddItem intLp Next intLp End Sub
- DeletedJun 29, 2018
Matt,
Thanks very much for your help with fixing my code. This works great.