![]() |
#1
|
|||
|
|||
![]()
Ok I am kind of a beginner to excel in the aspect of auto-populating/ moving information from one sheet to another automatically and complex formulas and functions, so any help would be greatly appreciated. I want to move information based on completion dates in column D on one sheet to another sheet, but I want to auto-populate rows of information based on this completion date, but not all information. I do not want information in column one in the first sheet to transfer to second sheet. So based on my completion date in sheet one, column D, Row 5, I want information from column B (sheet 1) to correlate to sheet 2, column B, starting in row 3, the assigned by in sheet 1 to relate to assigned by in sheet 2, the notes to do the same thing, and so on and so forth. Once the information is moved to the second sheet due to completion date, I want the information in the first sheet to delete itself. I know you can create a button for this, but am so unsure of where to start. Can anyone explain or help me in any way to get this done? I have been looking on the internet, but nothing seems to really explain or give me what I am looking for exactly. I have attached what I am working on so that you can see what I am trying to do. Its very self explanatory.
I have started a macro and I need it to reference the next available row in the Completed tasks sheet. Can you help me with this? And also I need the macro to work for all rows and not just specified rows and cells. I have been so out of touch with Excel and I just got back into the work force, so this is all trial and error here. I had a basic Formula for the next available row, but I did it wrong, so any help would be appreciated. This is the macro I developed and it only works for one row, for that row it works great, but I need to work for all of them ![]() Code:
Sub Macro1() ' ' Macro1 Macro ' ' Sheets("Task Sheet").Select Range("E5").Select Selection.Copy Sheets("Completed Tasks").Select Range("A8").Select ActiveSheet.Paste Application.CutCopyMode = False With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .Color = 49407 .TintAndShade = 0 .PatternTintAndShade = 0 End With With Selection.Font .ColorIndex = xlAutomatic .TintAndShade = 0 End With Sheets("Task Sheet").Select Range("B5:D5").Select Selection.Copy Sheets("Completed Tasks").Select Range("B8").Select ActiveSheet.Paste Range("A8:D8").Select Application.CutCopyMode = False With Selection.Font .Name = "Calibri" .FontStyle = "Regular" .Strikethrough = True .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .TintAndShade = 0 .ThemeFont = xlThemeFontMinor End With Sheets("Task Sheet").Select Range("A5:E5").Select Range("E5").Activate Selection.ClearContents Sheets("Completed Tasks").Select End Sub Last edited by macropod; 03-19-2013 at 04:54 PM. Reason: Added code tags & formatting |
#2
|
|||
|
|||
![]()
Ok so I was messing around with the macro and cleaned it up a little bit. What I need to know is if Ican make this more generic to work with every row and not just the specified row and is there a generic code I can put in there to select the next available row to paste into on my completed tasks sheet?
here is the cleaned up macro.... Code:
Sub TaskCompleted() ' ' TaskCompleted Macro ' ' Sheets("Task Sheet").Select Range("E5").Select Selection.Copy Sheets("Completed Tasks").Select Range("A8").Select ActiveSheet.Paste Application.CutCopyMode = False With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .Color = 49407 .TintAndShade = 0 .PatternTintAndShade = 0 End With Sheets("Task Sheet").Select Range("B5:D5").Select Selection.Copy Sheets("Completed Tasks").Select Range("B8:D8").Select ActiveSheet.Paste Range("A8:D8").Select Application.CutCopyMode = False With Selection.Font .Name = "Calibri" .FontStyle = "Regular" .Strikethrough = True .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .TintAndShade = 0 .ThemeFont = xlThemeFontMinor End With Sheets("Task Sheet").Select Range("A5:E5").Select Selection.ClearContents End Sub Last edited by macropod; 03-19-2013 at 04:57 PM. Reason: Added code tags & formatting |
#3
|
||||
|
||||
![]()
Hi Malissa,
I believe the following is what you're after: Code:
Sub TasksCompleted() Application.ScreenUpdating = False Dim WS1 As Worksheet, WS2 As Worksheet Dim lRow1 As Long, lRow2 As Long, i As Long Set WS1 = Sheets("Task Sheet") Set WS2 = Sheets("Completed Tasks") lRow1 = WS1.Range("E" & WS1.Cells.SpecialCells(xlCellTypeLastCell).Row).End(xlUp).Row lRow2 = WS2.Range("A" & WS2.Cells.SpecialCells(xlCellTypeLastCell).Row).End(xlUp).Row With WS1 For i = 2 To lRow1 If .Cells(i, 5).Value <> "" Then lRow2 = lRow2 + 1 With WS2 .Range("A" & lRow2).Value = WS1.Range("E" & i).Value .Range("B" & lRow2 & ":D" & lRow2).Value = WS1.Range("B" & i & ":D" & i).Value End With WS1.Range("A" & i & ":E" & i).ClearContents End If Next End With Application.ScreenUpdating = True End Sub
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
#4
|
|||
|
|||
![]() Quote:
Thank You ![]() |
![]() |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
![]() |
zapco76 | Project | 1 | 11-20-2012 05:43 AM |
sheet 2 data highlight in sheet 1 | gsrikanth | Excel | 1 | 04-21-2012 06:25 PM |
![]() |
PRADEEPB270 | Excel | 1 | 11-04-2011 03:46 AM |
copy cell from sheet 2 to sheet 3 macro | slipperyjim | Excel Programming | 1 | 02-18-2010 01:31 AM |
daily calender printing | ccronin4 | Outlook | 1 | 01-10-2007 12:47 PM |