Microsoft Excel 2010 Copy/Paste Edit Ideas & Help Request On Minor Detail -


yes, have written macro microsoft excel (2010 if helps), assistance of else. wondering if has way of shortening it, , making more efficient. still getting same outcome gave before? example of csv format have work can found here... , yes, unfortunately, have put columns , cells..

the issue stumped on this: on .cell(2, 3) example... if notice, on each section copy , paste, has new row.. want that.. novice @ this, , not find way make paste each 1 next available row.. solution 2, 3, 4, 5.. , on.. if knows how change make this.. loop? per say, great help. loop amount of data being copied though, , not repeat.

here example csv: media fire it's clean, promise. thank time.

macro code copy column/row data cells 1 sheet specific cells

sub formatdata() dim col integer  col = 1 1     worksheets(2)        .cells(2, 2) = cells(1, col)        .cells(2, 3) = cells(2, col) & ". " & cells(3, col) & ". " & cells(4, col) & ". " & cells(5, col) & "."        .cells(2, 4) = cells(7, col)        .cells(2, 5) = cells(10, col)     end next col     col = 2 2     worksheets(2)        .cells(3, 2) = cells(1, col)        .cells(3, 3) = cells(2, col) & ". " & cells(3, col) & ". " & cells(4, col) & ". " & cells(5, col) & "."        .cells(3, 4) = cells(7, col)        .cells(3, 5) = cells(10, col)     end next col     col = 3 3     worksheets(2)        .cells(4, 2) = cells(1, col)        .cells(4, 3) = cells(2, col) & ". " & cells(3, col) & ". " & cells(4, col) & ". " & cells(5, col) & "."        .cells(4, 4) = cells(7, col)        .cells(4, 5) = cells(10, col)     end next col     col = 4 4     worksheets(2)        .cells(5, 2) = cells(1, col)        .cells(5, 3) = cells(2, col) & ". " & cells(3, col) & ". " & cells(4, col) & ". " & cells(5, col) & "."        .cells(5, 4) = cells(7, col)        .cells(5, 5) = cells(10, col)     end next col      col = 1 1     worksheets(2)        .cells(6, 2) = cells(13, col)        .cells(6, 3) = cells(14, col) & ". " & cells(15, col) & ". " & cells(16, col) & ". " & cells(17, col) & "."        .cells(6, 4) = cells(19, col)        .cells(6, 5) = cells(22, col)     end next col         col = 2 2     worksheets(2)        .cells(7, 2) = cells(13, col)        .cells(7, 3) = cells(14, col) & ". " & cells(15, col) & ". " & cells(16, col) & ". " & cells(17, col) & "."        .cells(7, 4) = cells(19, col)        .cells(7, 5) = cells(22, col)     end next col         col = 3 3     worksheets(2)        .cells(8, 2) = cells(13, col)        .cells(8, 3) = cells(14, col) & ". " & cells(15, col) & ". " & cells(16, col) & ". " & cells(17, col) & "."        .cells(8, 4) = cells(19, col)        .cells(8, 5) = cells(22, col)     end next col         col = 4 4     worksheets(2)        .cells(9, 2) = cells(13, col)        .cells(9, 3) = cells(14, col) & ". " & cells(15, col) & ". " & cells(16, col) & ". " & cells(17, col) & "."        .cells(9, 4) = cells(19, col)        .cells(9, 5) = cells(22, col)     end next col         col = 1 1     worksheets(2)        .cells(10, 2) = cells(25, col)        .cells(10, 3) = cells(26, col) & ". " & cells(27, col) & ". " & cells(28, col) & ". " & cells(29, col) & "."        .cells(10, 4) = cells(31, col)        .cells(10, 5) = cells(34, col)     end next col         col = 2 2     worksheets(2)        .cells(11, 2) = cells(25, col)        .cells(11, 3) = cells(26, col) & ". " & cells(27, col) & ". " & cells(28, col) & ". " & cells(29, col) & "."        .cells(11, 4) = cells(31, col)        .cells(11, 5) = cells(34, col)     end next col         col = 3 3     worksheets(2)        .cells(12, 2) = cells(25, col)        .cells(12, 3) = cells(26, col) & ". " & cells(27, col) & ". " & cells(28, col) & ". " & cells(29, col) & "."        .cells(12, 4) = cells(31, col)        .cells(12, 5) = cells(34, col)     end next col         col = 4 4     worksheets(2)        .cells(13, 2) = cells(25, col)        .cells(13, 3) = cells(26, col) & ". " & cells(27, col) & ". " & cells(28, col) & ". " & cells(29, col) & "."        .cells(13, 4) = cells(31, col)        .cells(13, 5) = cells(34, col)     end next col         col = 1 1     worksheets(2)        .cells(14, 2) = cells(37, col)        .cells(14, 3) = cells(38, col) & ". " & cells(39, col) & ". " & cells(40, col) & ". " & cells(41, col) & "."        .cells(14, 4) = cells(43, col)        .cells(14, 5) = cells(46, col)     end next col         col = 2 2     worksheets(2)        .cells(15, 2) = cells(37, col)        .cells(15, 3) = cells(38, col) & ". " & cells(39, col) & ". " & cells(40, col) & ". " & cells(41, col) & "."        .cells(15, 4) = cells(43, col)        .cells(15, 5) = cells(46, col)     end next col         col = 3 3     worksheets(2)        .cells(16, 2) = cells(37, col)        .cells(16, 3) = cells(38, col) & ". " & cells(39, col) & ". " & cells(40, col) & ". " & cells(41, col) & "."        .cells(16, 4) = cells(43, col)        .cells(16, 5) = cells(46, col)     end next col         col = 4 4     worksheets(2)        .cells(17, 2) = cells(37, col)        .cells(17, 3) = cells(38, col) & ". " & cells(39, col) & ". " & cells(40, col) & ". " & cells(41, col) & "."        .cells(17, 4) = cells(43, col)        .cells(17, 5) = cells(46, col)     end next col         col = 1 1     worksheets(2)        .cells(18, 2) = cells(49, col)        .cells(18, 3) = cells(50, col) & ". " & cells(51, col) & ". " & cells(52, col) & ". " & cells(53, col) & "."        .cells(18, 4) = cells(55, col)        .cells(18, 5) = cells(58, col)     end next col         col = 2 2     worksheets(2)        .cells(19, 2) = cells(49, col)        .cells(19, 3) = cells(50, col) & ". " & cells(51, col) & ". " & cells(52, col) & ". " & cells(53, col) & "."        .cells(19, 4) = cells(55, col)        .cells(19, 5) = cells(58, col)     end next col         col = 3 3     worksheets(2)        .cells(20, 2) = cells(49, col)        .cells(20, 3) = cells(50, col) & ". " & cells(51, col) & ". " & cells(52, col) & ". " & cells(53, col) & "."        .cells(20, 4) = cells(55, col)        .cells(20, 5) = cells(58, col)     end next col         col = 4 4     worksheets(2)        .cells(21, 2) = cells(49, col)        .cells(21, 3) = cells(50, col) & ". " & cells(51, col) & ". " & cells(52, col) & ". " & cells(53, col) & "."        .cells(21, 4) = cells(55, col)        .cells(21, 5) = cells(58, col)     end next col         col = 1 1     worksheets(2)        .cells(22, 2) = cells(61, col)        .cells(22, 3) = cells(62, col) & ". " & cells(63, col) & ". " & cells(64, col) & ". " & cells(65, col) & "."        .cells(22, 4) = cells(67, col)        .cells(22, 5) = cells(70, col)     end next col         col = 2 2     worksheets(2)        .cells(23, 2) = cells(61, col)        .cells(23, 3) = cells(62, col) & ". " & cells(63, col) & ". " & cells(64, col) & ". " & cells(65, col) & "."        .cells(23, 4) = cells(67, col)        .cells(23, 5) = cells(70, col)     end next col         col = 3 3     worksheets(2)        .cells(24, 2) = cells(61, col)        .cells(24, 3) = cells(62, col) & ". " & cells(63, col) & ". " & cells(64, col) & ". " & cells(65, col) & "."        .cells(24, 4) = cells(67, col)        .cells(24, 5) = cells(70, col)     end next col         col = 4 4     worksheets(2)        .cells(25, 2) = cells(61, col)        .cells(25, 3) = cells(62, col) & ". " & cells(63, col) & ". " & cells(64, col) & ". " & cells(65, col) & "."        .cells(25, 4) = cells(67, col)        .cells(25, 5) = cells(70, col)     end next col         col = 1 1     worksheets(2)        .cells(26, 2) = cells(73, col)        .cells(26, 3) = cells(74, col) & ". " & cells(75, col) & ". " & cells(76, col) & ". " & cells(77, col) & "."        .cells(26, 4) = cells(79, col)        .cells(26, 5) = cells(82, col)     end next col         col = 2 2     worksheets(2)        .cells(27, 2) = cells(73, col)        .cells(27, 3) = cells(74, col) & ". " & cells(75, col) & ". " & cells(76, col) & ". " & cells(77, col) & "."        .cells(27, 4) = cells(79, col)        .cells(27, 5) = cells(82, col)     end next col         col = 3 3     worksheets(2)        .cells(28, 2) = cells(73, col)        .cells(28, 3) = cells(74, col) & ". " & cells(75, col) & ". " & cells(76, col) & ". " & cells(77, col) & "."        .cells(28, 4) = cells(79, col)        .cells(28, 5) = cells(82, col)     end next col         col = 4 4     worksheets(2)        .cells(29, 2) = cells(73, col)        .cells(29, 3) = cells(74, col) & ". " & cells(75, col) & ". " & cells(76, col) & ". " & cells(77, col) & "."        .cells(29, 4) = cells(79, col)        .cells(29, 5) = cells(82, col)     end next col         col = 1 1     worksheets(2)        .cells(30, 2) = cells(85, col)        .cells(30, 3) = cells(86, col) & ". " & cells(87, col) & ". " & cells(88, col) & ". " & cells(89, col) & "."        .cells(30, 4) = cells(91, col)        .cells(30, 5) = cells(94, col)     end next col         col = 2 2     worksheets(2)        .cells(31, 2) = cells(85, col)        .cells(31, 3) = cells(86, col) & ". " & cells(87, col) & ". " & cells(88, col) & ". " & cells(89, col) & "."        .cells(31, 4) = cells(91, col)        .cells(31, 5) = cells(94, col)     end next col         col = 3 3     worksheets(2)        .cells(32, 2) = cells(85, col)        .cells(32, 3) = cells(86, col) & ". " & cells(87, col) & ". " & cells(88, col) & ". " & cells(89, col) & "."        .cells(32, 4) = cells(91, col)        .cells(32, 5) = cells(94, col)     end next col         col = 4 4     worksheets(2)        .cells(33, 2) = cells(85, col)        .cells(33, 3) = cells(86, col) & ". " & cells(87, col) & ". " & cells(88, col) & ". " & cells(89, col) & "."        .cells(33, 4) = cells(91, col)        .cells(33, 5) = cells(94, col)     end next col end sub 

here's refactored sub

points note:

  • use variant arrays looping/data processing because looping through cells slow

  • you can change value of srcblocks control how many blocks process, or extract source data

  • refering destination sheet index can problematic if moved. safer refer name worksheets("sheetname")

.

sub formatdata()     dim rw2 integer, rwa integer, cola integer     dim vdst() variant, vsrc variant     dim srcblocks integer      srcblocks = 8 ' process 8 blocks of 12 rows      vsrc = activesheet.range("a1:d" & srcblocks * 12)     redim vdst(1 srcblocks * 4 + 1, 1 5)      rwa = 0 srcblocks * 12 - 1 step 12  ' = 0, 12, 24, ...         cola = 1 4                      ' 4 columns in src             rw2 = (rwa \ 12) * 4 + cola + 1    ' 4 dst rws per block, = 2..5, 6..9, ...              vdst(rw2, 2) = vsrc(rwa + 1, cola)             vdst(rw2, 3) = vsrc(rwa + 2, cola) & ". " & _                            vsrc(rwa + 3, cola) & ". " & _                            vsrc(rwa + 4, cola) & ". " & _                            vsrc(rwa + 5, cola) & "."             vdst(rw2, 4) = vsrc(rwa + 7, cola)             vdst(rw2, 5) = vsrc(rwa + 10, cola)         next cola     next rwa      worksheets(2).range("a1:e" & cstr(srcblocks * 4 + 1)) = vdst end sub 

to add flexability, variable number of columns in source data

sub formatdata()     dim rw2 integer, rwa integer, cola integer     dim vdst() variant, vsrc variant     dim srcblocks integer, srccolumns integer      srcblocks = 8  ' process 8 blocks of 12 rows '     srccolumns = 5 ' columns in source data '      vsrc = activesheet.range( _              activesheet.cells(1, 1), _              activesheet.cells(srcblocks * 12, srccolumns))     redim vdst(1 srcblocks * srccolumns + 1, 1 5)      rwa = 0 srcblocks * 12 - 1 step 12           ' = 0, 12, 24, ... '         cola = 1 srccolumns                      ' srccolumns columns in source '             rw2 = (rwa \ 12) * srccolumns + cola + 1    ' srccolumns rows in destination per source block '              vdst(rw2, 2) = vsrc(rwa + 1, cola)             vdst(rw2, 3) = vsrc(rwa + 2, cola) & ". " & _                          vsrc(rwa + 3, cola) & ". " & _                          vsrc(rwa + 4, cola) & ". " & _                          vsrc(rwa + 5, cola) & "."             vdst(rw2, 4) = vsrc(rwa + 7, cola)             vdst(rw2, 5) = vsrc(rwa + 10, cola)         next cola     next rwa      worksheets(2).range("a1:e" & cstr(srcblocks * 4 + 1)) = vdst end sub 

Comments