i trying create if statement lets me send number , value workbook deepening on value in 3rd cell (weather cell is true or false"). code want run if statement true below. have tested code, , works, want happen if third cell in row true. needs carry information number , value rows value true function below.
dim itemname string dim itemprice string dim mydata workbook worksheets("sheet1").select invoicenumber = range("a2") qty = range("b2") updated = range("c2") set mydata = workbooks.open("hd:users:user:desktop:inventory.xlsm") worksheets("orders").select worksheets("orders").range("a15").select rowcount = worksheets("orders").range("a15").currentregion.rows.count worksheets("orders").range("a15") .offset(rowcount, 0) = invoicenumber .offset(rowcount, 1) = qty .offset(rowcount, 2) = updated end
your code looks use loop go through series of rows suppose may case single operation required.
dim itemname string dim itemprice string dim mydata workbook dim sinvoicenumber string, dqty double, bupdated boolean, irowcount long worksheets("sheet1") sinvoicenumber = .range("a2").value dqty = .range("b2").value bupdated = cbool(.range("c2").value) if bupdated set mydata = workbooks.open("hd:users:user:desktop:inventory.xlsm") mydata.worksheets("orders").range("a15") irowcount = .currentregion.rows.count .offset(irowcount, 0) = sinvoicenumber .offset(irowcount, 1) = dqty .offset(irowcount, 2) = bupdated end mydata.close true '<-save , close workbook .range("c2") = not bupdated '<- reset updated field end if end rather loop through rows, bulk transfer operation can used filtering data.
dim itemname string dim itemprice string dim mydata workbook dim irowcount long worksheets("sheet1") if .autofiltermode autofiltermode = false .cells(1, 1).currentregion .autofilter field:=3, criteria1:="true" .offset(1, 0).resize(.rows.count - 1, 3) if cbool(application.subtotal(103, .columns(1))) set mydata = workbooks.open("hd:users:user:desktop:inventory.xlsm") .cells.copy destination:=mydata.sheets("orders").cells(rows.count, 1).end(xlup).offset(1, 0) mydata.close true '<-save , close workbook .columns(3).cells = false end if end .autofilter field:=3 end if .autofiltermode autofiltermode = false end that filters on worksheet cell value of true in column c.
Comments
Post a Comment