Excel - MACRO PARA ELIMINAR CARACTERES NO IMPRIMIBLES Y LIMITAR A 250 CARACTERES UNA COLUMNA DE DATOS IMPORT

 
Vista:
sin imagen de perfil
Val: 179
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

MACRO PARA ELIMINAR CARACTERES NO IMPRIMIBLES Y LIMITAR A 250 CARACTERES UNA COLUMNA DE DATOS IMPORT

Publicado por Quico (106 intervenciones) el 24/01/2019 17:48:08
Busco la forma, de que una vez importado un *.csv a un excel con varia hojas, y una hoja llamada 'CSV', alguna función permita analizar una columna (D)
para hacer lo siguente:

1. Eliminar todos los caracteres 'no imprimibles' de cada celda de la columna D (por ejemplo "#$%()^*&/)
Ej: Titulo (22) - "Copito de nieve", el gorila al 100% en #Barcelona. pasaría a: Titulo 22 - Copito de nieve, el gorila al 100 en Barcelona

2. Que todos los carácteres que pasen de 250 se eliminen, obviamente los caracteres de la derecha.

Tengo esta macro que me importa un CSV, lo sitúa en la página CSV , pero no consigo eliminar los caracteres 'no imprimibles' y menos aún borrar caracteres de 251 en adelante.
¡Todo en la misma columna D!!

Esta es la macro.
¿Alguien podría indicarme que debo hacer una vez se ha importado el CSV?

Sub Importar_CSV()

'Definir objetos a utilizar
Dim RutaArchivo As String 'ruta donde busca el archivo
Dim wsDestino As String

'Definimos con 'wsDestino' la hoja llamada CSV
Set ws = Worksheets("CSV")

'Controlamos algun posible error.
On Error Resume Next

'Forzamos para que solo abra ficheros CSV con un cuadro de dialogo
RutaArchivo = Application.GetOpenFilename(Title:="XXXX - Busca y selecciona el archivo CSV a importar...", _
filefilter:="Text Files (*.csv),*.csv")

'Forzamos que el CSV se abra en la pestaña CSV
With ws.QueryTables.Add(Connection:="TEXT;" & RutaArchivo, Destination:=ws.Range("$A$2"))

.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 850
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = True
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With

' Y aqui es dónde le indico que selecciones la columna D para buscar y corregir los datos no imprimibles.
Columns("D:D").Select '<--Le indico que ha de actuar solo en la columna D
Dim Characters As String '<--Defino el string 'Characters'
Dim I As Long
Characters = "#$%()^*&/" '<-- Le digo los caracteres que se han de eliminar o cambiar.
For I = 1 To Len(Characters)
Str = Replace$(Str, Mid$(Characters, I, 1), "")
Next
RemoveSpecial = Str
End Function

End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder