This portion
With toWks
For Each myCell In myRng.Cells
iRow = myCell.Row
DestCell.Value = actWks.Cells(iRow, "a").Value
DestCell.Offset(0, 1).Value = actWks.Cells(iRow, "BW").Value
Set DestCell = DestCell.Offset(0, 1)
DestCell.Offset(0, 1).Value = actWks.Cells(iRow, "AA").Value
Set DestCell = DestCell.Offset(0, 1)
Application.Goto .Range("a1"), scroll:=True
Next myCell
End With
should look more like:
With toWks
For Each myCell In myRng.Cells
iRow = myCell.Row
DestCell.Value = actWks.Cells(iRow, "a").Value
DestCell.Offset(0, 4).Value = actWks.Cells(iRow, "BW").Value
DestCell.Offset(0, 8).Value = actWks.Cells(iRow, "AA").Value
Set DestCell = DestCell.Offset(0, 1)
Application.Goto .Range("a1"), scroll:=True
Next myCell
End With
This line essentially moves down one row:
Set DestCell = DestCell.Offset(0, 1)
So you only have to do that when you're done plopping in the values for that
row.
And the .offset() lines like:
destcell.offset(x,y).value = ....
Destcell in in column A. .offset(x,y) says to "move" to x rows (up or down) and
y columns (right or left).
range("z99").offset(-1,-2) would "move" one row up and two columns to the left.
So DestCell.Offset(0, 8).Value = actWks.Cells(iRow, "AA").Value
moves to the same row (0 rows) and 8 columns to the right.
Optitron wrote:
I got this macro from someone in this forum. It moves two specific cells
from one row on a sheet to two cells in a row on another sheet "DRMO". I
tried to modify it to move three cells but if I select more than one row
and click the button it fills them in horizontally instead of
vertically. For this one I need; cell A to cell A, cell BW to cell E,
and cell AA to cell I.
Option Explicit
Sub DRMO()
Dim toWks As Worksheet
Dim actWks As Worksheet
Dim myRng As Range
Dim myCell As Range
Dim iRow As Long
Dim DestCell As Range
Set actWks = ActiveSheet
Set toWks = Worksheets("DRMO")
Set myRng = Intersect(Selection.EntireRow, actWks.Range("a:a"))
With toWks
Set DestCell = .Cells(.Rows.Count, "A").End(xlUp).Offset(1, 0)
End With
With toWks
For Each myCell In myRng.Cells
iRow = myCell.Row
DestCell.Value = actWks.Cells(iRow, "a").Value
DestCell.Offset(0, 1).Value = actWks.Cells(iRow, "BW").Value
Set DestCell = DestCell.Offset(0, 1)
DestCell.Offset(0, 1).Value = actWks.Cells(iRow, "AA").Value
Set DestCell = DestCell.Offset(0, 1)
Application.Goto .Range("a1"), scroll:=True
Next myCell
End With
End Sub
--
Optitron
------------------------------------------------------------------------
Optitron's Profile: http://www.excelforum.com/member.php...o&userid=26729
View this thread: http://www.excelforum.com/showthread...hreadid=475519
--
Dave Peterson