Extraer datos de una celda Excel

En una hoja de Excel tengo una serie de celdas rellenas. En cada uno de ellas hay un código que se compone de números y letras. Necesito que se sustituyan por las últimas cifras. Ejemplo:

112TR3456.2 --> 3456.2

23JG0120.1 --> 0120.1

Siempre necesito las 5 cifras finales con el "." entre la última y la penúltima.

La primera celda en la que aparece el código a reemplazar sería la F3, y continúan por esa columna.

Necesito que la macro se ejecute cuando se abre el Excel. El funcionamiento es que un programa externo abre Excel y vuelca los datos en la columna F.

Respuesta
2

Como me cuesta trabajo entender tu requerimiento te paso dos macros, la primera lee los datos de cualquier otra columna y los pone en el columna F3, en la macro es la columna B a partir de la celda 3, la 2a macro lee los datos de la columna F3 los procesa en la columna G3 y luego hace el reemplazo de toda la columna F por la columna G, respecto a que corra cuando se abra el Excel entras a VBA, presionas CTRL+R, te vas en el panel que salga a thisworkbook, luego buscas la palabra general das click y eliges workbook lo cual te abirira el evento workbook open y es ahí donde pegas el código sin las líneas su y end sub, ojo este código no funciona si el programa externo crea la hoja de Excel y estas son las macros

Sub separar_celdas()
Set datos = Range("b3").CurrentRegion
With datos
    .Columns(5).Formula = "=right(" & .Cells(1, 1).Address(False, False) & ",6)"
End With
Set datos = Nothing
End Sub
'----------------------------------------
Sub separar_celdas2()
Set datos = Range("f3").CurrentRegion
With datos.Columns(2)
    .Formula = "=right(" & datos.Cells(1, 1).Address(False, False) & ",6)"
    datos.Columns(1).Value = .Value
    .Clear
    datos.Columns(1).NumberFormat = "0000.0"
End With
Set datos = Nothing
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas