Crear una hoja con valores de una columna que tiene caracteres especiales
Hola espero puedan ayudarme
tengo un código que por medio de un botón crea varias tablas
según dependiendo de una columna pero los datos de esta columna
pueden tener caracteres especiales como /,*,: como no se pueden crear
hojas con estos valores los remplazo con el siguiente código:
Columns("X:X").Select
Selection.Replace What:="/", Replacement:="_", lookat:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="~*", Replacement:="+", lookat:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:=":", Replacement:="#", lookat:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Y lo hago en una columna diferente en este caso es la X para que los
remplace los nombres pueda crear las hojas y copia los datos ejemplo
columna b columna c
ZEMX_BC_ALL_GENERAL ZEMX_BC_ALL_GENERAL
/SAST/ADMINISTRATOR _SAST_ADMINISTRATOR
/SAST/ADMINISTRATOR _SAST_ADMINISTRATOR
Crea una hoja llamada ZEMX_BC_ALL_GENERAL y copia los valores encontrados
que solo es ZEMX_BC_ALL_GENERAL
También crea la hoja _SAST_ADMINISTRATOR y copia los valores encontrados
que son 2:
/SAST/ADMINISTRATOR
/SAST/ADMINISTRATOR
Lo que me gustaría hacer es que por medio de un inputbox coloque el
nombre que quiera crear una hoja pero que exista en la columna b
le de aceptar y pueda crear la hoja y copie sus valores y si la hoja ya existe
mande mensaje de que esa hoja ya existe teniendo encuenta lo de los caracteres
especiales /,_,:
Ejemplo
meto el dato en el inputbox ZEMX_BC_ALL_GENERAL busca si existe la hoja si
no existe la crea y pega los valores ese código si lo tengo es el siguiente:
Sub copiar_y_mover_rol()
columna = Range("bz1").End(xlToLeft).Column
quebusco = UCase(InputBox("Ingrese el dato que desea buscar"))
If quebusco = "" Then Exit Sub
ActiveSheet.Range("a1").CurrentRegion.Sort key1:=Range("a1"), order1:=xlAscending, Header:=xlYes, ordercustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Set busca = ActiveSheet.Range("b1:b" & Range("b1000000").End(xlUp).Row).Find(quebusco, LookIn:=xlValues, lookat:=xlWhole)
If Not busca Is Nothing Then
contarsi = Application.WorksheetFunction.CountIf(Columns(2), busca.Value)
Range(Cells(busca.Row, 1), Cells(busca.Row + contarsi - 1, columna)).Copy
Application.ScreenUpdating = False
For Each hoja In ThisWorkbook.Worksheets
If quebusco = hoja.Name Then MsgBox "Ya existe una hoja con ese nombre.": Exit Sub
Next
Dim Hoja1 As Worksheet
Set h = ActiveSheet
Set Hoja1 = ActiveWorkbook.Sheets.Add
Hoja1.Name = quebusco
Application.ScreenUpdating = True
Range("A2").PasteSpecial xlPasteAll
h.Rows(1).Copy Hoja1.Range("A1")
Application.CutCopyMode = False
End If
End Sub
Pero no me sale con los caracteres especiales me gustaría que hiciera lo
mismo que cuando crea todas las tablas que cambie los caracteres
y crea la hoja con sus datos
Ejemplo en el inputbox meto /SAST/ADMINISTRATOR y haga el cambio y busque
_SAST_ADMINISTRATOR la hoja si ya existe una hoja con ese nombre que mande
un mensaje de que ya existe, si no existe la cree como _SAST_ADMINISTRATOR
y copie sus valores como /SAST/ADMINISTRATOR
Gracias espero puedan ayudarme