Macro to select previous/next row that restarts when last/first record reached

  • Hi, I thought this was going to be simple …hoping for some help :)


    I have an excel table (list-object) of customer addresses with columns like Customer, Address, City etc. Assume a cell (row) has already been selected in the "Address" column.


    What I am after is a pair of macros that will increment/decrement the selected row up/down a row based on which macro is run. (will be assigned to menu buttons). The catch is that once the last row has been reached (if you're going down), it should select the top (first row) and then continue down again. Similarly, if you've been incrementing up, and reach the 1st row, then the last row should be selected and then it starts going up again.


    These macros will work in conjunction with a Worksheet_SelectionChange event macro that currently formats the selected cell in the address column and also copies the value of it to another cell. Note that I added 'SelectedAddress' as a variable because I thought it might be useful for the Up/Down macros I'm trying to make. It's not actually used in the worksheet change event shown below.



  • Code Tags
    Your post does not comply with our Forum RULES. Use code tags around code.


    Posting code between

    Code

    tags makes your code much easier to read and copy for testing, it also maintains VBA formatting.


    Click on Edit to open your thread, then highlight your code and click the # icon at the top of your post window. Please take a minute to read the few rules you agreed to when you joined.


    (This thread should receive no further responses until this moderation request is fulfilled)

  • Good morning forum members.


    Please see if anyone can assist with this small problem.
    This is what I have on one worksheet.
    [TABLE="border: 0, cellpadding: 0, cellspacing: 0"]

    [tr]


    [TD="width: 20"]A[/TD]
    [TD="width: 60"]B[/TD]
    [TD="width: 135"]C[/TD]
    [TD="width: 140"]D[/TD]
    [TD="width: 76"]E[/TD]
    [TD="width: 101"]F[/TD]
    [TD="width: 83"]E[/TD]
    [TD="width: 10"]H[/TD]
    [TD="width: 82"]I[/TD]
    [TD="width: 48"]J[/TD]
    [TD="width: 48"]K[/TD]
    [TD="width: 69"]L[/TD]
    [TD="width: 57"]M[/TD]
    [TD="width: 77"]N[/TD]

    [/tr]


    [tr]


    [TD="width: 20"]1[/TD]
    [TD="width: 195, colspan: 2"]WAGES SUMMARY[/TD]
    [TD="width: 140"]August 2019[/TD]
    [TD="width: 76"] [/TD]
    [TD="width: 101"]PAY PERIOD[/TD]
    [TD="width: 83, align: right"]25 July 2019[/TD]
    [TD="width: 10"] [/TD]
    [TD="width: 82"]TO[/TD]
    [TD="width: 96, colspan: 2"]24 August 2019[/TD]
    [TD="width: 203, colspan: 3"]TIME[/TD]

    [/tr]


    [tr]


    [TD="width: 20"]2[/TD]
    [TD="width: 60"] [/TD]
    [TD="width: 135"] [/TD]
    [TD="width: 140"] [/TD]
    [TD="width: 76"] [/TD]
    [TD="width: 101"] [/TD]
    [TD="width: 83"] [/TD]
    [TD="width: 10"] [/TD]
    [TD="width: 178, colspan: 3"]Rate[/TD]
    [TD="width: 203, colspan: 3"]Hours Worked[/TD]

    [/tr]


    [tr]


    [TD="width: 20"]3[/TD]
    [TD="width: 60"]Employee No.[/TD]
    [TD="width: 135"]Name[/TD]
    [TD="width: 140"]Occupation[/TD]
    [TD="width: 76"]Date Engaged[/TD]
    [TD="width: 101"]ID/PP No.[/TD]
    [TD="width: 83"]Tax No.[/TD]
    [TD="width: 10"] [/TD]
    [TD="width: 82"]Normal Hours Rate[/TD]
    [TD="width: 48"]OT Weekday[/TD]
    [TD="width: 48"]OT Sun/H.Day[/TD]
    [TD="width: 69"]Normal[/TD]
    [TD="width: 57"]OT Weekday[/TD]
    [TD="width: 77"]OT Sun/H.Day[/TD]

    [/tr]


    [tr]


    [TD="width: 20"]4[/TD]

    [td]

    DP1001

    [/td]


    [TD="width: 135"]Robert Diederiks[/TD]
    [TD="width: 140"]Driver[/TD]
    [TD="width: 76, align: right"]15 07 2018[/TD]
    [TD="width: 101, align: right"]6407295073085[/TD]
    [TD="width: 83"]0067207860[/TD]
    [TD="width: 10"] [/TD]
    [TD="width: 82"] R 55[/TD]
    [TD="width: 48"] R 83[/TD]
    [TD="width: 48"] R 110[/TD]
    [TD="width: 69"]33:30:00[/TD]
    [TD="width: 57"]8:00:00[/TD]
    [TD="width: 77"]8:00:00[/TD]

    [/tr]


    [tr]


    [TD="width: 20"]5[/TD]

    [td]

    DP1002

    [/td]


    [TD="width: 135"]Thabo Khaaha[/TD]
    [TD="width: 140"]Assistant[/TD]
    [TD="width: 76, align: right"]18 07 2018[/TD]
    [TD="width: 101, align: right"]6707135419087[/TD]
    [TD="width: 83"]0113859144[/TD]
    [TD="width: 10"] [/TD]
    [TD="width: 82"] R 45[/TD]
    [TD="width: 48"] R 68[/TD]
    [TD="width: 48"] R 90[/TD]
    [TD="width: 69"]0:00:00[/TD]
    [TD="width: 57"]0:00:00[/TD]
    [TD="width: 77"]0:00:00[/TD]

    [/tr]


    [/TABLE]

    I need to create payslips for each.


    I want to do one paysheet complete with referencing to cell on this worksheet.


    Then I want to copy the1st payslip complete with reference cells. I then want to paste it next to the 1st and so on.
    the payslips must then each record its relevant cell reference from the 1st worksheet. (Hope you understand)


    This what the payslip will look like.
    [TABLE="border: 0, cellpadding: 0, cellspacing: 0"]

    [tr]


    [TD="width: 21"]A[/TD]
    [TD="width: 61"]B[/TD]
    [TD="width: 61"]C[/TD]
    [TD="width: 40"]D[/TD]
    [TD="width: 72"]E[/TD]
    [TD="width: 72"]F[/TD]
    [TD="width: 47"]G[/TD]
    [TD="width: 50"]H[/TD]
    [TD="width: 72"]I[/TD]
    [TD="width: 61"]J[/TD]
    [TD="width: 72"]K[/TD]

    [/tr]


    [tr]


    [TD="align: right"]1[/TD]

    [td][/td]


    [td][/td]


    [td][/td]


    [td][/td]


    [td][/td]


    [td][/td]


    [td][/td]


    [td][/td]


    [td][/td]


    [td][/td]


    [/tr]


    [tr]


    [TD="align: right"]2[/TD]
    [TD="colspan: 5"]COMPANY DETAILS[/TD]
    [TD="colspan: 5"]EMPLOYEE DETAILS[/TD]

    [/tr]


    [tr]


    [TD="align: right"]3[/TD]
    [TD="colspan: 3"]DIGOGI PROJECTS (Pty) Ltd[/TD]

    [td][/td]


    [td][/td]


    [TD="colspan: 3"]Robert Diederiks[/TD]

    [td]

    Empl. No:

    [/td]


    [td]

    DP1001

    [/td]


    [/tr]


    [tr]


    [TD="align: right"]4[/TD]
    [TD="colspan: 3"]PO Box 205, Northam, 0360[/TD]

    [td][/td]


    [td][/td]


    [TD="colspan: 2"]Occupation:[/TD]
    [TD="colspan: 3"]Driver[/TD]

    [/tr]


    [tr]


    [TD="align: right"]5[/TD]

    [td]

    Reg No:

    [/td]


    [td][/td]


    [TD="colspan: 2"]2019/130076/07[/TD]

    [td][/td]


    [td]

    ID:

    [/td]


    [TD="colspan: 2"]6407295073085[/TD]

    [td]

    Date Eng.

    [/td]


    [td]

    15 07 2018

    [/td]


    [/tr]


    [tr]


    [TD="align: right"]6[/TD]
    [TD="colspan: 2"]Tax Ref No:[/TD]
    [TD="colspan: 2"]9552885189[/TD]

    [td][/td]


    [TD="colspan: 2"]Pay Period:[/TD]

    [td]

    25 07 2019

    [/td]


    [td]

    TO

    [/td]


    [td]

    24 08 2019

    [/td]


    [/tr]


    [tr]


    [TD="align: right"]7[/TD]

    [td][/td]


    [td][/td]


    [td][/td]


    [td][/td]


    [td][/td]


    [td][/td]


    [td][/td]


    [td][/td]


    [td][/td]


    [td][/td]


    [/tr]


    [tr]


    [TD="align: right"]8[/TD]

    [td][/td]


    [td][/td]


    [td][/td]


    [td][/td]


    [td][/td]


    [td][/td]


    [td][/td]


    [td][/td]


    [td][/td]


    [td][/td]


    [/tr]


    [tr]


    [TD="align: right"]9[/TD]

    [td][/td]


    [td][/td]


    [td][/td]


    [td][/td]


    [td][/td]


    [td][/td]


    [td][/td]


    [td][/td]


    [td][/td]


    [td][/td]


    [/tr]


    [tr]


    [TD="align: right"]10[/TD]
    [TD="colspan: 3"]DIGOGI PROJECTS (Pty) Ltd[/TD]

    [td][/td]


    [td][/td]


    [TD="colspan: 3"]Robert Diederiks[/TD]

    [td]

    Empl. No:

    [/td]


    [td]

    DP1001

    [/td]


    [/tr]


    [tr]


    [TD="align: right"]11[/TD]
    [TD="colspan: 3"]PO Box 205, Northam, 0360[/TD]

    [td][/td]


    [td][/td]


    [TD="colspan: 2"]Occupation:[/TD]
    [TD="colspan: 3"]Driver[/TD]

    [/tr]


    [tr]


    [TD="align: right"]12[/TD]

    [td]

    Reg No:

    [/td]


    [td][/td]


    [TD="colspan: 2"]2019/130076/07[/TD]

    [td][/td]


    [td]

    ID:

    [/td]


    [TD="colspan: 2"]6407295073085[/TD]

    [td]

    Date Eng:

    [/td]


    [td]

    15 07 2018

    [/td]


    [/tr]


    [tr]


    [TD="align: right"]13[/TD]
    [TD="colspan: 2"]Tax Ref No:[/TD]
    [TD="colspan: 2"]9552885189[/TD]

    [td][/td]


    [td]

    PAYE No:

    [/td]


    [TD="colspan: 2"]0067207860[/TD]

    [td]

    Rate (Hr):

    [/td]


    [td]

    R 55,00

    [/td]


    [/tr]


    [tr]


    [TD="align: right"]14[/TD]

    [td]

    UIF No:

    [/td]


    [td][/td]


    [TD="colspan: 2"]2554789/1[/TD]

    [td][/td]


    [TD="colspan: 2"]Pay Period:[/TD]

    [td]

    25 07 2019

    [/td]


    [td]

    TO

    [/td]


    [td]

    24 08 2019

    [/td]


    [/tr]


    [tr]


    [TD="align: right"]15[/TD]

    [td][/td]


    [td][/td]


    [td][/td]


    [td][/td]


    [td][/td]


    [td]

    Bank:

    [/td]


    [TD="colspan: 2"] Capitec [/TD]

    [td]

    Branch:

    [/td]


    [td]

    Northam

    [/td]


    [/tr]


    [tr]


    [TD="align: right"]16[/TD]

    [td][/td]


    [td][/td]


    [td][/td]


    [td][/td]


    [td][/td]


    [TD="colspan: 2"]Account No:[/TD]
    [TD="colspan: 2"]1403208083[/TD]

    [td][/td]


    [/tr]


    [/TABLE]

  • Herms, welcome to the Forum. Please start your own question. Do not simply tag it onto an existing one.


    You will find attaching an example workbook will be more helpful than trying to replicate it in a post

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!