ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   macro to find numeric data & move it (https://www.excelbanter.com/excel-programming/334667-macro-find-numeric-data-move.html)

Steve Simons

macro to find numeric data & move it
 
I need a macro that will look down column B and when it finds a
number, move that number to the corresponding cell in column A, then
copy this down until it finds a blank in column B.

I've tried to layout an example below:

A B C D

1 TEXT

2 TEXT

3 123

4 TEXT AGAIN

5 TEXT AGAIN

6

7 987

8 MORE TEXT

9 MORE TEXT


after the macro runs I want the following result:

A B C D

1 TEXT

2 TEXT

3 123

4 123 TEXT AGAIN

5 123 TEXT AGAIN

6

7 987

8 987 MORE TEXT

9 987 MORE TEXT


Sub MoveIt()
msg = "Don't forget to put a '* Total' at the foot of the column"
If MsgBox(msg, vbOKCancel, "Reminder..") = 2 Then Exit Sub
Do While ActiveCell < "'* Total"
With ActiveCell
' PLACE YOUR CODE IN HERE
End With
Loop
End Sub

My problem is, I have no idea what code to place in the ' PLACE YOUR
CODE IN HERE area!

Any help much appreciated.


Jim Thomlinson[_4_]

macro to find numeric data & move it
 
Give this a try...

Sub MoveIt()
Dim rngToSearch As Range
Dim rngCurrent As Range
Dim varTargetNumber As Variant

varTargetNumber = ""
Set rngToSearch = Range("B1", Range("B65536").End(xlUp).Offset(-1, 0))


If MsgBox("Don't forget to put a '* Total' at the foot of the column", _
vbOKCancel, "Reminder..") = vbCancel Then Exit Sub
For Each rngCurrent In rngToSearch
If IsNumeric(rngCurrent) Then
varTargetNumber = rngCurrent.Value
rngCurrent.Value = ""
End If
rngCurrent.Offset(0, -1).Value = varTargetNumber
Next rngCurrent
End Sub
--
HTH...

Jim Thomlinson


"Steve Simons" wrote:

I need a macro that will look down column B and when it finds a
number, move that number to the corresponding cell in column A, then
copy this down until it finds a blank in column B.

I've tried to layout an example below:

A B C D

1 TEXT

2 TEXT

3 123

4 TEXT AGAIN

5 TEXT AGAIN

6

7 987

8 MORE TEXT

9 MORE TEXT


after the macro runs I want the following result:

A B C D

1 TEXT

2 TEXT

3 123

4 123 TEXT AGAIN

5 123 TEXT AGAIN

6

7 987

8 987 MORE TEXT

9 987 MORE TEXT


Sub MoveIt()
msg = "Don't forget to put a '* Total' at the foot of the column"
If MsgBox(msg, vbOKCancel, "Reminder..") = 2 Then Exit Sub
Do While ActiveCell < "'* Total"
With ActiveCell
' PLACE YOUR CODE IN HERE
End With
Loop
End Sub

My problem is, I have no idea what code to place in the ' PLACE YOUR
CODE IN HERE area!

Any help much appreciated.



Steve Simons

macro to find numeric data & move it
 
Jim

This is spot-on, worked first time.

Many thanks, you saved me and my colleagues hours of work, it's very
much appreciated.

Steve


On Fri, 15 Jul 2005 10:28:04 -0700, "Jim Thomlinson"
wrote:

Give this a try...

Sub MoveIt()
Dim rngToSearch As Range
Dim rngCurrent As Range
Dim varTargetNumber As Variant

varTargetNumber = ""
Set rngToSearch = Range("B1", Range("B65536").End(xlUp).Offset(-1, 0))


If MsgBox("Don't forget to put a '* Total' at the foot of the column", _
vbOKCancel, "Reminder..") = vbCancel Then Exit Sub
For Each rngCurrent In rngToSearch
If IsNumeric(rngCurrent) Then
varTargetNumber = rngCurrent.Value
rngCurrent.Value = ""
End If
rngCurrent.Offset(0, -1).Value = varTargetNumber
Next rngCurrent
End Sub




All times are GMT +1. The time now is 09:55 AM.

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