Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hey folks.
I have a macro where I select a whole row, and the insert it at a location. There are formulas above and below the insertion. the copied row has the formula, but it fails to carry on the paste. I think maybe all I need to do is add some declaration in the insert line to grab it as well or... Anyway, here is the code snip. Sub ProgAdd() ' ' ProgAdd Macro ' Insert a line within a named range for the Program Listing Sheets("Programs").Select Range("WOLineAdd").Select Selection.Copy Range("NewProgLine").Select Selection.Insert Shift:=xlDown End Sub The "NewProgLine" select an entire row at the bottom of the 'table'. This makes the insertion within a previously defined range. One of the cells has a formula in it. So, I guess what I really want is a "copy" and then an "Insert copied Cells" coding to carry everything that copied row contains. |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I mostly use context-sensitive menus with multi-sheet projects so only
the actions that the active sheet supports are available/enabled. That said, I have a common 'AddRows' procedure that's available on the right-click popup menu of some sheets. This has 3 menuitems... "Add rows above here" "Add rows below here" "Add more rows" ...where the 1st 2 menuitems are relative to the active cell, and the last menuitem inserts rows at the bottom of the input area. The row[s] being inserted are predesigned for formatting/formulas and are defined name ranges stored (hidden) at the top of the worksheet in my "ProgRows" area. (I do same for cols to the left in my "ProgCols" area) Here's my procedure... Sub AddRows() ' Inserts a specified number of rows at the location specified in the ActionControl.Tag property Const sSource$ = "AddRows()" Dim vRowCount As Variant, lPos& Const sMsg$ = "Enter the number of rows to insert." 'Evaluate user input vRowCount = 1 '//the default On Error Resume Next vRowCount = InputBox(sMsg, gsAPP_NAME, Default:=1) If vRowCount = "" Then Exit Sub '//user cancels If Not Err = 0 Or Not IsNumeric(vRowCount) Then _ Call NotifyInvalidInput: Exit Sub 'Determine the number of rows Select Case vRowCount Case Is = 1: vRowCount = vRowCount Case Else: Call NotifyInvalidInput: Exit Sub End Select 'vRowCount 'Get the position to insert Select Case CommandBars.ActionControl.Tag Case "Above": lPos = ActiveCell.Row Case "Below": lPos = ActiveCell.Row + 1 Case "Add": lPos = Cells(Range("InputArea").Rows.Count, 1).Row + 1 End Select 'Insert the rows EnableFastCode True ActiveSheet.Unprotect PWRD With Range("BlankTransaction") .EntireRow.Hidden = False .Copy: Cells(lPos, 1).Resize(vRowCount).Insert Shift:=xlDown .EntireRow.Hidden = True End With Application.CutCopyMode = False '//turn off phantom selection 'Reset the scroll area to include the new rows Call SetupUI(ActiveSheet): Call EnableFastCode(False): Call wsProtect End Sub 'AddRows ...wherein you'll note other things going on that relate to the insertion of new rows on protected sheets. Ignore that code and focus on the copy/insert code inside the With...End With block. My "BlankTransaction" range is an entire row (or rows depending on the sheet context), as are all my ProgRows. (same for ProgCols) All the predesigned formatting/formulas follow intact. -- Garry Free usenet access at http://www.eternal-september.org Classic VB Users Regroup! comp.lang.basic.visual.misc microsoft.public.vb.general.discussion |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Keeping Formulas Not Data | Excel Worksheet Functions | |||
how do I insert row keeping formulas from previous row? | Excel Discussion (Misc queries) | |||
insert row keeping borders | Excel Discussion (Misc queries) | |||
Insert some cells by keeping the title block as same | Excel Discussion (Misc queries) | |||
Help with keeping formulas in place! | Excel Discussion (Misc queries) |