ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   data entry to next blank TextBox (https://www.excelbanter.com/excel-programming/332131-data-entry-next-blank-textbox.html)

[email protected]

data entry to next blank TextBox
 
I am having trouble with a program I am writing for work. I want to be
able to allow users to input cost codes associated with a specific
task, so I have a userform with a single text box in it, and 2 buttons
that say "ok and add another" and "index." Here are my two problems:

1) I want the "ok and add another" button to keep adding text boxes
underneath the original one. I also want the new textbox VALUE to be
entered into cells in "sheet3" each time the button is clicked, but I
can't figure out how to extract text from the text boxes because there
can be any number of text boxes shown (up to 20), and I don't know how
to leave the text box NAME as a variable that depends on the number of
text boxes present.


2) The "INDEX" button takes the user to "sheet2" which shows an index
of all the cost codes available. I want the user to be able to click on
a cost code, and have that code entered into the next blank text box on
the userform, but I have no idea how to do this.


Sorry, I am extremely new at all this and I have just been teaching
myself along the way.....any help would be GREATLY APPRECIATED!

Thanks,
Cal


[email protected]

data entry to next blank TextBox
 
Okay I got some of it to work out. So far, the following code will
allow the user to keep adding text boxes and entering numbers, but I
still don't know how to use the index sheet to insert text into the
next blank textbox.

I am also having problems getting the code to enter the TextBox values
into the next BLANK cell down. So, if the user uses 8 textboxes, I need
those values to be entered into cells A1:A8

Here it is:

Option Explicit

Private Sub CodeRequestADD_Click()
Sheets("sheet3").Activate
Dim ctl As Control
Dim txtbox_top As Integer, txtbox_left As Integer, _
txtbox_height As Integer, txtbox_width As Integer, _
txtbox_count As Integer

txtbox_top = 0
txtbox_left = 10 ' something to start with
txtbox_height = 10
txtbox_width = 20
txtbox_count = 0

For Each ctl In Me.Controls
If TypeName(ctl) = "TextBox" Then
If ctl.Top txtbox_top Then
With ctl
txtbox_top = .Top
txtbox_left = .Left
txtbox_height = .Height
txtbox_width = .Width
End With
End If
txtbox_count = txtbox_count + 1
End If
Next ctl

Set ctl = Me.Controls.Add("Forms.TextBox.1", "TextBox" & txtbox_count
+ 1)
With ctl
.Top = txtbox_top + 25
.Left = txtbox_left
.Height = txtbox_height
.Width = txtbox_width
End With
With CodeRequest
.Height = CodeRequest.Height + 25
.CodeRequestADD.Top = .CodeRequestADD.Top + 25
.INDEX.Top = .INDEX.Top + 25
.CodeRequestOK.Top = .CodeRequestOK.Top + 25
.Image1.Top = .Image1.Top + 25
End With
Sheets("sheet3").Range("A1") = CodeRequest.Controls("TextBox" &
txtbox_count).Text

End Sub


You'll see that I simply use Range ("A1") at the bottom.....that's just
because I don't know how to use code to find the first blank cell, and
enter a textbox value into it.

Thanks!
Cal


Toppers

data entry to next blank TextBox
 
Hi,

Sheets("sheet3").Range("A" & txtbox_count) = CodeRequest.Controls("TextBox"
& txtbox_count).Text

Will add data to cells A1 to An corresponding to "TexBox1 to TextBoxn"

With regard to your index sheet, you might consider adding a combo box
containing your cost codes rather selecting from your worksheet. Selectiion
from the combobox can be placed in the next textbox.

HTH

" wrote:

Okay I got some of it to work out. So far, the following code will
allow the user to keep adding text boxes and entering numbers, but I
still don't know how to use the index sheet to insert text into the
next blank textbox.

I am also having problems getting the code to enter the TextBox values
into the next BLANK cell down. So, if the user uses 8 textboxes, I need
those values to be entered into cells A1:A8

Here it is:

Option Explicit

Private Sub CodeRequestADD_Click()
Sheets("sheet3").Activate
Dim ctl As Control
Dim txtbox_top As Integer, txtbox_left As Integer, _
txtbox_height As Integer, txtbox_width As Integer, _
txtbox_count As Integer

txtbox_top = 0
txtbox_left = 10 ' something to start with
txtbox_height = 10
txtbox_width = 20
txtbox_count = 0

For Each ctl In Me.Controls
If TypeName(ctl) = "TextBox" Then
If ctl.Top txtbox_top Then
With ctl
txtbox_top = .Top
txtbox_left = .Left
txtbox_height = .Height
txtbox_width = .Width
End With
End If
txtbox_count = txtbox_count + 1
End If
Next ctl

Set ctl = Me.Controls.Add("Forms.TextBox.1", "TextBox" & txtbox_count
+ 1)
With ctl
.Top = txtbox_top + 25
.Left = txtbox_left
.Height = txtbox_height
.Width = txtbox_width
End With
With CodeRequest
.Height = CodeRequest.Height + 25
.CodeRequestADD.Top = .CodeRequestADD.Top + 25
.INDEX.Top = .INDEX.Top + 25
.CodeRequestOK.Top = .CodeRequestOK.Top + 25
.Image1.Top = .Image1.Top + 25
End With
Sheets("sheet3").Range("A1") = CodeRequest.Controls("TextBox" &
txtbox_count).Text

End Sub


You'll see that I simply use Range ("A1") at the bottom.....that's just
because I don't know how to use code to find the first blank cell, and
enter a textbox value into it.

Thanks!
Cal



Joel Mills

data entry to next blank TextBox
 
After much frustration I figured it out. Here's how it begins.

Private Sub TextBox1_Change()
Worksheets("Curve").Shapes("Curve Line No. 1").Select
Selection.Characters.Text = UserForm2.TextBox1.Text
End Sub


"Toppers" wrote in message
...
Hi,

Sheets("sheet3").Range("A" & txtbox_count) =
CodeRequest.Controls("TextBox"
& txtbox_count).Text

Will add data to cells A1 to An corresponding to "TexBox1 to TextBoxn"

With regard to your index sheet, you might consider adding a combo box
containing your cost codes rather selecting from your worksheet.
Selectiion
from the combobox can be placed in the next textbox.

HTH

" wrote:

Okay I got some of it to work out. So far, the following code will
allow the user to keep adding text boxes and entering numbers, but I
still don't know how to use the index sheet to insert text into the
next blank textbox.

I am also having problems getting the code to enter the TextBox values
into the next BLANK cell down. So, if the user uses 8 textboxes, I need
those values to be entered into cells A1:A8

Here it is:

Option Explicit

Private Sub CodeRequestADD_Click()
Sheets("sheet3").Activate
Dim ctl As Control
Dim txtbox_top As Integer, txtbox_left As Integer, _
txtbox_height As Integer, txtbox_width As Integer, _
txtbox_count As Integer

txtbox_top = 0
txtbox_left = 10 ' something to start with
txtbox_height = 10
txtbox_width = 20
txtbox_count = 0

For Each ctl In Me.Controls
If TypeName(ctl) = "TextBox" Then
If ctl.Top txtbox_top Then
With ctl
txtbox_top = .Top
txtbox_left = .Left
txtbox_height = .Height
txtbox_width = .Width
End With
End If
txtbox_count = txtbox_count + 1
End If
Next ctl

Set ctl = Me.Controls.Add("Forms.TextBox.1", "TextBox" & txtbox_count
+ 1)
With ctl
.Top = txtbox_top + 25
.Left = txtbox_left
.Height = txtbox_height
.Width = txtbox_width
End With
With CodeRequest
.Height = CodeRequest.Height + 25
.CodeRequestADD.Top = .CodeRequestADD.Top + 25
.INDEX.Top = .INDEX.Top + 25
.CodeRequestOK.Top = .CodeRequestOK.Top + 25
.Image1.Top = .Image1.Top + 25
End With
Sheets("sheet3").Range("A1") = CodeRequest.Controls("TextBox" &
txtbox_count).Text

End Sub


You'll see that I simply use Range ("A1") at the bottom.....that's just
because I don't know how to use code to find the first blank cell, and
enter a textbox value into it.

Thanks!
Cal





Joel Mills

data entry to next blank TextBox
 
Disreguard, I posted to the wrong message.

"Joel Mills" wrote in message
...
After much frustration I figured it out. Here's how it begins.

Private Sub TextBox1_Change()
Worksheets("Curve").Shapes("Curve Line No. 1").Select
Selection.Characters.Text = UserForm2.TextBox1.Text
End Sub


"Toppers" wrote in message
...
Hi,

Sheets("sheet3").Range("A" & txtbox_count) =
CodeRequest.Controls("TextBox"
& txtbox_count).Text

Will add data to cells A1 to An corresponding to "TexBox1 to TextBoxn"

With regard to your index sheet, you might consider adding a combo box
containing your cost codes rather selecting from your worksheet.
Selectiion
from the combobox can be placed in the next textbox.

HTH

" wrote:

Okay I got some of it to work out. So far, the following code will
allow the user to keep adding text boxes and entering numbers, but I
still don't know how to use the index sheet to insert text into the
next blank textbox.

I am also having problems getting the code to enter the TextBox values
into the next BLANK cell down. So, if the user uses 8 textboxes, I need
those values to be entered into cells A1:A8

Here it is:

Option Explicit

Private Sub CodeRequestADD_Click()
Sheets("sheet3").Activate
Dim ctl As Control
Dim txtbox_top As Integer, txtbox_left As Integer, _
txtbox_height As Integer, txtbox_width As Integer, _
txtbox_count As Integer

txtbox_top = 0
txtbox_left = 10 ' something to start with
txtbox_height = 10
txtbox_width = 20
txtbox_count = 0

For Each ctl In Me.Controls
If TypeName(ctl) = "TextBox" Then
If ctl.Top txtbox_top Then
With ctl
txtbox_top = .Top
txtbox_left = .Left
txtbox_height = .Height
txtbox_width = .Width
End With
End If
txtbox_count = txtbox_count + 1
End If
Next ctl

Set ctl = Me.Controls.Add("Forms.TextBox.1", "TextBox" & txtbox_count
+ 1)
With ctl
.Top = txtbox_top + 25
.Left = txtbox_left
.Height = txtbox_height
.Width = txtbox_width
End With
With CodeRequest
.Height = CodeRequest.Height + 25
.CodeRequestADD.Top = .CodeRequestADD.Top + 25
.INDEX.Top = .INDEX.Top + 25
.CodeRequestOK.Top = .CodeRequestOK.Top + 25
.Image1.Top = .Image1.Top + 25
End With
Sheets("sheet3").Range("A1") = CodeRequest.Controls("TextBox" &
txtbox_count).Text

End Sub


You'll see that I simply use Range ("A1") at the bottom.....that's just
because I don't know how to use code to find the first blank cell, and
enter a textbox value into it.

Thanks!
Cal








All times are GMT +1. The time now is 11:32 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com