none
Eleminar caracteres desde la Izquierda RRS feed

  • Pregunta

  • Como puedo hacer para eliminar de una columna con 11000 registros los 8 ultimos caracteres de todos los registros.

    ¿Deberia usar una macro? o exite alguna funciona para eso?

    Un saludo, Tximas

    jueves, 28 de enero de 2016 12:20

Respuestas

  • Buenas tardes estimado tximas, espero estés bien.

    A continuación y según tu necesidad creé un Procedimiento Sub en VBA (Macro) personalizada para resolver tu problema o inquietud.

    Por favor, copia y pega este procedimiento en un Módulo dentro del Editor de Visual Basic para Aplicaciones de tu libro de Excel, o proyecto de Excel, y luego ejecútalo y sigue las instrucciones del mensaje.

    Option Explicit
    
    Sub EliminarOchoCaracteresFinales()
        Dim CeldaInicio As Range
        Dim RangoDeCeldas As Range
        Dim Celda As Range
        
        Set CeldaInicio = Application.InputBox(Prompt:="Seleccione la celda donde quiere comenzar a eliminar los caracteres.", Title:="Seleccione la celda de inicio", Type:=8)
        Set RangoDeCeldas = Range(CeldaInicio, CeldaInicio.End(xlDown))
        
        For Each Celda In RangoDeCeldas
            If VBA.Len(Celda.Value) >= 8 Then
                Celda.Value = VBA.Left(Celda.Value, VBA.Len(Celda.Value) - 8)
            End If
        Next Celda
        
        MsgBox "Proceso terminado."
    End Sub

    Recuerda que la información que barre este Procedimiento Sub debe estar dispuesta en una sola columna de la hoja de Excel; ademas no deben existir celdas en blanco en medio de los datos de dicha columna o el procedimiento se detendrá.

    Saludos.


    Recuerda, si mi respuesta contribuye a resolver tu inquietud, por favor marcala como util. Cordialmente, Andres Rojas Moncada

    • Marcado como respuesta tximas viernes, 29 de enero de 2016 10:40
    jueves, 28 de enero de 2016 20:28

Todas las respuestas

  • Hola!

    ¿Hablamos de Excel?, en ese caso puedes hacerlo mediante una formula, por ejemplo

    =EXTRAE(A1;1;LARGO(A1)-8)

    También podría hacerse mediante código VBA


    Saludos a todos desde Huelva Emilio http://www.mvp-access.es/emilio/

    jueves, 28 de enero de 2016 12:54
  • Lo pruebo asi: =EXTRAE(C2;LARGO(C2)-8) pero no me devuelve nada.

    jueves, 28 de enero de 2016 13:05
  • Eso es por que has comido parte de la formula, por favor compárala con la que yo te pasé.


    Saludos a todos desde Huelva Emilio http://www.mvp-access.es/emilio/

    jueves, 28 de enero de 2016 13:24
  • Buenas tardes estimado tximas, espero estés bien.

    A continuación y según tu necesidad creé un Procedimiento Sub en VBA (Macro) personalizada para resolver tu problema o inquietud.

    Por favor, copia y pega este procedimiento en un Módulo dentro del Editor de Visual Basic para Aplicaciones de tu libro de Excel, o proyecto de Excel, y luego ejecútalo y sigue las instrucciones del mensaje.

    Option Explicit
    
    Sub EliminarOchoCaracteresFinales()
        Dim CeldaInicio As Range
        Dim RangoDeCeldas As Range
        Dim Celda As Range
        
        Set CeldaInicio = Application.InputBox(Prompt:="Seleccione la celda donde quiere comenzar a eliminar los caracteres.", Title:="Seleccione la celda de inicio", Type:=8)
        Set RangoDeCeldas = Range(CeldaInicio, CeldaInicio.End(xlDown))
        
        For Each Celda In RangoDeCeldas
            If VBA.Len(Celda.Value) >= 8 Then
                Celda.Value = VBA.Left(Celda.Value, VBA.Len(Celda.Value) - 8)
            End If
        Next Celda
        
        MsgBox "Proceso terminado."
    End Sub

    Recuerda que la información que barre este Procedimiento Sub debe estar dispuesta en una sola columna de la hoja de Excel; ademas no deben existir celdas en blanco en medio de los datos de dicha columna o el procedimiento se detendrá.

    Saludos.


    Recuerda, si mi respuesta contribuye a resolver tu inquietud, por favor marcala como util. Cordialmente, Andres Rojas Moncada

    • Marcado como respuesta tximas viernes, 29 de enero de 2016 10:40
    jueves, 28 de enero de 2016 20:28
  • Perfecto Andres. Muchas gracias por este programita!

    Un saludo!

    viernes, 29 de enero de 2016 10:40