#1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 12
Default MID macro

Man, I hope someone can help me out with this one. I'm trying to isolate
part of some cells using the MID function. This works fine manually in a
cell (D14):

=MID(C14;1;FIND("/";C14;1)-1)

The value in D14 will be "Full Metal Jacket"
if C14 = "Full Metal Jacket / Fullscreen Edition"

I've tried to work this into a macro like so (so that the original value is
trimmed and overwritten):

Sub MIDTEST()
intTotalPos = 14
Range("c" & intTotalPos).Select
Do
Range("c" & intTotalPos).Select
ActiveCell = Mid(ActiveCell, 1, .Find("/", ActiveCell, 1) - 1)
Range("c" & intTotalPos).Select
Loop Until ActiveCell = ""
End Sub

It's obviously this line that screws the whole thing up:
ActiveCell = Mid(ActiveCell, 1, .Find("/", ActiveCell, 1) - 1)

I've tried messing about with it, but I'm lost. Can anyone help, please ?

(c:
Rasmus



  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 28
Default MID macro

Hi Rasmus

Your request isn't clear as to whether C14 should be overwritten with the
new value or whether the new value should go into D14.

Anyway, the following code loops through all values in Col C (looping from 1
until a blank cell is reached) and copies the bit before the slash (if
present at all) to the same row in Col D.

If no slash is present, nothing is copied to Col D and if there is more than
one slash in the cell then only the first bit is copied across - let me know
if this isn't as you need.



Sub MIDTEST()
intTotalPos = 1
Do
on error resume next
Range("d" & intTotalPos).Value = Mid(Range("c" & intTotalPos), 1, _
Application.WorksheetFunction.Find("/", Range("c" &
intTotalPos).Value) - 2)
intTotalPos = intTotalPos + 1
Loop Until Range("c" & intTotalPos).Value = ""
End Sub



Regards

David




"Rasmus" wrote in message
le.rogers.com...
Man, I hope someone can help me out with this one. I'm trying to isolate
part of some cells using the MID function. This works fine manually in a
cell (D14):

=MID(C14;1;FIND("/";C14;1)-1)

The value in D14 will be "Full Metal Jacket"
if C14 = "Full Metal Jacket / Fullscreen Edition"

I've tried to work this into a macro like so (so that the original value

is
trimmed and overwritten):

Sub MIDTEST()
intTotalPos = 14
Range("c" & intTotalPos).Select
Do
Range("c" & intTotalPos).Select
ActiveCell = Mid(ActiveCell, 1, .Find("/", ActiveCell, 1) - 1)
Range("c" & intTotalPos).Select
Loop Until ActiveCell = ""
End Sub

It's obviously this line that screws the whole thing up:
ActiveCell = Mid(ActiveCell, 1, .Find("/", ActiveCell, 1) - 1)

I've tried messing about with it, but I'm lost. Can anyone help, please ?

(c:
Rasmus





  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 11,272
Default MID macro

Rasmus,

Here's a simple version that uses just VBA, no worksheet functions.

Sub MIDTEST()
Dim intTotalPos As Integer

intTotalPos = 14
Do Until Range("c" & intTotalPos).Value = ""
With Range("c" & intTotalPos)
.Value = Mid(ActiveCell, 1, InStr(1, .Value, "/") - 1)
End With
intTotalPos = intTotalPos + 1
Loop
End Sub


--

HTH

Bob Phillips
... looking out across Poole Harbour to the Purbecks
(remove nothere from the email address if mailing direct)

"Rasmus" wrote in message
le.rogers.com...
Man, I hope someone can help me out with this one. I'm trying to isolate
part of some cells using the MID function. This works fine manually in a
cell (D14):

=MID(C14;1;FIND("/";C14;1)-1)

The value in D14 will be "Full Metal Jacket"
if C14 = "Full Metal Jacket / Fullscreen Edition"

I've tried to work this into a macro like so (so that the original value

is
trimmed and overwritten):

Sub MIDTEST()
intTotalPos = 14
Range("c" & intTotalPos).Select
Do
Range("c" & intTotalPos).Select
ActiveCell = Mid(ActiveCell, 1, .Find("/", ActiveCell, 1) - 1)
Range("c" & intTotalPos).Select
Loop Until ActiveCell = ""
End Sub

It's obviously this line that screws the whole thing up:
ActiveCell = Mid(ActiveCell, 1, .Find("/", ActiveCell, 1) - 1)

I've tried messing about with it, but I'm lost. Can anyone help, please ?

(c:
Rasmus





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
Macro recorded... tabs & file names changed, macro hangs Steve Excel Worksheet Functions 3 October 30th 09 11:41 AM
Macro Help Needed - Excel 2007 - Print Macro with Auto Sort Gavin Excel Worksheet Functions 0 May 17th 07 01:20 PM
Macro needed to Paste Values and prevent Macro operation thunderfoot Excel Discussion (Misc queries) 0 June 10th 05 03:38 PM
Start Macro / Stop Macro / Restart Macro Pete[_13_] Excel Programming 2 November 21st 03 05:04 PM


All times are GMT +1. The time now is 06:25 PM.

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

About Us

"It's about Microsoft Excel"