VBA Copy Row based off cell value

floggingmolly

New Member
Joined
Sep 14, 2019
Messages
47
I am needing some help here. I have a sheet that has dates in column O. I have a code that copies dates based off a date, but I have to enter the date into the code. I would like to be able to enter a date in say cell A1 and then run the code to copy the rows based off the date I enter in A1. Below is the code I have so far. Can anyone help me out?

Code:
Sub CopyRows()
a = Worksheets("sheet1").Cells(Rows.Count, 1).End(xlUp).Row
 For i = 2 To a
 
 If Worksheets("Sheet1").Cells(i, 15).Value = "4/10/2020" Then
 
 Worksheets("Sheet1").Rows(i).Copy
 Worksheets("Sheet2").Activate
 b = Worksheets("Sheet2").Cells(Rows.Count, 1).End(xlUp).Row
 Worksheets("Sheet2").Cells(b + 1, 1).Select
 ActiveSheet.Paste


 
 End If
 Next
 


End Sub
 

Scott T

Well-known Member
Joined
Dec 14, 2016
Messages
2,593
Office Version
365, 2016
Platform
Windows
Try

Note: you do not need to activate sheet2 if you do not want to. Also you do not need the select the cell.
Code:
Sub CopyRows()
a = Worksheets("sheet1").Cells(Rows.Count, 1).End(xlUp).Row
 
 For i = 2 To a
 
    If Worksheets("Sheet1").Cells(i, 15) = Sheets("Sheet1").Cells(1, 1) Then
    Worksheets("Sheet1").Rows(i).Copy
    Worksheets("Sheet2").Activate
    b = Worksheets("Sheet2").Cells(Rows.Count, 1).End(xlUp).Row
    Worksheets("Sheet2").Cells(b + 1, 1).Select
    ActiveSheet.Paste
 End If
 Next

End Sub
Without activating sheet and selecting cell
Code:
Sub CopyRows()
a = Worksheets("sheet1").Cells(Rows.Count, 1).End(xlUp).Row
 
 For i = 2 To a
 
    If Worksheets("Sheet1").Cells(i, 15) = Sheets("Sheet1").Cells(1, 1) Then
    b = Worksheets("Sheet2").Cells(Rows.Count, 1).End(xlUp).Row
    Worksheets("Sheet1").Rows(i).Copy Worksheets("Sheet2").Cells(b + 1, 1)
    
 End If
 Next

End Sub
 

floggingmolly

New Member
Joined
Sep 14, 2019
Messages
47
Try

Note: you do not need to activate sheet2 if you do not want to. Also you do not need the select the cell.
Code:
Sub CopyRows()
a = Worksheets("sheet1").Cells(Rows.Count, 1).End(xlUp).Row
 
 For i = 2 To a
 
    If Worksheets("Sheet1").Cells(i, 15) = Sheets("Sheet1").Cells(1, 1) Then
    Worksheets("Sheet1").Rows(i).Copy
    Worksheets("Sheet2").Activate
    b = Worksheets("Sheet2").Cells(Rows.Count, 1).End(xlUp).Row
    Worksheets("Sheet2").Cells(b + 1, 1).Select
    ActiveSheet.Paste
 End If
 Next

End Sub
Without activating sheet and selecting cell
Code:
Sub CopyRows()
a = Worksheets("sheet1").Cells(Rows.Count, 1).End(xlUp).Row
 
 For i = 2 To a
 
    If Worksheets("Sheet1").Cells(i, 15) = Sheets("Sheet1").Cells(1, 1) Then
    b = Worksheets("Sheet2").Cells(Rows.Count, 1).End(xlUp).Row
    Worksheets("Sheet1").Rows(i).Copy Worksheets("Sheet2").Cells(b + 1, 1)
    
 End If
 Next

End Sub

Thank you so much. This worked perfectly. I appreciate your help.
 

Forum statistics

Threads
1,082,281
Messages
5,364,219
Members
400,787
Latest member
bs04c

Some videos you may like

This Week's Hot Topics

  • populate from drop list with multiple tables
    Hi All, i have a drop list that displays data, what i want is when i select one of those from the list to populate text from different tables on...
  • Find list of words from sheet2 in sheet1 before a comma and extract text vba
    Hi Friends, Trying to find the solution on my task. But did not find suitable one to the need. Here is my query and sample file with details...
  • Dynamic Formula entry - VBA code sought
    Hello, really hope one of you experts can help with this - i've spent hours on this and getting no-where. .I have a set of data (more rows than...
  • Listbox Header
    Have a named range called "AccidentsHeader" Within my code I have: [CODE]Private Sub CommandButton1_Click() ListBox1.RowSource =...
  • Complex Heat Map using conditional formatting
    Good day excel world. I have a concern. Below link have a list of countries that carries each country unique data. [URL...
  • Conditional formatting
    Hi good morning, hope you can help me please, I have cells P4:P54 and if this cell is equal to 1 then i want row O to say "Fully Utilised" and to...
Top