Analizar datos intrducidos por InputBox

cgcamal

Active Member
Joined
May 2, 2007
Messages
472
Hola,

Talvez me puedan ayudar con lo siguiente:

Tengo una macro que realiza una búsqueda en una columna específica dentro de una tabla, introduciendo lo que quiero buscar por medio de un InputBox, si la palabra se encuentra se crea una hoja nueva poniendo como nombre lo que se escribió en el InputBox y arrastrando todo lo relacionado a esa frase o palabra.

Mis preguntas son:

1) Ya que el # máximo de caracteres para el nombre de una hoja es 31,
¿Cómo decirle a la macro que si encuentra la palabra cree la hoja
pero solo con los primeros 31 caracteres como nombre de hoja?
(Esto para evitar que se genere error).

2)¿Cómo decir a la macro que si la palabra o frase introducida en el
InputBox contiene caracteres prohibidos(", / \ ? * ^[ ]), dé un
mensaje informando que no se permiten introducir estos y que se
intente de nuevo?

Saludos y gracias de antemano.
 

Excel Facts

How to create a cell-sized chart?
Tiny charts, called Sparklines, were added to Excel 2010. Look for Sparklines on the Insert tab.
Disculpe que no me alcanza el tiempo para explicar esto bien, pero debe de servirle bien. Note que hay que poner una referencia a la biblioteca de MS VBScript Regular Expressions x.x (tengo 5.5)
Rich (BB code):
Sub NameTheSheet()
    Dim strNewName As String
    strNewName = Application.InputBox("New name for sheet", "New Sheet Name", , , , , , 2)
    strNewName = Left(RegExpSubstitute(strNewName, "[^A-Za-z0-9 ÑñÁáÉéÍíÓóÚúÜü]", ""), 31)
    On Error Resume Next
    ActiveSheet.Name = strNewName
    If Err.Number <> 0 Then MsgBox strNewName & " no funcionó.", vbExclamation, "Nombre malo"
End Sub

Function RegExpSubstitute(ReplaceIn, ReplaceWhat, ReplaceWith)
' From Tushar's post here:
' http://www.mrexcel.com/board2/viewtopic.php?t=52283&start=11
'
' ¡¡¡ requires a reference to MS VBScript Regular Expression library !!!
'
    Dim x As RegExp
    Set x = New RegExp
    x.Pattern = ReplaceWhat
    x.Global = True
    RegExpSubstitute = x.Replace(ReplaceIn, ReplaceWith)
End Function

Si tiene alguna dificultad con poner la referencia a la biblioteca, puede probar la versión que Tushar tiene aquí.
 
Upvote 0
Hey Greg!!!,

¿Qué tal estás?

Muchas gracias de nuevo, voy a analizar el código que me pasaste, luego lo adecuaré a mi macro y te cuento como me fue.

Saludos cordiales.
 
Upvote 0

Forum statistics

Threads
1,223,963
Messages
6,175,656
Members
452,664
Latest member
alpserbetli

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top