ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Insert Textbox values to seperate rows/columns (https://www.excelbanter.com/excel-programming/346905-insert-textbox-values-seperate-rows-columns.html)

thompssm

Insert Textbox values to seperate rows/columns
 

I am trying to insert textbox entries in the following manner but I a
having some problems with the insertion routine:

Col A B C
Row
1 txtTagName
2 Tag Description: txtTagDesc
3 On State: txtOnState
4 Off State: txtOffState
5 blank row
6 txtTagName
7 Tag Description: txtTagDesc
8 On State: txtOnState
9 Off State: txtOffState
10 blank row

then prompt for next set of data depending on value entered i
txtNumTags

Here's the code:

Private Sub cmdInsert_Click()
Dim wkBook As Workbook
Dim wkSheet As Worksheet
Dim x As Integer
Dim counter As Integer
Dim rowIndex As Integer

Application.ScreenUpdating = False

ActiveWorkbook.Sheets("Sixnet Digital Tags").Activate

range("A1").Select

Do
If IsEmpty(ActiveCell) = False Then
ActiveCell.Offset(1, 0).Select
End If
Loop Until IsEmpty(ActiveCell) = True

x = txtNumTags.Value

rowIndex = 0

If optYes = True Then
For counter = 1 To x
ActiveCell.Offset(rowIndex, 0).Value = txtTagName.Value
Selection.Font.Bold = True

With ActiveCell.Offset(rowIndex + 1
0).Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
ActiveCell.Offset(rowIndex + 1, 1) = "Tag Description:"
ActiveCell.Offset(rowIndex + 1, 2) = txtTagDesc.Value

With ActiveCell.Offset(rowIndex + 2
0).Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
ActiveCell.Offset(rowIndex + 2, 1) = "On State:"
ActiveCell.Offset(rowIndex + 2, 2) = txtOnState.Value

With ActiveCell.Offset(rowIndex + 3
0).Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
ActiveCell.Offset(rowIndex + 3, 1) = "Off State:"
ActiveCell.Offset(rowIndex + 3, 2) = txtOffState.Value

rowIndex = rowIndex + 5
Next 'counter
Else
ActiveCell.Value = "Not Applicable"
Unload Me
End If

Application.ScreenUpdating = True

Set wkBook = Nothing
Set wkSheet = Nothing
End Sub

Regards
M. Thompso

--
thompssmPosted from - http://www.officehelp.i


Rowan Drummond[_3_]

Insert Textbox values to seperate rows/columns
 
Maybe like this?

Private Sub cmdInsert_Click()
Dim x As Integer
Dim counter As Long
Dim rowIndex As Long

On Error GoTo ErrorHandler
Application.ScreenUpdating = False

With Sheets("Sixnet Digital Tags")
rowIndex = .Cells(Rows.Count, 1).End(xlUp).Row + 1

If optYes = True Then
x = txtNumTags.Value

For counter = 1 To x
With .Cells(rowIndex, 1)
.Value = txtTagName.Value
.Font.Bold = True
End With

With .Cells(rowIndex + 1, 1).Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
.Cells(rowIndex + 1, 2).Value = "Tag Description:"
.Cells(rowIndex + 1, 3).Value = txtTagDesc.Value

With .Cells(rowIndex + 2, 1).Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
.Cells(rowIndex + 2, 2).Value = "On State:"
.Cells(rowIndex + 2, 3).Value = txtOnState.Value

With .Cells(rowIndex + 3, 1).Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
.Cells(rowIndex + 3, 2) = "Off State:"
.Cells(rowIndex + 3, 3) = txtOffState.Value

rowIndex = rowIndex + 5
Next counter
Else
.Cells(rowIndex, 1).Value = "Not Applicable"
End If
End With
Unload Me
ErrorHandler:
Application.ScreenUpdating = True
End Sub


Hope this helps
Rowan

thompssm wrote:
I am trying to insert textbox entries in the following manner but I am
having some problems with the insertion routine:

Col A B C
Row
1 txtTagName
2 Tag Description: txtTagDesc
3 On State: txtOnState
4 Off State: txtOffState
5 blank row
6 txtTagName
7 Tag Description: txtTagDesc
8 On State: txtOnState
9 Off State: txtOffState
10 blank row

then prompt for next set of data depending on value entered in
txtNumTags

Here's the code:

Private Sub cmdInsert_Click()
Dim wkBook As Workbook
Dim wkSheet As Worksheet
Dim x As Integer
Dim counter As Integer
Dim rowIndex As Integer

Application.ScreenUpdating = False

ActiveWorkbook.Sheets("Sixnet Digital Tags").Activate

range("A1").Select

Do
If IsEmpty(ActiveCell) = False Then
ActiveCell.Offset(1, 0).Select
End If
Loop Until IsEmpty(ActiveCell) = True

x = txtNumTags.Value

rowIndex = 0

If optYes = True Then
For counter = 1 To x
ActiveCell.Offset(rowIndex, 0).Value = txtTagName.Value
Selection.Font.Bold = True

With ActiveCell.Offset(rowIndex + 1,
0).Borders(xlEdgeBottom)
LineStyle = xlContinuous
Weight = xlThin
ColorIndex = xlAutomatic
End With
ActiveCell.Offset(rowIndex + 1, 1) = "Tag Description:"
ActiveCell.Offset(rowIndex + 1, 2) = txtTagDesc.Value

With ActiveCell.Offset(rowIndex + 2,
0).Borders(xlEdgeBottom)
LineStyle = xlContinuous
Weight = xlThin
ColorIndex = xlAutomatic
End With
ActiveCell.Offset(rowIndex + 2, 1) = "On State:"
ActiveCell.Offset(rowIndex + 2, 2) = txtOnState.Value

With ActiveCell.Offset(rowIndex + 3,
0).Borders(xlEdgeBottom)
LineStyle = xlContinuous
Weight = xlThin
ColorIndex = xlAutomatic
End With
ActiveCell.Offset(rowIndex + 3, 1) = "Off State:"
ActiveCell.Offset(rowIndex + 3, 2) = txtOffState.Value

rowIndex = rowIndex + 5
Next 'counter
Else
ActiveCell.Value = "Not Applicable"
Unload Me
End If

Application.ScreenUpdating = True

Set wkBook = Nothing
Set wkSheet = Nothing
End Sub

Regards
M. Thompson



thompssm[_2_]

Insert Textbox values to seperate rows/columns
 

Rowan,

Thanks! That worked much better than what I had. However, ther
remains one more issue. How do I get the form to allow me to enter th
next set of data (i.e., new tag information)?

Regards,
Shane Thompso

--
thompssmPosted from - http://www.officehelp.i


Rowan Drummond[_3_]

Insert Textbox values to seperate rows/columns
 
Hi Shane

What I would probably do is get rid of the number of tags textbox (I'm
assuming this is the number of tags that the user is going to enter).
Then remove the loop from the click event and having inserted the data
to the sheet clear all the textboxes and allow the user to enter new
data before hitting the insert button again. Then when finished the user
can hit an End/Cancel button to close the form. untested but something like:

Private Sub cmdInsert_Click()
Dim rowIndex As Long

On Error GoTo ErrorHandler
Application.ScreenUpdating = False

With Sheets("Sixnet Digital Tags")
rowIndex = .Cells(Rows.Count, 1).End(xlUp).Row + 1

If optYes = True Then
With .Cells(rowIndex, 1)
.Value = txtTagName.Value
.Font.Bold = True
End With

With .Cells(rowIndex + 1, 1).Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
.Cells(rowIndex + 1, 2).Value = "Tag Description:"
.Cells(rowIndex + 1, 3).Value = txtTagDesc.Value

With .Cells(rowIndex + 2, 1).Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
.Cells(rowIndex + 2, 2).Value = "On State:"
.Cells(rowIndex + 2, 3).Value = txtOnState.Value

With .Cells(rowIndex + 3, 1).Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
.Cells(rowIndex + 3, 2) = "Off State:"
.Cells(rowIndex + 3, 3) = txtOffState.Value

Else
.Cells(rowIndex, 1).Value = "Not Applicable"
End If
End With

Me.txtTagName.Value = ""
Me.txtTagDesc.Value = ""
Me.txtOnState.Value = ""
Me.txtOffState.Value = ""
DoEvents

ErrorHandler:
Application.ScreenUpdating = True
End

Hope this helps
Rowan



thompssm wrote:
Rowan,

Thanks! That worked much better than what I had. However, there
remains one more issue. How do I get the form to allow me to enter the
next set of data (i.e., new tag information)?

Regards,
Shane Thompson




All times are GMT +1. The time now is 12:07 PM.

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