ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Worksheet Functions (https://www.excelbanter.com/excel-worksheet-functions/)
-   -   Excell how to make a cell rotate names when taken off top (https://www.excelbanter.com/excel-worksheet-functions/67026-excell-how-make-cell-rotate-names-when-taken-off-top.html)

Vicky in the midwest

Excell how to make a cell rotate names when taken off top
 
In a seniority worksheet columm how can I set it up so that I can make a
macro that will move a name from the top of a column to the bottom sort of
like a rotate?

Ken Johnson

Excell how to make a cell rotate names when taken off top
 
Hi Vicky,
I'm not sure if this is what you are after.
With the following macro, if you select the name of the person at the
top of the list, then run the macro, that selected name is sent to the
bottom and every other name moves up one row to fill the gap.

Public Sub top_to_bottom()
Dim rngRest As Range
Dim vaTemp As Variant
Dim iNumUsedRows As Long
Dim iDemotedRow As Long
iDemotedRow = ActiveCell.Row

iNumUsedRows = Range("A:A").Rows.Count - _
Range(Cells(Range("A:A").Rows.Count, ActiveCell.Column), _
Cells(Range("A:A").Rows.Count, ActiveCell.Column). _
End(xlUp)).Rows.Count

vaTemp = Cells(iDemotedRow, ActiveCell.Column).Value

Set rngRest = Range(Cells(iDemotedRow + 1, ActiveCell.Column), _
Cells(iNumUsedRows + 1, ActiveCell.Column))

rngRest.Copy Cells(iDemotedRow, ActiveCell.Column)

Cells(iNumUsedRows + 1, ActiveCell.Column).Value = vaTemp
End Sub

Ken Johnson


nathaniel

Quote:

Originally Posted by Ken Johnson (Post 226918)
Hi Vicky,
I'm not sure if this is what you are after.
With the following macro, if you select the name of the person at the
top of the list, then run the macro, that selected name is sent to the
bottom and every other name moves up one row to fill the gap.

Public Sub top_to_bottom()
Dim rngRest As Range
Dim vaTemp As Variant
Dim iNumUsedRows As Long
Dim iDemotedRow As Long
iDemotedRow = ActiveCell.Row

iNumUsedRows = Range("A:A").Rows.Count - _
Range(Cells(Range("A:A").Rows.Count, ActiveCell.Column), _
Cells(Range("A:A").Rows.Count, ActiveCell.Column). _
End(xlUp)).Rows.Count

vaTemp = Cells(iDemotedRow, ActiveCell.Column).Value

Set rngRest = Range(Cells(iDemotedRow + 1, ActiveCell.Column), _
Cells(iNumUsedRows + 1, ActiveCell.Column))

rngRest.Copy Cells(iDemotedRow, ActiveCell.Column)

Cells(iNumUsedRows + 1, ActiveCell.Column).Value = vaTemp
End Sub

Ken Johnson

Hi Ken

Do you have one that rotates cells from bottom to top? so that last cell moves to the top and the rest move one down.

Rgds
Nathaniel


All times are GMT +1. The time now is 12:49 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com