Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi All
Can you help me out with the following code all it is doing is over writing the data in Row 1 on the sheet - instead going to the next Row when entering new data Private Sub Add1_Click() Dim rownum As Integer Dim startrownum As Integer Dim endrownum As Integer Dim freerownum As Integer startrownum = 2 endrownum = 250 For rownum = startrownum To endrownum freerownum = rownum rownum = endrownum Next rownum Sheets("Entrants").Range("A" & Trim(Str(freerownum))) = Trim(UserForm2.Tb2.Value) + " " & Trim(UserForm2.Tb1.Value) Sheets("Entrants").Range("B" & Trim(Str(freerownum))) = Tb3.Value Sheets("Entrants").Range("C" & Trim(Str(freerownum))) = Tb4.Value End Sub -- Many Thanks Sue |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Excel combines strings and number together removing leading blanks
automatically. Use END to get last row and add data to next row as shown below Private Sub Add1_Click() Dim rownum As Integer Dim startrownum As Integer Dim endrownum As Integer Dim freerownum As Integer LastRow = Range("A" Rows.count).end(xlup).row NewRow = LastRow + 1 Sheets("Entrants").Range("A" & NewRow) = Trim(UserForm2.Tb2.Value) + " " & Trim(UserForm2.Tb1.Value) Sheets("Entrants").Range("B" & NewRow) = Tb3.Value Sheets("Entrants").Range("C" & NewRow) = Tb4.Value End Sub "Sue" wrote: Hi All Can you help me out with the following code all it is doing is over writing the data in Row 1 on the sheet - instead going to the next Row when entering new data Private Sub Add1_Click() Dim rownum As Integer Dim startrownum As Integer Dim endrownum As Integer Dim freerownum As Integer startrownum = 2 endrownum = 250 For rownum = startrownum To endrownum freerownum = rownum rownum = endrownum Next rownum Sheets("Entrants").Range("A" & Trim(Str(freerownum))) = Trim(UserForm2.Tb2.Value) + " " & Trim(UserForm2.Tb1.Value) Sheets("Entrants").Range("B" & Trim(Str(freerownum))) = Tb3.Value Sheets("Entrants").Range("C" & Trim(Str(freerownum))) = Tb4.Value End Sub -- Many Thanks Sue |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
if you are just adding a new line of data then following may work:
Private Sub Add1_Click() Dim freerownum As Long With Worksheets("Entrants") freerownum = .Cells(.Rows.Count, "A").End(xlUp).Row + 1 .Range("A" & freerownum) = _ Trim(UserForm2.Tb2.Value) + " " & Trim(UserForm2.Tb1.Value) .Range("B" & freerownum) = Tb3.Value .Range("C" & freerownum) = Tb4.Value End With End Sub -- jb "Sue" wrote: Hi All Can you help me out with the following code all it is doing is over writing the data in Row 1 on the sheet - instead going to the next Row when entering new data Private Sub Add1_Click() Dim rownum As Integer Dim startrownum As Integer Dim endrownum As Integer Dim freerownum As Integer startrownum = 2 endrownum = 250 For rownum = startrownum To endrownum freerownum = rownum rownum = endrownum Next rownum Sheets("Entrants").Range("A" & Trim(Str(freerownum))) = Trim(UserForm2.Tb2.Value) + " " & Trim(UserForm2.Tb1.Value) Sheets("Entrants").Range("B" & Trim(Str(freerownum))) = Tb3.Value Sheets("Entrants").Range("C" & Trim(Str(freerownum))) = Tb4.Value End Sub -- Many Thanks Sue |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi John
Thanks for the reply however as I have data below row 250 the data now goes below row 250 that is why I was hoping it was possible to send the data down from row 2 onwards instead of -- With Worksheets("Entrants") freerownum = .Cells(.Rows.Count, "A").End(xlUp).Row + 1 (as is now) Tried to use below all to no avail -- Is below possible With Worksheets("Entrants") freerownum = .Cells(.Rows.Count, "A").End(xlDown).Row + 1 Many Thanks Sue "john" wrote: if you are just adding a new line of data then following may work: Private Sub Add1_Click() Dim freerownum As Long With Worksheets("Entrants") freerownum = .Cells(.Rows.Count, "A").End(xlUp).Row + 1 .Range("A" & freerownum) = _ Trim(UserForm2.Tb2.Value) + " " & Trim(UserForm2.Tb1.Value) .Range("B" & freerownum) = Tb3.Value .Range("C" & freerownum) = Tb4.Value End With End Sub -- jb "Sue" wrote: Hi All Can you help me out with the following code all it is doing is over writing the data in Row 1 on the sheet - instead going to the next Row when entering new data Private Sub Add1_Click() Dim rownum As Integer Dim startrownum As Integer Dim endrownum As Integer Dim freerownum As Integer startrownum = 2 endrownum = 250 For rownum = startrownum To endrownum freerownum = rownum rownum = endrownum Next rownum Sheets("Entrants").Range("A" & Trim(Str(freerownum))) = Trim(UserForm2.Tb2.Value) + " " & Trim(UserForm2.Tb1.Value) Sheets("Entrants").Range("B" & Trim(Str(freerownum))) = Tb3.Value Sheets("Entrants").Range("C" & Trim(Str(freerownum))) = Tb4.Value End Sub -- Many Thanks Sue |
#5
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
you want to place the data in rows 2 to 250? is that correct?
Probably much better way to write this but for ease I have added the FOR loop back in to the code & hopefully, if I have understood correctly what you are trying to do, it will do what you want - sorry in advance if I have got this wrong! Private Sub Add1_Click() Dim freerownum As Long With Worksheets("Entrants") For freerownum = 2 To 250 If .Range("A" & freerownum).Value = "" Then .Range("A" & freerownum) = _ Trim(UserForm2.Tb2.Value) + " " & Trim(UserForm2.Tb1.Value) .Range("B" & freerownum) = Tb3.Value .Range("C" & freerownum) = Tb4.Value Exit For End If Next freerownum End With End Sub -- jb "Sue" wrote: Hi John Thanks for the reply however as I have data below row 250 the data now goes below row 250 that is why I was hoping it was possible to send the data down from row 2 onwards instead of -- With Worksheets("Entrants") freerownum = .Cells(.Rows.Count, "A").End(xlUp).Row + 1 (as is now) Tried to use below all to no avail -- Is below possible With Worksheets("Entrants") freerownum = .Cells(.Rows.Count, "A").End(xlDown).Row + 1 Many Thanks Sue "john" wrote: if you are just adding a new line of data then following may work: Private Sub Add1_Click() Dim freerownum As Long With Worksheets("Entrants") freerownum = .Cells(.Rows.Count, "A").End(xlUp).Row + 1 .Range("A" & freerownum) = _ Trim(UserForm2.Tb2.Value) + " " & Trim(UserForm2.Tb1.Value) .Range("B" & freerownum) = Tb3.Value .Range("C" & freerownum) = Tb4.Value End With End Sub -- jb "Sue" wrote: Hi All Can you help me out with the following code all it is doing is over writing the data in Row 1 on the sheet - instead going to the next Row when entering new data Private Sub Add1_Click() Dim rownum As Integer Dim startrownum As Integer Dim endrownum As Integer Dim freerownum As Integer startrownum = 2 endrownum = 250 For rownum = startrownum To endrownum freerownum = rownum rownum = endrownum Next rownum Sheets("Entrants").Range("A" & Trim(Str(freerownum))) = Trim(UserForm2.Tb2.Value) + " " & Trim(UserForm2.Tb1.Value) Sheets("Entrants").Range("B" & Trim(Str(freerownum))) = Tb3.Value Sheets("Entrants").Range("C" & Trim(Str(freerownum))) = Tb4.Value End Sub -- Many Thanks Sue |
#7
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
The easiest way of getting the last row is the following
LastRow = Cells.SpecialCells(xlCellTypeLastCell).Row "Sandy Mann" wrote: If your loop is just to find the next empty row then try changing it to: For rownum = startrownum To endrownum If Cells(rownum, 1) < "" Then freerownum = rownum Exit For End If Next rownum -- HTH Sandy In Perth, the ancient capital of Scotland and the crowning place of kings Replace @mailinator.com with @tiscali.co.uk "Sue" wrote in message ... Hi All Can you help me out with the following code all it is doing is over writing the data in Row 1 on the sheet - instead going to the next Row when entering new data Private Sub Add1_Click() Dim rownum As Integer Dim startrownum As Integer Dim endrownum As Integer Dim freerownum As Integer startrownum = 2 endrownum = 250 For rownum = startrownum To endrownum freerownum = rownum rownum = endrownum Next rownum Sheets("Entrants").Range("A" & Trim(Str(freerownum))) = Trim(UserForm2.Tb2.Value) + " " & Trim(UserForm2.Tb1.Value) Sheets("Entrants").Range("B" & Trim(Str(freerownum))) = Tb3.Value Sheets("Entrants").Range("C" & Trim(Str(freerownum))) = Tb4.Value End Sub -- Many Thanks Sue |
#8
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Joel" wrote in message
... The easiest way of getting the last row is the following LastRow = Cells.SpecialCells(xlCellTypeLastCell).Row Except the OP said in another post: "Thanks for the reply however as I have data below row 250 " so she is not looking for the last used Row. Additionally XL *remembers* the last cell that you have entered data into even although you later delete it, so it may not be the last Row of visible data. -- Sandy In Perth, the ancient capital of Scotland and the crowning place of kings Replace @mailinator.com with @tiscali.co.uk |
#9
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Joel,
Re-reading my response to your post it seems a lot more terse and brusque than I intended. I did not mean it to be a putdown of your suggestion, my apologies if it sounded like one. -- Kind regards, Sandy In Perth, the ancient capital of Scotland and the crowning place of kings Replace @mailinator.com with @tiscali.co.uk "Sandy Mann" wrote in message ... Joel" wrote in message ... The easiest way of getting the last row is the following LastRow = Cells.SpecialCells(xlCellTypeLastCell).Row Except the OP said in another post: "Thanks for the reply however as I have data below row 250 " so she is not looking for the last used Row. Additionally XL *remembers* the last cell that you have entered data into even although you later delete it, so it may not be the last Row of visible data. -- Sandy In Perth, the ancient capital of Scotland and the crowning place of kings Replace @mailinator.com with @tiscali.co.uk |
#10
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi All
After viewing and trying all the options went with the Sandy Mann solution Works OK for me -- Many Thanks Sue "Sandy Mann" wrote: Joel, Re-reading my response to your post it seems a lot more terse and brusque than I intended. I did not mean it to be a putdown of your suggestion, my apologies if it sounded like one. -- Kind regards, Sandy In Perth, the ancient capital of Scotland and the crowning place of kings Replace @mailinator.com with @tiscali.co.uk "Sandy Mann" wrote in message ... Joel" wrote in message ... The easiest way of getting the last row is the following LastRow = Cells.SpecialCells(xlCellTypeLastCell).Row Except the OP said in another post: "Thanks for the reply however as I have data below row 250 " so she is not looking for the last used Row. Additionally XL *remembers* the last cell that you have entered data into even although you later delete it, so it may not be the last Row of visible data. -- Sandy In Perth, the ancient capital of Scotland and the crowning place of kings Replace @mailinator.com with @tiscali.co.uk |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
How copy none excel data & paste in 2007 without overwriting data | Excel Discussion (Misc queries) | |||
Paste data into another workbook but not overwriting original data | Excel Programming | |||
How to add data into a text file without overwriting existing data | Excel Programming | |||
Overwriting data | Excel Discussion (Misc queries) | |||
updating of data without overwriting the previous data updated | Excel Programming |