Copy rows to new sheets if condition is met
Solved/Closed
I.Gal
Posts
4
Registration date
Wednesday May 17, 2017
Status
Member
Last seen
May 23, 2017
-
Updated on May 17, 2017 at 07:06 AM
vcoolio Posts 1411 Registration date Thursday July 24, 2014 Status Moderator Last seen September 6, 2024 - May 24, 2017 at 12:58 AM
vcoolio Posts 1411 Registration date Thursday July 24, 2014 Status Moderator Last seen September 6, 2024 - May 24, 2017 at 12:58 AM
Related:
- Excel copy row if condition met
- Saints row 2 cheats - Guide
- Excel mod apk for pc - Download - Spreadsheets
- Kernel for excel repair - Download - Backup and recovery
- Dash becomes date on excel ✓ - Office Software Forum
- Vb net find last row in excel sheet - Guide
4 responses
vcoolio
Posts
1411
Registration date
Thursday July 24, 2014
Status
Moderator
Last seen
September 6, 2024
262
May 17, 2017 at 06:47 AM
May 17, 2017 at 06:47 AM
Hello I.Gal,
I assume that you have a problem with the code that you posted so try the following code instead (untested):-
Place the code in a standard module and assign it to a button.
The code will create new sheets for each unique value in Column AL and then transfer the relevant rows of data to their individual sheets.
I hope that this helps.
Cheerio,
vcoolio.
I assume that you have a problem with the code that you posted so try the following code instead (untested):-
Option Explicit
Sub CreateSheetsTransferData()
Dim ar As Variant
Dim i As Integer
Dim lr As Long
Dim ws As Worksheet
Dim sh As Worksheet
Application.ScreenUpdating = False
lr = Range("A" & Rows.Count).End(xlUp).Row
Set sh = Sheet1
ar = sh.Range("AL2", sh.Range("AL" & sh.Rows.Count).End(xlUp))
For i = LBound(ar) To UBound(ar)
If Not Evaluate("ISREF('" & ar(i, 1) & "'!A1)") Then
Worksheets.Add(After:=Sheets(Sheets.Count)).Name = ar(i, 1)
End If
Set ws = Worksheets(CStr(ar(i, 1)))
sh.Range("AL1:AL" & lr).AutoFilter 1, ar(i, 1)
sh.Range("A1", sh.Range("AL" & sh.Rows.Count).End(xlUp)).Copy ws.[A1]
ws.Columns.AutoFit
Next i
sh.[AL1].AutoFilter
Application.CutCopyMode = False
Application.ScreenUpdating = True
sh.Select
MsgBox "All done!", vbExclamation, "STATUS"
End Sub
Place the code in a standard module and assign it to a button.
The code will create new sheets for each unique value in Column AL and then transfer the relevant rows of data to their individual sheets.
I hope that this helps.
Cheerio,
vcoolio.
May 18, 2017 at 01:26 AM
Thank you for you quick response and help, it works great, I just have one question-
what should I change in order to enable all columns to be copied ? (only columns A:AL are cpoied but there are more columns in the table)
Once again, thank you.