ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   VBA help - worksheets and range questions (https://www.excelbanter.com/excel-programming/296903-vba-help-worksheets-range-questions.html)

Bob[_54_]

VBA help - worksheets and range questions
 
I am working with a workbook with 3 worksheets named "Sheet1", "wtf",
and "Sheet3." My procedure should look for data in the second sheet,
"wtf", and if found, insert a row on Sheet1 and copy the data.

One problem is that I can't seem to figure out a way to refer to the
sheet by name. A second problem is that I don't want to work with a
fixed number of rows - I would like to determine how many rows have
data in the first column and use that as a loop limit.

Any help would be appreciated. Bob.



The code I have been playing with:

Option Explicit

Sub MoveData()

Dim r As Long
Dim wtf As Worksheet
wtf = ActiveWorkbook.Sheets("wtf")

For r = 1 To 500
If (Sheets("wtf").Cells(r, 3) < "") Or (Sheet2.Cells(r, 4) < "")
Then
Sheet1.Rows(1).Insert
Sheet1.Cells(1, 1) = Sheet2.Cells(r, 3)
Sheet1.Cells(1, 2) = Sheet2.Cells(r, 4)
Sheet1.Cells(1, 3) = Sheet2.Cells(r, 3) + ", " + Sheet2.Cells(r,
4)
End If
Next



End Sub

Tom Ogilvy

VBA help - worksheets and range questions
 
Sub MoveData()

Dim r As Long
Dim wtf As Worksheet
set wtf = ActiveWorkbook.Sheets("wtf")

For r = 1 To Cells(rows.count,1).End(xlup).Row
If sh.Cells(r, 3) < "" Or Sheet2.Cells(r, 4) < "" Then
Sheet1.Rows(1).Insert
Sheet1.Cells(1, 1) = Sheet2.Cells(r, 3)
Sheet1.Cells(1, 2) = Sheet2.Cells(r, 4)
Sheet1.Cells(1, 3) = Sheet2.Cells(r, 3) + ", " + Sheet2.Cells(r,
4)
End If
Next

--
Regards,
Tom Ogilvy


End Sub
"Bob" wrote in message
m...
I am working with a workbook with 3 worksheets named "Sheet1", "wtf",
and "Sheet3." My procedure should look for data in the second sheet,
"wtf", and if found, insert a row on Sheet1 and copy the data.

One problem is that I can't seem to figure out a way to refer to the
sheet by name. A second problem is that I don't want to work with a
fixed number of rows - I would like to determine how many rows have
data in the first column and use that as a loop limit.

Any help would be appreciated. Bob.



The code I have been playing with:

Option Explicit

Sub MoveData()

Dim r As Long
Dim wtf As Worksheet
wtf = ActiveWorkbook.Sheets("wtf")

For r = 1 To 500
If (Sheets("wtf").Cells(r, 3) < "") Or (Sheet2.Cells(r, 4) < "")
Then
Sheet1.Rows(1).Insert
Sheet1.Cells(1, 1) = Sheet2.Cells(r, 3)
Sheet1.Cells(1, 2) = Sheet2.Cells(r, 4)
Sheet1.Cells(1, 3) = Sheet2.Cells(r, 3) + ", " + Sheet2.Cells(r,
4)
End If
Next



End Sub




JMay

VBA help - worksheets and range questions
 
Your structure **AS IS** of course
Causes your data to be copied to Sheet1 "inverted" (up-side-down).
Is that what you want?

"Bob" wrote in message
m...
I am working with a workbook with 3 worksheets named "Sheet1", "wtf",
and "Sheet3." My procedure should look for data in the second sheet,
"wtf", and if found, insert a row on Sheet1 and copy the data.

One problem is that I can't seem to figure out a way to refer to the
sheet by name. A second problem is that I don't want to work with a
fixed number of rows - I would like to determine how many rows have
data in the first column and use that as a loop limit.

Any help would be appreciated. Bob.



The code I have been playing with:

Option Explicit

Sub MoveData()

Dim r As Long
Dim wtf As Worksheet
wtf = ActiveWorkbook.Sheets("wtf")

For r = 1 To 500
If (Sheets("wtf").Cells(r, 3) < "") Or (Sheet2.Cells(r, 4) < "")
Then
Sheet1.Rows(1).Insert
Sheet1.Cells(1, 1) = Sheet2.Cells(r, 3)
Sheet1.Cells(1, 2) = Sheet2.Cells(r, 4)
Sheet1.Cells(1, 3) = Sheet2.Cells(r, 3) + ", " + Sheet2.Cells(r,
4)
End If
Next



End Sub




Bob[_52_]

VBA help - worksheets and range questions
 
Yes, that is the way the existing spreadsheet is (manually) created.

Thanks for you interest!

JMay wrote:
Your structure **AS IS** of course
Causes your data to be copied to Sheet1 "inverted" (up-side-down).
Is that what you want?

"Bob" wrote in message
m...

I am working with a workbook with 3 worksheets named "Sheet1", "wtf",
and "Sheet3." My procedure should look for data in the second sheet,
"wtf", and if found, insert a row on Sheet1 and copy the data.

One problem is that I can't seem to figure out a way to refer to the
sheet by name. A second problem is that I don't want to work with a
fixed number of rows - I would like to determine how many rows have
data in the first column and use that as a loop limit.

Any help would be appreciated. Bob.



The code I have been playing with:

Option Explicit

Sub MoveData()

Dim r As Long
Dim wtf As Worksheet
wtf = ActiveWorkbook.Sheets("wtf")

For r = 1 To 500
If (Sheets("wtf").Cells(r, 3) < "") Or (Sheet2.Cells(r, 4) < "")
Then
Sheet1.Rows(1).Insert
Sheet1.Cells(1, 1) = Sheet2.Cells(r, 3)
Sheet1.Cells(1, 2) = Sheet2.Cells(r, 4)
Sheet1.Cells(1, 3) = Sheet2.Cells(r, 3) + ", " + Sheet2.Cells(r,
4)
End If
Next



End Sub






Bob[_52_]

VBA help - worksheets and range questions
 
Tom,

I will give this a try when I get into work tomorow. Thanks for the
help. I see your name quite often on the newsgroup. Without people
like you - it wouldn't work for the rest of us. I hope I can give a
little back someday.

Bob.

Tom Ogilvy wrote:
Sub MoveData()

Dim r As Long
Dim wtf As Worksheet
set wtf = ActiveWorkbook.Sheets("wtf")

For r = 1 To Cells(rows.count,1).End(xlup).Row
If sh.Cells(r, 3) < "" Or Sheet2.Cells(r, 4) < "" Then
Sheet1.Rows(1).Insert
Sheet1.Cells(1, 1) = Sheet2.Cells(r, 3)
Sheet1.Cells(1, 2) = Sheet2.Cells(r, 4)
Sheet1.Cells(1, 3) = Sheet2.Cells(r, 3) + ", " + Sheet2.Cells(r,
4)
End If
Next




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

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