como ya se sabe, algunos caracteres no son permitidos como parte de un nombre de hoja o libro (> : \ etc.) y otros podrian causar problema con maquinarias de consulta a bases externas, como cuando se busca el nombre de las hojas en un libro cerrado ($ . etc.)
en el siguiente ejemplo se determina una cadena de caracteres no validos (una constante de tipo string) separados por un espacio (solo para mostrar de manera legible de cuales caracteres se trata) y se usa el operador Like con el grupo de caracteres (eliminando los espacios) para prevenir su uso al designar nombres de hoja o libro con base en el contenido (p.e.) de una celda
el grupo de caracteres se delimita por corchetes, asterisco y comillas dobles: => "*[grupo_de_caracteres]*" con la salvedad de que el caracter de corchete de cierre "]" no se puede incluir en "el grupo", pero se localiza aparte con la funcion InStr(...)
espero que el uso sea entendible y de utilidad general
saludos,
hector.
- Código: Seleccionar todo
Private Const Evitar As String = " ª ° "" ' ` ^ ¬ ~ * : ; @ $ # | \ / ¿ ? ¡ ! < > { } [ "
Sub ValidarNombreHojaLibro()
Dim Nombre As String
Nombre = [a1]
If Nombre Like "*[" & Replace(Evitar, " ", "") & "]*" Or InStr(Nombre, "]") _
Then MsgBox "Evita usar los caracteres NO permitidos" & vbCr & Evitar & "]" _
Else MsgBox "Guardando hoja/archivo con el nombre:" & vbCr & Nombre
End Sub



