Thread: Move and Link3
View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Ronald R. Dodge, Jr.[_2_] Ronald R. Dodge, Jr.[_2_] is offline
external usenet poster
 
Posts: 134
Default Move and Link3

2 things would be of help.

The short dirty way is to assign worksheet to a worksheet object like

Set wshDestination = Thisworkbook.Worksheets("Sheet2")

The better way would be to modulate the code meaning the portion of the code
you want to be performed the say way on Sheet 3 as you want on Sheet 2 would
be put into a different procedure.

Example:

Sub ML()
Dim rw As Long, l_lngWorksheetNumber as Long
Dim rngSource As Range
Dim rngDest As Range
Dim rng As Range

Set rngSource = Worksheets("Sheet 1").Range("A4:H200")
With rngSource
For l_lngWorksheetNumber = 2 to Worksheets("Sheet
1").Parent.Worksheets.Count Step 1
Set rngDest =
Worksheets(l_lngWorksheetNumber).Range("B4").Resiz e(.Rows.Count * 2,
..Columns.Count)
Destination rngDest, rngSource
Next l_lngWorksheetNumber
End With
End Sub

Sub Destination(ByVal rngDest as Excel.Worksheet, ByVal rngSource as
Excel.Worksheet)
Dim rng As Excel.Range

Set rngDest = Worksheets("Sheet 2").Range("B4")

With rngSource
Set rngDest = rngDest.Resize(.Rows.Count * 2, .Columns.Count)
End With

For Each rng In rngSource.Rows
rw = rw + 2
rngDest.Rows(rw).Value = rng.Value
Next

Set rngSource = Worksheets("Sheet 1").Range("Ak4:AK200")
rw = -1
For Each rng In rngSource
rw = rw + 2
rngDest(rw, 1).Formula = "=" & rng.Address(external:=True)
Next
End Sub


Now the above code does assume that "Sheet1" is the first worksheet within
the workbook.

Also, in cause you wondered why I used the l_ in front of
lngWorksheetNumber, it's just one of my programming rules that I use to
distinguish rather if it's procedure level ('l_' for a variable declared
within a method, which the l stands for local), module level ('m_' for a
variable declared in the module level declarations with either the keyword
of Dim or Private), or global level ('g_' for a variable declared in the
module level declarations with the keyword of Public).

--
Thanks,

Ronald R. Dodge, Jr.
Production Statistician
Master MOUS 2000
"MCheru" wrote in message
...
I want to change this code so that the same thing that happens in Sheet 2
will also happen in a 3rd worksheet called Sheet 3. Might you be able to
help?

Sub ML()
Dim rw As Long
Dim rngSource As Range
Dim rngDest As Range
Dim rng As Range

Set rngSource = Worksheets("Sheet 1").Range("A4:H200")
Set rngDest = Worksheets("Sheet 2").Range("B4")

With rngSource
Set rngDest = rngDest.Resize(.Rows.Count * 2, .Columns.Count)
End With

For Each rng In rngSource.Rows
rw = rw + 2
rngDest.Rows(rw).Value = rng.Value
Next

Set rngSource = Worksheets("Sheet 1").Range("Ak4:AK200")
rw = -1
For Each rng In rngSource
rw = rw + 2
rngDest(rw, 1).Formula = "=" & rng.Address(external:=True)
Next

End Sub