Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 36
Default Simple Macro

Hi, I have recorded a simple Macro as such:
Sub F_R()
'
' F_R Macro
' Macro recorded 4/25/2004 by VSC
'

'
Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Replace What:="97", Replacement:="98", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub

I would like to modify it so that "98" is replaced by "97 +1" and "97"
should be whatever year or numbers are found in cell A1 for example.
I have a values in cell A1 as such: MNH97,D.
I need the macro to look for the only digits in cell A1 i.e. 97 and replace
with value (digits) +1 so result is MNH98,D, etc. (independent of the year
number i.e. if year is 71 then results is 72)

How do I modify above macro or rewrite it?

Tx a million.
S


  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,089
Default Simple Macro

S

not sure how you want to provide the number, so one way:

Sub ReplaceNumber()
Dim ReplaceWhat As Integer
ReplaceWhat = 97

With Range(Range("A1"), Range("A1").End(xlDown))
.Replace _
What:=ReplaceWhat, _
Replacement:=ReplaceWhat + 1, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=False
End With
End Sub

Assuming that the value you want to replace is in, say, cell C1, you could
try this as an option:

Sub ReplaceNumber2()
Dim ReplaceWhat As Integer
If Range("C1").Value = "" Then Exit Sub
ReplaceWhat = Range("C1").Value
On Error Resume Next
With Range(Range("A1"), Range("A1").End(xlDown))
.Replace _
What:=ReplaceWhat, _
Replacement:=ReplaceWhat + 1, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=False
End With
On Error GoTo 0
End Sub

This will change 97 to 98, 98 to 99, 99 to 100 and so on. If C1 is blank it
does nothing ... if it had 0, it would replace all zeroes with ones.

Regards

Trevor


"saturnin02" <saturnin02_at_hotmail.com wrote in message
...
Hi, I have recorded a simple Macro as such:
Sub F_R()
'
' F_R Macro
' Macro recorded 4/25/2004 by VSC
'

'
Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Replace What:="97", Replacement:="98", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub

I would like to modify it so that "98" is replaced by "97 +1" and "97"
should be whatever year or numbers are found in cell A1 for example.
I have a values in cell A1 as such: MNH97,D.
I need the macro to look for the only digits in cell A1 i.e. 97 and

replace
with value (digits) +1 so result is MNH98,D, etc. (independent of the year
number i.e. if year is 71 then results is 72)

How do I modify above macro or rewrite it?

Tx a million.
S




  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 36
Default Simple Macro

Trevor,
Tx for your reply and advice.
Does not work.
Input Range is in A1 going down to end in A40 orA150, as the case may be.
I guess that is the Range("A1").End(xlDown)
Then in same range, replace the yeear numbers.
So I guess first select the range and then in that range do the replace....
Any ideas?
Tx,
S


"Trevor Shuttleworth" wrote in message
...
S

not sure how you want to provide the number, so one way:

Sub ReplaceNumber()
Dim ReplaceWhat As Integer
ReplaceWhat = 97

With Range(Range("A1"), Range("A1").End(xlDown))
.Replace _
What:=ReplaceWhat, _
Replacement:=ReplaceWhat + 1, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=False
End With
End Sub

Assuming that the value you want to replace is in, say, cell C1, you could
try this as an option:

Sub ReplaceNumber2()
Dim ReplaceWhat As Integer
If Range("C1").Value = "" Then Exit Sub
ReplaceWhat = Range("C1").Value
On Error Resume Next
With Range(Range("A1"), Range("A1").End(xlDown))
.Replace _
What:=ReplaceWhat, _
Replacement:=ReplaceWhat + 1, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=False
End With
On Error GoTo 0
End Sub

This will change 97 to 98, 98 to 99, 99 to 100 and so on. If C1 is blank

it
does nothing ... if it had 0, it would replace all zeroes with ones.

Regards

Trevor


"saturnin02" <saturnin02_at_hotmail.com wrote in message
...
Hi, I have recorded a simple Macro as such:
Sub F_R()
'
' F_R Macro
' Macro recorded 4/25/2004 by VSC
'

'
Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Replace What:="97", Replacement:="98", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub

I would like to modify it so that "98" is replaced by "97 +1" and "97"
should be whatever year or numbers are found in cell A1 for example.
I have a values in cell A1 as such: MNH97,D.
I need the macro to look for the only digits in cell A1 i.e. 97 and

replace
with value (digits) +1 so result is MNH98,D, etc. (independent of the

year
number i.e. if year is 71 then results is 72)

How do I modify above macro or rewrite it?

Tx a million.
S






  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 36
Default Simple Macro

Forgot to say that I get a runtime error 13 mismatch
on second macro you proposed.
S
"Trevor Shuttleworth" wrote in message
...
S

not sure how you want to provide the number, so one way:

Sub ReplaceNumber()
Dim ReplaceWhat As Integer
ReplaceWhat = 97

With Range(Range("A1"), Range("A1").End(xlDown))
.Replace _
What:=ReplaceWhat, _
Replacement:=ReplaceWhat + 1, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=False
End With
End Sub

Assuming that the value you want to replace is in, say, cell C1, you could
try this as an option:

Sub ReplaceNumber2()
Dim ReplaceWhat As Integer
If Range("C1").Value = "" Then Exit Sub
ReplaceWhat = Range("C1").Value
On Error Resume Next
With Range(Range("A1"), Range("A1").End(xlDown))
.Replace _
What:=ReplaceWhat, _
Replacement:=ReplaceWhat + 1, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=False
End With
On Error GoTo 0
End Sub

This will change 97 to 98, 98 to 99, 99 to 100 and so on. If C1 is blank

it
does nothing ... if it had 0, it would replace all zeroes with ones.

Regards

Trevor


"saturnin02" <saturnin02_at_hotmail.com wrote in message
...
Hi, I have recorded a simple Macro as such:
Sub F_R()
'
' F_R Macro
' Macro recorded 4/25/2004 by VSC
'

'
Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Replace What:="97", Replacement:="98", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub

I would like to modify it so that "98" is replaced by "97 +1" and "97"
should be whatever year or numbers are found in cell A1 for example.
I have a values in cell A1 as such: MNH97,D.
I need the macro to look for the only digits in cell A1 i.e. 97 and

replace
with value (digits) +1 so result is MNH98,D, etc. (independent of the

year
number i.e. if year is 71 then results is 72)

How do I modify above macro or rewrite it?

Tx a million.
S






  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,089
Default Simple Macro

S

What can I say ? It works for me !

a96
a97
a98
a99
a100
a101
a96
a97
a98
a99
a100
a101
a96
a97
a98
a99
a100
a96
a97
a98
a99
a100
a101




with the second macro and 99 in cell C1:

a96 99
a97
a98
a100
a100
a101
a96
a97
a98
a100
a100
a101
a96
a97
a98
a100
a100
a96
a97
a98
a100
a100
a101



Regards

Trevor


"saturnin02" <saturnin02_at_hotmail.com wrote in message
...
Forgot to say that I get a runtime error 13 mismatch
on second macro you proposed.
S
"Trevor Shuttleworth" wrote in message
...
S

not sure how you want to provide the number, so one way:

Sub ReplaceNumber()
Dim ReplaceWhat As Integer
ReplaceWhat = 97

With Range(Range("A1"), Range("A1").End(xlDown))
.Replace _
What:=ReplaceWhat, _
Replacement:=ReplaceWhat + 1, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=False
End With
End Sub

Assuming that the value you want to replace is in, say, cell C1, you

could
try this as an option:

Sub ReplaceNumber2()
Dim ReplaceWhat As Integer
If Range("C1").Value = "" Then Exit Sub
ReplaceWhat = Range("C1").Value
On Error Resume Next
With Range(Range("A1"), Range("A1").End(xlDown))
.Replace _
What:=ReplaceWhat, _
Replacement:=ReplaceWhat + 1, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=False
End With
On Error GoTo 0
End Sub

This will change 97 to 98, 98 to 99, 99 to 100 and so on. If C1 is

blank
it
does nothing ... if it had 0, it would replace all zeroes with ones.

Regards

Trevor


"saturnin02" <saturnin02_at_hotmail.com wrote in message
...
Hi, I have recorded a simple Macro as such:
Sub F_R()
'
' F_R Macro
' Macro recorded 4/25/2004 by VSC
'

'
Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Replace What:="97", Replacement:="98", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False,

_
ReplaceFormat:=False
End Sub

I would like to modify it so that "98" is replaced by "97 +1" and "97"
should be whatever year or numbers are found in cell A1 for example.
I have a values in cell A1 as such: MNH97,D.
I need the macro to look for the only digits in cell A1 i.e. 97 and

replace
with value (digits) +1 so result is MNH98,D, etc. (independent of the

year
number i.e. if year is 71 then results is 72)

How do I modify above macro or rewrite it?

Tx a million.
S










  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 36
Default Simple Macro

That wasn't what I wanted.
Here is what I wanted:
A1: a96
B1: b96
C1: c96
etc.

changed to
A1: a97
B1: a97
C1: a97
etc.

But without tying it to "96" or a specific number--just so that ANY number
in cells in the range is replaced by same number +1.

S

"Trevor Shuttleworth" wrote in message
...
S

What can I say ? It works for me !

a96
a97
a98
a99
a100
a101
a96
a97
a98
a99
a100
a101
a96
a97
a98
a99
a100
a96
a97
a98
a99
a100
a101




with the second macro and 99 in cell C1:

a96 99
a97
a98
a100
a100
a101
a96
a97
a98
a100
a100
a101
a96
a97
a98
a100
a100
a96
a97
a98
a100
a100
a101



Regards

Trevor


"saturnin02" <saturnin02_at_hotmail.com wrote in message
...
Forgot to say that I get a runtime error 13 mismatch
on second macro you proposed.
S
"Trevor Shuttleworth" wrote in message
...
S

not sure how you want to provide the number, so one way:

Sub ReplaceNumber()
Dim ReplaceWhat As Integer
ReplaceWhat = 97

With Range(Range("A1"), Range("A1").End(xlDown))
.Replace _
What:=ReplaceWhat, _
Replacement:=ReplaceWhat + 1, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=False
End With
End Sub

Assuming that the value you want to replace is in, say, cell C1, you

could
try this as an option:

Sub ReplaceNumber2()
Dim ReplaceWhat As Integer
If Range("C1").Value = "" Then Exit Sub
ReplaceWhat = Range("C1").Value
On Error Resume Next
With Range(Range("A1"), Range("A1").End(xlDown))
.Replace _
What:=ReplaceWhat, _
Replacement:=ReplaceWhat + 1, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=False
End With
On Error GoTo 0
End Sub

This will change 97 to 98, 98 to 99, 99 to 100 and so on. If C1 is

blank
it
does nothing ... if it had 0, it would replace all zeroes with ones.

Regards

Trevor


"saturnin02" <saturnin02_at_hotmail.com wrote in message
...
Hi, I have recorded a simple Macro as such:
Sub F_R()
'
' F_R Macro
' Macro recorded 4/25/2004 by VSC
'

'
Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Replace What:="97", Replacement:="98", LookAt:=xlPart,

_
SearchOrder:=xlByRows, MatchCase:=False,

SearchFormat:=False,
_
ReplaceFormat:=False
End Sub

I would like to modify it so that "98" is replaced by "97 +1" and

"97"
should be whatever year or numbers are found in cell A1 for example.
I have a values in cell A1 as such: MNH97,D.
I need the macro to look for the only digits in cell A1 i.e. 97 and
replace
with value (digits) +1 so result is MNH98,D, etc. (independent of

the
year
number i.e. if year is 71 then results is 72)

How do I modify above macro or rewrite it?

Tx a million.
S










  #7   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,089
Default Simple Macro

S

maybe this will work for you, suitably modified:

Sub ReplaceNumber3()
Dim ReplaceWhat As Integer
Dim i As Integer
For i = 99 To 90 Step -1
ReplaceWhat = i
On Error Resume Next
With Range(Range("A1"), Range("A1").End(xlDown))
.Replace _
What:=ReplaceWhat, _
Replacement:=ReplaceWhat + 1, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=False
End With
On Error GoTo 0
Next 'i
End Sub

Quick and dirty but does the job. You'll need to know the range though and
decide what you want to happen to 99.

Regards

Trevor


"saturnin02" <saturnin02_at_hotmail.com wrote in message
...
That wasn't what I wanted.
Here is what I wanted:
A1: a96
B1: b96
C1: c96
etc.

changed to
A1: a97
B1: a97
C1: a97
etc.

But without tying it to "96" or a specific number--just so that ANY number
in cells in the range is replaced by same number +1.

S

"Trevor Shuttleworth" wrote in message
...
S

What can I say ? It works for me !

a96
a97
a98
a99
a100
a101
a96
a97
a98
a99
a100
a101
a96
a97
a98
a99
a100
a96
a97
a98
a99
a100
a101




with the second macro and 99 in cell C1:

a96 99
a97
a98
a100
a100
a101
a96
a97
a98
a100
a100
a101
a96
a97
a98
a100
a100
a96
a97
a98
a100
a100
a101



Regards

Trevor


"saturnin02" <saturnin02_at_hotmail.com wrote in message
...
Forgot to say that I get a runtime error 13 mismatch
on second macro you proposed.
S
"Trevor Shuttleworth" wrote in message
...
S

not sure how you want to provide the number, so one way:

Sub ReplaceNumber()
Dim ReplaceWhat As Integer
ReplaceWhat = 97

With Range(Range("A1"), Range("A1").End(xlDown))
.Replace _
What:=ReplaceWhat, _
Replacement:=ReplaceWhat + 1, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=False
End With
End Sub

Assuming that the value you want to replace is in, say, cell C1, you

could
try this as an option:

Sub ReplaceNumber2()
Dim ReplaceWhat As Integer
If Range("C1").Value = "" Then Exit Sub
ReplaceWhat = Range("C1").Value
On Error Resume Next
With Range(Range("A1"), Range("A1").End(xlDown))
.Replace _
What:=ReplaceWhat, _
Replacement:=ReplaceWhat + 1, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=False
End With
On Error GoTo 0
End Sub

This will change 97 to 98, 98 to 99, 99 to 100 and so on. If C1 is

blank
it
does nothing ... if it had 0, it would replace all zeroes with ones.

Regards

Trevor


"saturnin02" <saturnin02_at_hotmail.com wrote in message
...
Hi, I have recorded a simple Macro as such:
Sub F_R()
'
' F_R Macro
' Macro recorded 4/25/2004 by VSC
'

'
Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Replace What:="97", Replacement:="98",

LookAt:=xlPart,
_
SearchOrder:=xlByRows, MatchCase:=False,

SearchFormat:=False,
_
ReplaceFormat:=False
End Sub

I would like to modify it so that "98" is replaced by "97 +1" and

"97"
should be whatever year or numbers are found in cell A1 for

example.
I have a values in cell A1 as such: MNH97,D.
I need the macro to look for the only digits in cell A1 i.e. 97

and
replace
with value (digits) +1 so result is MNH98,D, etc. (independent of

the
year
number i.e. if year is 71 then results is 72)

How do I modify above macro or rewrite it?

Tx a million.
S












  #8   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 36
Default Simple Macro

Works fine to 99 included.
How do I get it to continue after 99 and go to 00, 01,02 as in year
2000,2001,2002?
Tx a million,
S
"Trevor Shuttleworth" wrote in message
...
S

maybe this will work for you, suitably modified:

Sub ReplaceNumber3()
Dim ReplaceWhat As Integer
Dim i As Integer
For i = 99 To 90 Step -1
ReplaceWhat = i
On Error Resume Next
With Range(Range("A1"), Range("A1").End(xlDown))
.Replace _
What:=ReplaceWhat, _
Replacement:=ReplaceWhat + 1, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=False
End With
On Error GoTo 0
Next 'i
End Sub

Quick and dirty but does the job. You'll need to know the range though

and
decide what you want to happen to 99.

Regards

Trevor


"saturnin02" <saturnin02_at_hotmail.com wrote in message
...
That wasn't what I wanted.
Here is what I wanted:
A1: a96
B1: b96
C1: c96
etc.

changed to
A1: a97
B1: a97
C1: a97
etc.

But without tying it to "96" or a specific number--just so that ANY

number
in cells in the range is replaced by same number +1.

S

"Trevor Shuttleworth" wrote in message
...
S

What can I say ? It works for me !

a96
a97
a98
a99
a100
a101
a96
a97
a98
a99
a100
a101
a96
a97
a98
a99
a100
a96
a97
a98
a99
a100
a101




with the second macro and 99 in cell C1:

a96 99
a97
a98
a100
a100
a101
a96
a97
a98
a100
a100
a101
a96
a97
a98
a100
a100
a96
a97
a98
a100
a100
a101



Regards

Trevor


"saturnin02" <saturnin02_at_hotmail.com wrote in message
...
Forgot to say that I get a runtime error 13 mismatch
on second macro you proposed.
S
"Trevor Shuttleworth" wrote in message
...
S

not sure how you want to provide the number, so one way:

Sub ReplaceNumber()
Dim ReplaceWhat As Integer
ReplaceWhat = 97

With Range(Range("A1"), Range("A1").End(xlDown))
.Replace _
What:=ReplaceWhat, _
Replacement:=ReplaceWhat + 1, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=False
End With
End Sub

Assuming that the value you want to replace is in, say, cell C1,

you
could
try this as an option:

Sub ReplaceNumber2()
Dim ReplaceWhat As Integer
If Range("C1").Value = "" Then Exit Sub
ReplaceWhat = Range("C1").Value
On Error Resume Next
With Range(Range("A1"), Range("A1").End(xlDown))
.Replace _
What:=ReplaceWhat, _
Replacement:=ReplaceWhat + 1, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=False
End With
On Error GoTo 0
End Sub

This will change 97 to 98, 98 to 99, 99 to 100 and so on. If C1

is
blank
it
does nothing ... if it had 0, it would replace all zeroes with

ones.

Regards

Trevor


"saturnin02" <saturnin02_at_hotmail.com wrote in message
...
Hi, I have recorded a simple Macro as such:
Sub F_R()
'
' F_R Macro
' Macro recorded 4/25/2004 by VSC
'

'
Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Replace What:="97", Replacement:="98",

LookAt:=xlPart,
_
SearchOrder:=xlByRows, MatchCase:=False,

SearchFormat:=False,
_
ReplaceFormat:=False
End Sub

I would like to modify it so that "98" is replaced by "97 +1"

and
"97"
should be whatever year or numbers are found in cell A1 for

example.
I have a values in cell A1 as such: MNH97,D.
I need the macro to look for the only digits in cell A1 i.e. 97

and
replace
with value (digits) +1 so result is MNH98,D, etc. (independent

of
the
year
number i.e. if year is 71 then results is 72)

How do I modify above macro or rewrite it?

Tx a million.
S














  #9   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,089
Default Simple Macro

I somehow thought that might be the next question ...

Sub ReplaceNumber4()
Dim ReplaceWhat
Dim ReplaceWhatPlusOne
Dim i As Integer
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
On Error Resume Next
With Range(Range("A1"), Range("A1").End(xlDown))
For i = 99 To 0 Step -1
ReplaceWhat = WorksheetFunction.Text(i, "00")
ReplaceWhatPlusOne = i + 1
If ReplaceWhatPlusOne < 100 Then
ReplaceWhatPlusOne = _
WorksheetFunction.Text(ReplaceWhatPlusOne, "00")
Else: ReplaceWhatPlusOne = "0x0"
End If
.Replace _
What:=ReplaceWhat, _
Replacement:=ReplaceWhatPlusOne, _
LookAt:=xlPart
Next 'i
.Replace _
What:="0x0", _
Replacement:="00", _
LookAt:=xlPart
End With
On Error GoTo 0
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = False
End Sub

Seems to do the job but I'm sure there's a better way. I don't like having
to loop through 100 times but it depends on how many rows of data you have
as to whether or not it's a problem

Regards

Trevor


"saturnin02" <saturnin02_at_hotmail.com wrote in message
...
Works fine to 99 included.
How do I get it to continue after 99 and go to 00, 01,02 as in year
2000,2001,2002?
Tx a million,
S
"Trevor Shuttleworth" wrote in message
...
S

maybe this will work for you, suitably modified:

Sub ReplaceNumber3()
Dim ReplaceWhat As Integer
Dim i As Integer
For i = 99 To 90 Step -1
ReplaceWhat = i
On Error Resume Next
With Range(Range("A1"), Range("A1").End(xlDown))
.Replace _
What:=ReplaceWhat, _
Replacement:=ReplaceWhat + 1, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=False
End With
On Error GoTo 0
Next 'i
End Sub

Quick and dirty but does the job. You'll need to know the range though

and
decide what you want to happen to 99.

Regards

Trevor


"saturnin02" <saturnin02_at_hotmail.com wrote in message
...
That wasn't what I wanted.
Here is what I wanted:
A1: a96
B1: b96
C1: c96
etc.

changed to
A1: a97
B1: a97
C1: a97
etc.

But without tying it to "96" or a specific number--just so that ANY

number
in cells in the range is replaced by same number +1.

S

"Trevor Shuttleworth" wrote in message
...
S

What can I say ? It works for me !

a96
a97
a98
a99
a100
a101
a96
a97
a98
a99
a100
a101
a96
a97
a98
a99
a100
a96
a97
a98
a99
a100
a101




with the second macro and 99 in cell C1:

a96 99
a97
a98
a100
a100
a101
a96
a97
a98
a100
a100
a101
a96
a97
a98
a100
a100
a96
a97
a98
a100
a100
a101



Regards

Trevor


"saturnin02" <saturnin02_at_hotmail.com wrote in message
...
Forgot to say that I get a runtime error 13 mismatch
on second macro you proposed.
S
"Trevor Shuttleworth" wrote in message
...
S

not sure how you want to provide the number, so one way:

Sub ReplaceNumber()
Dim ReplaceWhat As Integer
ReplaceWhat = 97

With Range(Range("A1"), Range("A1").End(xlDown))
.Replace _
What:=ReplaceWhat, _
Replacement:=ReplaceWhat + 1, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=False
End With
End Sub

Assuming that the value you want to replace is in, say, cell C1,

you
could
try this as an option:

Sub ReplaceNumber2()
Dim ReplaceWhat As Integer
If Range("C1").Value = "" Then Exit Sub
ReplaceWhat = Range("C1").Value
On Error Resume Next
With Range(Range("A1"), Range("A1").End(xlDown))
.Replace _
What:=ReplaceWhat, _
Replacement:=ReplaceWhat + 1, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=False
End With
On Error GoTo 0
End Sub

This will change 97 to 98, 98 to 99, 99 to 100 and so on. If C1

is
blank
it
does nothing ... if it had 0, it would replace all zeroes with

ones.

Regards

Trevor


"saturnin02" <saturnin02_at_hotmail.com wrote in message
...
Hi, I have recorded a simple Macro as such:
Sub F_R()
'
' F_R Macro
' Macro recorded 4/25/2004 by VSC
'

'
Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Replace What:="97", Replacement:="98",

LookAt:=xlPart,
_
SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:=False,
_
ReplaceFormat:=False
End Sub

I would like to modify it so that "98" is replaced by "97 +1"

and
"97"
should be whatever year or numbers are found in cell A1 for

example.
I have a values in cell A1 as such: MNH97,D.
I need the macro to look for the only digits in cell A1 i.e.

97
and
replace
with value (digits) +1 so result is MNH98,D, etc. (independent

of
the
year
number i.e. if year is 71 then results is 72)

How do I modify above macro or rewrite it?

Tx a million.
S
















  #10   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 36
Default Simple Macro

Trevor,
I understand what you are saying about the looping.
It probably would stay withing 500 rows.
We're OK over here.
It does accomplish what is required.
Tx for your help.
I guess I really need to start learning VB....
Best,
S

"Trevor Shuttleworth" wrote in message
...
I somehow thought that might be the next question ...

Sub ReplaceNumber4()
Dim ReplaceWhat
Dim ReplaceWhatPlusOne
Dim i As Integer
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
On Error Resume Next
With Range(Range("A1"), Range("A1").End(xlDown))
For i = 99 To 0 Step -1
ReplaceWhat = WorksheetFunction.Text(i, "00")
ReplaceWhatPlusOne = i + 1
If ReplaceWhatPlusOne < 100 Then
ReplaceWhatPlusOne = _
WorksheetFunction.Text(ReplaceWhatPlusOne, "00")
Else: ReplaceWhatPlusOne = "0x0"
End If
.Replace _
What:=ReplaceWhat, _
Replacement:=ReplaceWhatPlusOne, _
LookAt:=xlPart
Next 'i
.Replace _
What:="0x0", _
Replacement:="00", _
LookAt:=xlPart
End With
On Error GoTo 0
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = False
End Sub

Seems to do the job but I'm sure there's a better way. I don't like

having
to loop through 100 times but it depends on how many rows of data you have
as to whether or not it's a problem

Regards

Trevor


"saturnin02" <saturnin02_at_hotmail.com wrote in message
...
Works fine to 99 included.
How do I get it to continue after 99 and go to 00, 01,02 as in year
2000,2001,2002?
Tx a million,
S
"Trevor Shuttleworth" wrote in message
...
S

maybe this will work for you, suitably modified:

Sub ReplaceNumber3()
Dim ReplaceWhat As Integer
Dim i As Integer
For i = 99 To 90 Step -1
ReplaceWhat = i
On Error Resume Next
With Range(Range("A1"), Range("A1").End(xlDown))
.Replace _
What:=ReplaceWhat, _
Replacement:=ReplaceWhat + 1, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=False
End With
On Error GoTo 0
Next 'i
End Sub

Quick and dirty but does the job. You'll need to know the range

though
and
decide what you want to happen to 99.

Regards

Trevor


"saturnin02" <saturnin02_at_hotmail.com wrote in message
...
That wasn't what I wanted.
Here is what I wanted:
A1: a96
B1: b96
C1: c96
etc.

changed to
A1: a97
B1: a97
C1: a97
etc.

But without tying it to "96" or a specific number--just so that ANY

number
in cells in the range is replaced by same number +1.

S

"Trevor Shuttleworth" wrote in message
...
S

What can I say ? It works for me !

a96
a97
a98
a99
a100
a101
a96
a97
a98
a99
a100
a101
a96
a97
a98
a99
a100
a96
a97
a98
a99
a100
a101




with the second macro and 99 in cell C1:

a96 99
a97
a98
a100
a100
a101
a96
a97
a98
a100
a100
a101
a96
a97
a98
a100
a100
a96
a97
a98
a100
a100
a101



Regards

Trevor


"saturnin02" <saturnin02_at_hotmail.com wrote in message
...
Forgot to say that I get a runtime error 13 mismatch
on second macro you proposed.
S
"Trevor Shuttleworth" wrote in

message
...
S

not sure how you want to provide the number, so one way:

Sub ReplaceNumber()
Dim ReplaceWhat As Integer
ReplaceWhat = 97

With Range(Range("A1"), Range("A1").End(xlDown))
.Replace _
What:=ReplaceWhat, _
Replacement:=ReplaceWhat + 1, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=False
End With
End Sub

Assuming that the value you want to replace is in, say, cell

C1,
you
could
try this as an option:

Sub ReplaceNumber2()
Dim ReplaceWhat As Integer
If Range("C1").Value = "" Then Exit Sub
ReplaceWhat = Range("C1").Value
On Error Resume Next
With Range(Range("A1"), Range("A1").End(xlDown))
.Replace _
What:=ReplaceWhat, _
Replacement:=ReplaceWhat + 1, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=False
End With
On Error GoTo 0
End Sub

This will change 97 to 98, 98 to 99, 99 to 100 and so on. If

C1
is
blank
it
does nothing ... if it had 0, it would replace all zeroes with

ones.

Regards

Trevor


"saturnin02" <saturnin02_at_hotmail.com wrote in message
...
Hi, I have recorded a simple Macro as such:
Sub F_R()
'
' F_R Macro
' Macro recorded 4/25/2004 by VSC
'

'
Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Replace What:="97", Replacement:="98",
LookAt:=xlPart,
_
SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:=False,
_
ReplaceFormat:=False
End Sub

I would like to modify it so that "98" is replaced by "97

+1"
and
"97"
should be whatever year or numbers are found in cell A1 for
example.
I have a values in cell A1 as such: MNH97,D.
I need the macro to look for the only digits in cell A1 i.e.

97
and
replace
with value (digits) +1 so result is MNH98,D, etc.

(independent
of
the
year
number i.e. if year is 71 then results is 72)

How do I modify above macro or rewrite it?

Tx a million.
S




















  #11   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,089
Default Simple Macro

Glad to be of help; sorry it took a few attempts to understand the objective
;-)


"saturnin02" <saturnin02_at_hotmail.com wrote in message
...
Trevor,
I understand what you are saying about the looping.
It probably would stay withing 500 rows.
We're OK over here.
It does accomplish what is required.
Tx for your help.
I guess I really need to start learning VB....
Best,
S

"Trevor Shuttleworth" wrote in message
...
I somehow thought that might be the next question ...

Sub ReplaceNumber4()
Dim ReplaceWhat
Dim ReplaceWhatPlusOne
Dim i As Integer
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
On Error Resume Next
With Range(Range("A1"), Range("A1").End(xlDown))
For i = 99 To 0 Step -1
ReplaceWhat = WorksheetFunction.Text(i, "00")
ReplaceWhatPlusOne = i + 1
If ReplaceWhatPlusOne < 100 Then
ReplaceWhatPlusOne = _
WorksheetFunction.Text(ReplaceWhatPlusOne, "00")
Else: ReplaceWhatPlusOne = "0x0"
End If
.Replace _
What:=ReplaceWhat, _
Replacement:=ReplaceWhatPlusOne, _
LookAt:=xlPart
Next 'i
.Replace _
What:="0x0", _
Replacement:="00", _
LookAt:=xlPart
End With
On Error GoTo 0
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = False
End Sub

Seems to do the job but I'm sure there's a better way. I don't like

having
to loop through 100 times but it depends on how many rows of data you

have
as to whether or not it's a problem

Regards

Trevor


"saturnin02" <saturnin02_at_hotmail.com wrote in message
...
Works fine to 99 included.
How do I get it to continue after 99 and go to 00, 01,02 as in year
2000,2001,2002?
Tx a million,
S
"Trevor Shuttleworth" wrote in message
...
S

maybe this will work for you, suitably modified:

Sub ReplaceNumber3()
Dim ReplaceWhat As Integer
Dim i As Integer
For i = 99 To 90 Step -1
ReplaceWhat = i
On Error Resume Next
With Range(Range("A1"), Range("A1").End(xlDown))
.Replace _
What:=ReplaceWhat, _
Replacement:=ReplaceWhat + 1, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=False
End With
On Error GoTo 0
Next 'i
End Sub

Quick and dirty but does the job. You'll need to know the range

though
and
decide what you want to happen to 99.

Regards

Trevor


"saturnin02" <saturnin02_at_hotmail.com wrote in message
...
That wasn't what I wanted.
Here is what I wanted:
A1: a96
B1: b96
C1: c96
etc.

changed to
A1: a97
B1: a97
C1: a97
etc.

But without tying it to "96" or a specific number--just so that

ANY
number
in cells in the range is replaced by same number +1.

S

"Trevor Shuttleworth" wrote in message
...
S

What can I say ? It works for me !

a96
a97
a98
a99
a100
a101
a96
a97
a98
a99
a100
a101
a96
a97
a98
a99
a100
a96
a97
a98
a99
a100
a101




with the second macro and 99 in cell C1:

a96 99
a97
a98
a100
a100
a101
a96
a97
a98
a100
a100
a101
a96
a97
a98
a100
a100
a96
a97
a98
a100
a100
a101



Regards

Trevor


"saturnin02" <saturnin02_at_hotmail.com wrote in message
...
Forgot to say that I get a runtime error 13 mismatch
on second macro you proposed.
S
"Trevor Shuttleworth" wrote in

message
...
S

not sure how you want to provide the number, so one way:

Sub ReplaceNumber()
Dim ReplaceWhat As Integer
ReplaceWhat = 97

With Range(Range("A1"), Range("A1").End(xlDown))
.Replace _
What:=ReplaceWhat, _
Replacement:=ReplaceWhat + 1, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=False
End With
End Sub

Assuming that the value you want to replace is in, say, cell

C1,
you
could
try this as an option:

Sub ReplaceNumber2()
Dim ReplaceWhat As Integer
If Range("C1").Value = "" Then Exit Sub
ReplaceWhat = Range("C1").Value
On Error Resume Next
With Range(Range("A1"), Range("A1").End(xlDown))
.Replace _
What:=ReplaceWhat, _
Replacement:=ReplaceWhat + 1, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=False
End With
On Error GoTo 0
End Sub

This will change 97 to 98, 98 to 99, 99 to 100 and so on.

If
C1
is
blank
it
does nothing ... if it had 0, it would replace all zeroes

with
ones.

Regards

Trevor


"saturnin02" <saturnin02_at_hotmail.com wrote in message
...
Hi, I have recorded a simple Macro as such:
Sub F_R()
'
' F_R Macro
' Macro recorded 4/25/2004 by VSC
'

'
Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Replace What:="97", Replacement:="98",
LookAt:=xlPart,
_
SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:=False,
_
ReplaceFormat:=False
End Sub

I would like to modify it so that "98" is replaced by "97

+1"
and
"97"
should be whatever year or numbers are found in cell A1

for
example.
I have a values in cell A1 as such: MNH97,D.
I need the macro to look for the only digits in cell A1

i.e.
97
and
replace
with value (digits) +1 so result is MNH98,D, etc.

(independent
of
the
year
number i.e. if year is 71 then results is 72)

How do I modify above macro or rewrite it?

Tx a million.
S




















  #12   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 36
Default Simple Macro

Trevor,
Darn it--I forgot to mention the following:
We're almost there....

I have in cells
A1 = mm97z.60
B1 = mm97z.15
C1 = mm97z.5
etc...

I need to create a macro that will look for the first digits it encouters in
the cells and replace then with same digits but +1 (e.g. the 97 in cell
A1 --mm97z.60 would turn into 98 with result mm98z.60.

After reaching 99, it needs to continue not as 100, 101, etc., but as 00,
01, etc.

This needs to be done for a range of cells that are always in Column A but
with various possible lengths which I usually select manually with
Control\End Down Arrow.

The problem with the 4th macro is that it replaces or adds 1 to ALL numbers
when I need it to do it ONLY on the "97" position I mean the digits located
at the 3rd and 4th position only! Everything after the "." needs to stay as
is.

I know I am pushing my luck now and trying your patience no doubt.....
S

"Trevor Shuttleworth" wrote in message
...
I somehow thought that might be the next question ...

Sub ReplaceNumber4()
Dim ReplaceWhat
Dim ReplaceWhatPlusOne
Dim i As Integer
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
On Error Resume Next
With Range(Range("A1"), Range("A1").End(xlDown))
For i = 99 To 0 Step -1
ReplaceWhat = WorksheetFunction.Text(i, "00")
ReplaceWhatPlusOne = i + 1
If ReplaceWhatPlusOne < 100 Then
ReplaceWhatPlusOne = _
WorksheetFunction.Text(ReplaceWhatPlusOne, "00")
Else: ReplaceWhatPlusOne = "0x0"
End If
.Replace _
What:=ReplaceWhat, _
Replacement:=ReplaceWhatPlusOne, _
LookAt:=xlPart
Next 'i
.Replace _
What:="0x0", _
Replacement:="00", _
LookAt:=xlPart
End With
On Error GoTo 0
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = False
End Sub

Seems to do the job but I'm sure there's a better way. I don't like

having
to loop through 100 times but it depends on how many rows of data you have
as to whether or not it's a problem

Regards

Trevor


"saturnin02" <saturnin02_at_hotmail.com wrote in message
...
Works fine to 99 included.
How do I get it to continue after 99 and go to 00, 01,02 as in year
2000,2001,2002?
Tx a million,
S
"Trevor Shuttleworth" wrote in message
...
S

maybe this will work for you, suitably modified:

Sub ReplaceNumber3()
Dim ReplaceWhat As Integer
Dim i As Integer
For i = 99 To 90 Step -1
ReplaceWhat = i
On Error Resume Next
With Range(Range("A1"), Range("A1").End(xlDown))
.Replace _
What:=ReplaceWhat, _
Replacement:=ReplaceWhat + 1, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=False
End With
On Error GoTo 0
Next 'i
End Sub

Quick and dirty but does the job. You'll need to know the range

though
and
decide what you want to happen to 99.

Regards

Trevor


"saturnin02" <saturnin02_at_hotmail.com wrote in message
...
That wasn't what I wanted.
Here is what I wanted:
A1: a96
B1: b96
C1: c96
etc.

changed to
A1: a97
B1: a97
C1: a97
etc.

But without tying it to "96" or a specific number--just so that ANY

number
in cells in the range is replaced by same number +1.

S

"Trevor Shuttleworth" wrote in message
...
S

What can I say ? It works for me !

a96
a97
a98
a99
a100
a101
a96
a97
a98
a99
a100
a101
a96
a97
a98
a99
a100
a96
a97
a98
a99
a100
a101




with the second macro and 99 in cell C1:

a96 99
a97
a98
a100
a100
a101
a96
a97
a98
a100
a100
a101
a96
a97
a98
a100
a100
a96
a97
a98
a100
a100
a101



Regards

Trevor


"saturnin02" <saturnin02_at_hotmail.com wrote in message
...
Forgot to say that I get a runtime error 13 mismatch
on second macro you proposed.
S
"Trevor Shuttleworth" wrote in

message
...
S

not sure how you want to provide the number, so one way:

Sub ReplaceNumber()
Dim ReplaceWhat As Integer
ReplaceWhat = 97

With Range(Range("A1"), Range("A1").End(xlDown))
.Replace _
What:=ReplaceWhat, _
Replacement:=ReplaceWhat + 1, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=False
End With
End Sub

Assuming that the value you want to replace is in, say, cell

C1,
you
could
try this as an option:

Sub ReplaceNumber2()
Dim ReplaceWhat As Integer
If Range("C1").Value = "" Then Exit Sub
ReplaceWhat = Range("C1").Value
On Error Resume Next
With Range(Range("A1"), Range("A1").End(xlDown))
.Replace _
What:=ReplaceWhat, _
Replacement:=ReplaceWhat + 1, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=False
End With
On Error GoTo 0
End Sub

This will change 97 to 98, 98 to 99, 99 to 100 and so on. If

C1
is
blank
it
does nothing ... if it had 0, it would replace all zeroes with

ones.

Regards

Trevor


"saturnin02" <saturnin02_at_hotmail.com wrote in message
...
Hi, I have recorded a simple Macro as such:
Sub F_R()
'
' F_R Macro
' Macro recorded 4/25/2004 by VSC
'

'
Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Replace What:="97", Replacement:="98",
LookAt:=xlPart,
_
SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:=False,
_
ReplaceFormat:=False
End Sub

I would like to modify it so that "98" is replaced by "97

+1"
and
"97"
should be whatever year or numbers are found in cell A1 for
example.
I have a values in cell A1 as such: MNH97,D.
I need the macro to look for the only digits in cell A1 i.e.

97
and
replace
with value (digits) +1 so result is MNH98,D, etc.

(independent
of
the
year
number i.e. if year is 71 then results is 72)

How do I modify above macro or rewrite it?

Tx a million.
S


















  #13   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,089
Default Simple Macro

"I know I am pushing my luck now and trying your patience no doubt....."

In one ! Where I come from that's called moving the goal posts. It's
called other things too ...


"saturnin02" <saturnin02_at_hotmail.com wrote in message
...
Trevor,
Darn it--I forgot to mention the following:
We're almost there....

I have in cells
A1 = mm97z.60
B1 = mm97z.15
C1 = mm97z.5
etc...

I need to create a macro that will look for the first digits it encouters

in
the cells and replace then with same digits but +1 (e.g. the 97 in cell
A1 --mm97z.60 would turn into 98 with result mm98z.60.

After reaching 99, it needs to continue not as 100, 101, etc., but as 00,
01, etc.

This needs to be done for a range of cells that are always in Column A but
with various possible lengths which I usually select manually with
Control\End Down Arrow.

The problem with the 4th macro is that it replaces or adds 1 to ALL

numbers
when I need it to do it ONLY on the "97" position I mean the digits

located
at the 3rd and 4th position only! Everything after the "." needs to stay

as
is.

I know I am pushing my luck now and trying your patience no doubt.....
S

"Trevor Shuttleworth" wrote in message
...
I somehow thought that might be the next question ...

Sub ReplaceNumber4()
Dim ReplaceWhat
Dim ReplaceWhatPlusOne
Dim i As Integer
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
On Error Resume Next
With Range(Range("A1"), Range("A1").End(xlDown))
For i = 99 To 0 Step -1
ReplaceWhat = WorksheetFunction.Text(i, "00")
ReplaceWhatPlusOne = i + 1
If ReplaceWhatPlusOne < 100 Then
ReplaceWhatPlusOne = _
WorksheetFunction.Text(ReplaceWhatPlusOne, "00")
Else: ReplaceWhatPlusOne = "0x0"
End If
.Replace _
What:=ReplaceWhat, _
Replacement:=ReplaceWhatPlusOne, _
LookAt:=xlPart
Next 'i
.Replace _
What:="0x0", _
Replacement:="00", _
LookAt:=xlPart
End With
On Error GoTo 0
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = False
End Sub

Seems to do the job but I'm sure there's a better way. I don't like

having
to loop through 100 times but it depends on how many rows of data you

have
as to whether or not it's a problem

Regards

Trevor


"saturnin02" <saturnin02_at_hotmail.com wrote in message
...
Works fine to 99 included.
How do I get it to continue after 99 and go to 00, 01,02 as in year
2000,2001,2002?
Tx a million,
S
"Trevor Shuttleworth" wrote in message
...
S

maybe this will work for you, suitably modified:

Sub ReplaceNumber3()
Dim ReplaceWhat As Integer
Dim i As Integer
For i = 99 To 90 Step -1
ReplaceWhat = i
On Error Resume Next
With Range(Range("A1"), Range("A1").End(xlDown))
.Replace _
What:=ReplaceWhat, _
Replacement:=ReplaceWhat + 1, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=False
End With
On Error GoTo 0
Next 'i
End Sub

Quick and dirty but does the job. You'll need to know the range

though
and
decide what you want to happen to 99.

Regards

Trevor


"saturnin02" <saturnin02_at_hotmail.com wrote in message
...
That wasn't what I wanted.
Here is what I wanted:
A1: a96
B1: b96
C1: c96
etc.

changed to
A1: a97
B1: a97
C1: a97
etc.

But without tying it to "96" or a specific number--just so that

ANY
number
in cells in the range is replaced by same number +1.

S

"Trevor Shuttleworth" wrote in message
...
S

What can I say ? It works for me !

a96
a97
a98
a99
a100
a101
a96
a97
a98
a99
a100
a101
a96
a97
a98
a99
a100
a96
a97
a98
a99
a100
a101




with the second macro and 99 in cell C1:

a96 99
a97
a98
a100
a100
a101
a96
a97
a98
a100
a100
a101
a96
a97
a98
a100
a100
a96
a97
a98
a100
a100
a101



Regards

Trevor


"saturnin02" <saturnin02_at_hotmail.com wrote in message
...
Forgot to say that I get a runtime error 13 mismatch
on second macro you proposed.
S
"Trevor Shuttleworth" wrote in

message
...
S

not sure how you want to provide the number, so one way:

Sub ReplaceNumber()
Dim ReplaceWhat As Integer
ReplaceWhat = 97

With Range(Range("A1"), Range("A1").End(xlDown))
.Replace _
What:=ReplaceWhat, _
Replacement:=ReplaceWhat + 1, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=False
End With
End Sub

Assuming that the value you want to replace is in, say, cell

C1,
you
could
try this as an option:

Sub ReplaceNumber2()
Dim ReplaceWhat As Integer
If Range("C1").Value = "" Then Exit Sub
ReplaceWhat = Range("C1").Value
On Error Resume Next
With Range(Range("A1"), Range("A1").End(xlDown))
.Replace _
What:=ReplaceWhat, _
Replacement:=ReplaceWhat + 1, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=False
End With
On Error GoTo 0
End Sub

This will change 97 to 98, 98 to 99, 99 to 100 and so on.

If
C1
is
blank
it
does nothing ... if it had 0, it would replace all zeroes

with
ones.

Regards

Trevor


"saturnin02" <saturnin02_at_hotmail.com wrote in message
...
Hi, I have recorded a simple Macro as such:
Sub F_R()
'
' F_R Macro
' Macro recorded 4/25/2004 by VSC
'

'
Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Replace What:="97", Replacement:="98",
LookAt:=xlPart,
_
SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:=False,
_
ReplaceFormat:=False
End Sub

I would like to modify it so that "98" is replaced by "97

+1"
and
"97"
should be whatever year or numbers are found in cell A1

for
example.
I have a values in cell A1 as such: MNH97,D.
I need the macro to look for the only digits in cell A1

i.e.
97
and
replace
with value (digits) +1 so result is MNH98,D, etc.

(independent
of
the
year
number i.e. if year is 71 then results is 72)

How do I modify above macro or rewrite it?

Tx a million.
S




















  #14   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,089
Default Simple Macro

suggest you use text to columns delimited by a comma or period or whatever,
run the macro on the first column and then recombine the columns. You can
record each stage and then combine the recorded macros.

Recording your own macros IS the best way of learning,
supplemented/complemented by these groups. If you have a problem you could
start a new thread with the revised problem and progress to date

Regards

Trevor


"saturnin02" <saturnin02_at_hotmail.com wrote in message
...
Trevor,
Darn it--I forgot to mention the following:
We're almost there....

I have in cells
A1 = mm97z.60
B1 = mm97z.15
C1 = mm97z.5
etc...

I need to create a macro that will look for the first digits it encouters

in
the cells and replace then with same digits but +1 (e.g. the 97 in cell
A1 --mm97z.60 would turn into 98 with result mm98z.60.

After reaching 99, it needs to continue not as 100, 101, etc., but as 00,
01, etc.

This needs to be done for a range of cells that are always in Column A but
with various possible lengths which I usually select manually with
Control\End Down Arrow.

The problem with the 4th macro is that it replaces or adds 1 to ALL

numbers
when I need it to do it ONLY on the "97" position I mean the digits

located
at the 3rd and 4th position only! Everything after the "." needs to stay

as
is.

I know I am pushing my luck now and trying your patience no doubt.....
S

"Trevor Shuttleworth" wrote in message
...
I somehow thought that might be the next question ...

Sub ReplaceNumber4()
Dim ReplaceWhat
Dim ReplaceWhatPlusOne
Dim i As Integer
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
On Error Resume Next
With Range(Range("A1"), Range("A1").End(xlDown))
For i = 99 To 0 Step -1
ReplaceWhat = WorksheetFunction.Text(i, "00")
ReplaceWhatPlusOne = i + 1
If ReplaceWhatPlusOne < 100 Then
ReplaceWhatPlusOne = _
WorksheetFunction.Text(ReplaceWhatPlusOne, "00")
Else: ReplaceWhatPlusOne = "0x0"
End If
.Replace _
What:=ReplaceWhat, _
Replacement:=ReplaceWhatPlusOne, _
LookAt:=xlPart
Next 'i
.Replace _
What:="0x0", _
Replacement:="00", _
LookAt:=xlPart
End With
On Error GoTo 0
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = False
End Sub

Seems to do the job but I'm sure there's a better way. I don't like

having
to loop through 100 times but it depends on how many rows of data you

have
as to whether or not it's a problem

Regards

Trevor


"saturnin02" <saturnin02_at_hotmail.com wrote in message
...
Works fine to 99 included.
How do I get it to continue after 99 and go to 00, 01,02 as in year
2000,2001,2002?
Tx a million,
S
"Trevor Shuttleworth" wrote in message
...
S

maybe this will work for you, suitably modified:

Sub ReplaceNumber3()
Dim ReplaceWhat As Integer
Dim i As Integer
For i = 99 To 90 Step -1
ReplaceWhat = i
On Error Resume Next
With Range(Range("A1"), Range("A1").End(xlDown))
.Replace _
What:=ReplaceWhat, _
Replacement:=ReplaceWhat + 1, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=False
End With
On Error GoTo 0
Next 'i
End Sub

Quick and dirty but does the job. You'll need to know the range

though
and
decide what you want to happen to 99.

Regards

Trevor


"saturnin02" <saturnin02_at_hotmail.com wrote in message
...
That wasn't what I wanted.
Here is what I wanted:
A1: a96
B1: b96
C1: c96
etc.

changed to
A1: a97
B1: a97
C1: a97
etc.

But without tying it to "96" or a specific number--just so that

ANY
number
in cells in the range is replaced by same number +1.

S

"Trevor Shuttleworth" wrote in message
...
S

What can I say ? It works for me !

a96
a97
a98
a99
a100
a101
a96
a97
a98
a99
a100
a101
a96
a97
a98
a99
a100
a96
a97
a98
a99
a100
a101




with the second macro and 99 in cell C1:

a96 99
a97
a98
a100
a100
a101
a96
a97
a98
a100
a100
a101
a96
a97
a98
a100
a100
a96
a97
a98
a100
a100
a101



Regards

Trevor


"saturnin02" <saturnin02_at_hotmail.com wrote in message
...
Forgot to say that I get a runtime error 13 mismatch
on second macro you proposed.
S
"Trevor Shuttleworth" wrote in

message
...
S

not sure how you want to provide the number, so one way:

Sub ReplaceNumber()
Dim ReplaceWhat As Integer
ReplaceWhat = 97

With Range(Range("A1"), Range("A1").End(xlDown))
.Replace _
What:=ReplaceWhat, _
Replacement:=ReplaceWhat + 1, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=False
End With
End Sub

Assuming that the value you want to replace is in, say, cell

C1,
you
could
try this as an option:

Sub ReplaceNumber2()
Dim ReplaceWhat As Integer
If Range("C1").Value = "" Then Exit Sub
ReplaceWhat = Range("C1").Value
On Error Resume Next
With Range(Range("A1"), Range("A1").End(xlDown))
.Replace _
What:=ReplaceWhat, _
Replacement:=ReplaceWhat + 1, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=False
End With
On Error GoTo 0
End Sub

This will change 97 to 98, 98 to 99, 99 to 100 and so on.

If
C1
is
blank
it
does nothing ... if it had 0, it would replace all zeroes

with
ones.

Regards

Trevor


"saturnin02" <saturnin02_at_hotmail.com wrote in message
...
Hi, I have recorded a simple Macro as such:
Sub F_R()
'
' F_R Macro
' Macro recorded 4/25/2004 by VSC
'

'
Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Replace What:="97", Replacement:="98",
LookAt:=xlPart,
_
SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:=False,
_
ReplaceFormat:=False
End Sub

I would like to modify it so that "98" is replaced by "97

+1"
and
"97"
should be whatever year or numbers are found in cell A1

for
example.
I have a values in cell A1 as such: MNH97,D.
I need the macro to look for the only digits in cell A1

i.e.
97
and
replace
with value (digits) +1 so result is MNH98,D, etc.

(independent
of
the
year
number i.e. if year is 71 then results is 72)

How do I modify above macro or rewrite it?

Tx a million.
S




















  #15   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 36
Default Simple Macro

I'll figure it out.
Tx for your help Trevor.
S
"Trevor Shuttleworth" wrote in message
...
suggest you use text to columns delimited by a comma or period or

whatever,
run the macro on the first column and then recombine the columns. You can
record each stage and then combine the recorded macros.

Recording your own macros IS the best way of learning,
supplemented/complemented by these groups. If you have a problem you

could
start a new thread with the revised problem and progress to date

Regards

Trevor


"saturnin02" <saturnin02_at_hotmail.com wrote in message
...
Trevor,
Darn it--I forgot to mention the following:
We're almost there....

I have in cells
A1 = mm97z.60
B1 = mm97z.15
C1 = mm97z.5
etc...

I need to create a macro that will look for the first digits it

encouters
in
the cells and replace then with same digits but +1 (e.g. the 97 in cell
A1 --mm97z.60 would turn into 98 with result mm98z.60.

After reaching 99, it needs to continue not as 100, 101, etc., but as

00,
01, etc.

This needs to be done for a range of cells that are always in Column A

but
with various possible lengths which I usually select manually with
Control\End Down Arrow.

The problem with the 4th macro is that it replaces or adds 1 to ALL

numbers
when I need it to do it ONLY on the "97" position I mean the digits

located
at the 3rd and 4th position only! Everything after the "." needs to stay

as
is.

I know I am pushing my luck now and trying your patience no doubt.....
S

"Trevor Shuttleworth" wrote in message
...
I somehow thought that might be the next question ...

Sub ReplaceNumber4()
Dim ReplaceWhat
Dim ReplaceWhatPlusOne
Dim i As Integer
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
On Error Resume Next
With Range(Range("A1"), Range("A1").End(xlDown))
For i = 99 To 0 Step -1
ReplaceWhat = WorksheetFunction.Text(i, "00")
ReplaceWhatPlusOne = i + 1
If ReplaceWhatPlusOne < 100 Then
ReplaceWhatPlusOne = _
WorksheetFunction.Text(ReplaceWhatPlusOne, "00")
Else: ReplaceWhatPlusOne = "0x0"
End If
.Replace _
What:=ReplaceWhat, _
Replacement:=ReplaceWhatPlusOne, _
LookAt:=xlPart
Next 'i
.Replace _
What:="0x0", _
Replacement:="00", _
LookAt:=xlPart
End With
On Error GoTo 0
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = False
End Sub

Seems to do the job but I'm sure there's a better way. I don't like

having
to loop through 100 times but it depends on how many rows of data you

have
as to whether or not it's a problem

Regards

Trevor


"saturnin02" <saturnin02_at_hotmail.com wrote in message
...
Works fine to 99 included.
How do I get it to continue after 99 and go to 00, 01,02 as in year
2000,2001,2002?
Tx a million,
S
"Trevor Shuttleworth" wrote in message
...
S

maybe this will work for you, suitably modified:

Sub ReplaceNumber3()
Dim ReplaceWhat As Integer
Dim i As Integer
For i = 99 To 90 Step -1
ReplaceWhat = i
On Error Resume Next
With Range(Range("A1"), Range("A1").End(xlDown))
.Replace _
What:=ReplaceWhat, _
Replacement:=ReplaceWhat + 1, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=False
End With
On Error GoTo 0
Next 'i
End Sub

Quick and dirty but does the job. You'll need to know the range

though
and
decide what you want to happen to 99.

Regards

Trevor


"saturnin02" <saturnin02_at_hotmail.com wrote in message
...
That wasn't what I wanted.
Here is what I wanted:
A1: a96
B1: b96
C1: c96
etc.

changed to
A1: a97
B1: a97
C1: a97
etc.

But without tying it to "96" or a specific number--just so that

ANY
number
in cells in the range is replaced by same number +1.

S

"Trevor Shuttleworth" wrote in

message
...
S

What can I say ? It works for me !

a96
a97
a98
a99
a100
a101
a96
a97
a98
a99
a100
a101
a96
a97
a98
a99
a100
a96
a97
a98
a99
a100
a101




with the second macro and 99 in cell C1:

a96 99
a97
a98
a100
a100
a101
a96
a97
a98
a100
a100
a101
a96
a97
a98
a100
a100
a96
a97
a98
a100
a100
a101



Regards

Trevor


"saturnin02" <saturnin02_at_hotmail.com wrote in message
...
Forgot to say that I get a runtime error 13 mismatch
on second macro you proposed.
S
"Trevor Shuttleworth" wrote in

message
...
S

not sure how you want to provide the number, so one way:

Sub ReplaceNumber()
Dim ReplaceWhat As Integer
ReplaceWhat = 97

With Range(Range("A1"), Range("A1").End(xlDown))
.Replace _
What:=ReplaceWhat, _
Replacement:=ReplaceWhat + 1, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=False
End With
End Sub

Assuming that the value you want to replace is in, say,

cell
C1,
you
could
try this as an option:

Sub ReplaceNumber2()
Dim ReplaceWhat As Integer
If Range("C1").Value = "" Then Exit Sub
ReplaceWhat = Range("C1").Value
On Error Resume Next
With Range(Range("A1"), Range("A1").End(xlDown))
.Replace _
What:=ReplaceWhat, _
Replacement:=ReplaceWhat + 1, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=False
End With
On Error GoTo 0
End Sub

This will change 97 to 98, 98 to 99, 99 to 100 and so on.

If
C1
is
blank
it
does nothing ... if it had 0, it would replace all zeroes

with
ones.

Regards

Trevor


"saturnin02" <saturnin02_at_hotmail.com wrote in message
...
Hi, I have recorded a simple Macro as such:
Sub F_R()
'
' F_R Macro
' Macro recorded 4/25/2004 by VSC
'

'
Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Replace What:="97", Replacement:="98",
LookAt:=xlPart,
_
SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:=False,
_
ReplaceFormat:=False
End Sub

I would like to modify it so that "98" is replaced by

"97
+1"
and
"97"
should be whatever year or numbers are found in cell A1

for
example.
I have a values in cell A1 as such: MNH97,D.
I need the macro to look for the only digits in cell A1

i.e.
97
and
replace
with value (digits) +1 so result is MNH98,D, etc.

(independent
of
the
year
number i.e. if year is 71 then results is 72)

How do I modify above macro or rewrite it?

Tx a million.
S






















Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Simple macro MikeD1224 Excel Discussion (Misc queries) 1 June 9th 07 12:06 AM
Simple Macro John Excel Worksheet Functions 1 November 17th 06 05:16 PM
a simple macro? asalerno Excel Discussion (Misc queries) 2 April 28th 06 12:45 AM
Simple macro help chip_pyp Excel Discussion (Misc queries) 3 January 10th 06 07:57 PM
Simple macro - help please!! Micheal Excel Programming 2 October 24th 03 04:30 PM


All times are GMT +1. The time now is 04:02 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"