Requirement:
The user has a worksheet that I would like to move the contents of a row to another sheet based on the cell content in column 'K' = "yes", effectively archiving any jobs that have been invoiced.
A VBA code that the user can attach to a form control button would be ideal.
A sample spreadsheet has been attached so any help offered would be appreciated.
Solution:
Sub ArchiveInvoces()
With Worksheets("DRS REGISTER").ListObjects("Table1")
.Range.AutoFilter Field:=11, Criteria1:="YES"
On Error GoTo NoRows
With .DataBodyRange.SpecialCells(xlCellTypeVisible)
Worksheets("ARCHIVE").ListObjects("Table14").ListRows.Add
.Copy Worksheets("ARCHIVE").ListObjects("Table14").ListColumns(1).Range(Worksheets("ARCHIVE").ListObjects("Table14").ListRows.Count + 1)
.EntireRow.Delete
End With
.Range.AutoFilter Field:=11
End With
NoRows:
End Sub
OR
Sub CopyToArchive()
Dim sws As Worksheet, dws As Worksheet
Dim tbl As ListObject
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set sws = Sheets("DRS REGISTER")
Set tbl = sws.ListObjects(1)
Set dws = Sheets("ARCHIVE")
sws.AutoFilterMode = False
With tbl.Range
.AutoFilter field:=11, Criteria1:="YES"
If tbl.Range.Columns(11).SpecialCells(xlCellTypeVisible).Cells.Count > 1 Then
tbl.DataBodyRange.SpecialCells(xlCellTypeVisible).Copy
dws.Range("A" & Rows.Count).End(3)(2).PasteSpecial xlPasteValues
tbl.DataBodyRange.SpecialCells(xlCellTypeVisible).Delete
End If
tbl.Range.AutoFilter field:=11
End With
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
Click the button called "Copy To Archive " on DRS Register Sheet to run the code.
Obtained from the OzGrid Help Forum.
Solution provided by JonathanVH and sktneer.
See also: Index to Excel VBA Code and Index to Excel Freebies and Lesson 1 - Excel Fundamentals and Index to how to… providing a range of solutions and Index to new resources and reference sheets
See also:
| How to delete rows with no value |
| How to find a value in a sheet and give back related data to another sheet |
| How to auto copy data from master list to sub worksheets based on data value in one column |
| How to use VBA code to transpose any copy values X number of times |
Click here to visit our Free 24/7 Excel/VBA Help Forum where there are thousands of posts you can get information from, or you can join the Forum and post your own questions.