excel - Sorting Macro not functioning properly -


i've written macro cut , paste rows 1 sheet ("new providers - fppe") multiple sheets based on column (h). when first used it, working well, when have added additional data sorting sheet ("new providers - fppe") not functioning. macro continues cut rows "new providers - fppe" rows fail populate onto sheets. have no idea rows going. have insight happening? i'm new writing macros appreciated!

option explicit  sub fr33m4cro()  dim sh33tname string dim custnamecolumn string dim long dim strow long dim customer string dim ws worksheet dim sheetexist boolean dim sh worksheet  sh33tname = "new providers - fppe" custnamecolumn = "h" strow = 7  set sh = sheets(sh33tname)  = sh.range(custnamecolumn & sh.rows.count).end(xlup).row strow step -1     customer = sh.range(custnamecolumn & i).value     each ws in thisworkbook.sheets         if strcomp(ws.name, customer, vbtextcompare) = 0             sheetexist = true             exit         end if     next     if sheetexist         copyrow i, sh, ws, custnamecolumn     else         insertsheet customer         set ws = sheets(worksheets.count)         copyrow i, sh, ws, custnamecolumn     end if     reset sheetexist next  end sub  private sub copyrow(i long, byref sh worksheet, byref ws worksheet, custnamecolumn string) dim wsrow long wsrow = ws.range(custnamecolumn & ws.rows.count).end(xlup).row + 1   ws.rows(wsrow).entirerow.value = sh.rows(i).entirerow.value sh.rows(i).entirerow.delete end sub   private sub reset(byref x boolean) x = false end sub  private sub insertsheet(shname string) worksheets.add(after:=worksheets(worksheets.count)).name = shname end sub 

i suggest change insertsheet sub function returns reference inserted worksheet:

function insertsheet(shname string) worksheet     set insertsheet = worksheets.add(after:=worksheets(worksheets.count))     insertsheet.name = shname end function 

then change part of code:

    insertsheet customer     set ws = sheets(worksheets.count)     copyrow i, sh, ws, custnamecolumn 

to this:

    set ws = insertsheet(customer)     copyrow i, sh, ws, custnamecolumn 

Comments