ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Save As: change all control characters to an underscore (https://www.excelbanter.com/excel-programming/428344-save-change-all-control-characters-underscore.html)

ARbitOUR[_8_]

Save As: change all control characters to an underscore
 

Hi all!

Once again I turn to this wonderful forum for help...

I'm busy working on a 'Save As:' macro (using a button) that selects
values from certain cells and then use these vlaues as the file name in
which the file will be saved. This macro will be displaying a userform
with option bottons. The option buttons will display the various
recommended file names of which the end-user will have to select one.

The problem is that from time to time the end-user will need to use
control characters in the applicable cells which determine the file
name. I need a macro that will automatically change all control
characters to an underscore ("_") within the file name (when hitting the
"save" button / control I have created). However, the macro I need must
NOT replace the control characters in the actual cells themselves.

As I understand control characters are the following:
/ \ ? % * : | " < .

So obviously the macro I need must change all these characters to
underscores.

SOS...SOS...SOS...SOS...SOS
:)


--
ARbitOUR
------------------------------------------------------------------------
ARbitOUR's Profile: http://www.thecodecage.com/forumz/member.php?userid=254
View this thread: http://www.thecodecage.com/forumz/sh...ad.php?t=95648


OssieMac

Save As: change all control characters to an underscore
 
I think that the following will do what you want. Test it carefully with your
actual data.

Sub Test()

Dim strSource As String
Dim strChrsToReplace As String
Dim intLgthReplace As Integer
Dim i As Integer

strSource = Range("A1")

'Note:Chr(34) concatenated in string for double quote.
strChrsToReplace = "/ \ ? % * : |" & Chr(34) & "< ."

'Remove any spaces in the string of characters to replace.
strChrsToReplace = Replace(strChrsToReplace, Chr(32), "")

intLgthReplace = Len(strChrsToReplace)

For i = 1 To intLgthReplace
If InStr(strSource, _
Mid(strChrsToReplace, i, 1)) 0 Then
strSource = Replace(strSource, _
Mid(strChrsToReplace, i, 1), "_")
End If
Next i

Range("A2") = strSource 'Used to test result

--
Regards,

OssieMac


"ARbitOUR" wrote:


Hi all!

Once again I turn to this wonderful forum for help...

I'm busy working on a 'Save As:' macro (using a button) that selects
values from certain cells and then use these vlaues as the file name in
which the file will be saved. This macro will be displaying a userform
with option bottons. The option buttons will display the various
recommended file names of which the end-user will have to select one.

The problem is that from time to time the end-user will need to use
control characters in the applicable cells which determine the file
name. I need a macro that will automatically change all control
characters to an underscore ("_") within the file name (when hitting the
"save" button / control I have created). However, the macro I need must
NOT replace the control characters in the actual cells themselves.

As I understand control characters are the following:
/ \ ? % * : | " < .

So obviously the macro I need must change all these characters to
underscores.

SOS...SOS...SOS...SOS...SOS
:)


--
ARbitOUR
------------------------------------------------------------------------
ARbitOUR's Profile: http://www.thecodecage.com/forumz/member.php?userid=254
View this thread: http://www.thecodecage.com/forumz/sh...ad.php?t=95648




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

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