Agregar espacio en celda

Tengo una hoja de cálculo don el stock de un almacén. El proveedor ha modificado el formato de los códigos, añadiendo un espacio antes de los últimos números.
Formato antiguo
06052700
06052400R
0300140838
Nuevo formato
060527 00
060524 00R
03001408 38
¿Qué fórmula podría utilizar para realizar la transformación y añadir el espacio?.
Las descripciones de los códigos están en inglés. ¿Hay alguna forma de traducrilos, de forma rápida?

1 respuesta

Respuesta
1
La verdad es que el proveedor te ha hecho una faena, porque veo con el ejemplo que pones que no todos los dígitos tienen los mismos caracteres, por ejemplo en el primero tienes 8 caracteres y separas los dos últimos, en el segundo tienes 9 y separas los 3 últimos y en el tercero tienes 10 y separas los 2 últimos.
Por automatización no es posible poner el espacio no existe una regla definida caracteres-espacio puedes ordenar (descendente) tu lista antigua y tu lista moderna en dos columnas contiguas y compruebas si no existe fallo que el valor de la izquierda se corresponde al de la derecha, si es así ahora podemos hacer una macro de sustitución de los códigos antiguos por los modernos. Aunque tu lista sea larga no existe otra forma (que yo pueda imaginar). Si tienes alguna idea tú comentalá y a ver si te puedo ayudar.
En lo referente a traducir las descripciones también te digo que la forma más rápida es que vayas al traductor de google copies y pegues el texto y copies y pegues la traducción.
>Un saludo
>Julio
Si ordeno tanto los códigos antiguos y los modernos de forma descendente, o ascendente; no coincidirán ya que en la base de datos antigua, existen códigos que yo he creado y que no existen en la base de datos nueva.
De todas forma, si sirve de algo, por regla general los dos últimos dígitos de cada código son los que hay que separar, a excepción de los códigos que terminan en letra, en cuyo caso serán dos dígitos numéricos y una alfabético los que habrá que separar.
No sé si esta aclaración será de alguna utilidad.
Juan
Vamos a ver existe la instrucción para extraer los dígitos de una cadena de texto pero el problema es que no descriminada numero o letra tan solo cuenta lugares te explico con un ejemplo:
Una celda contiene esto: patata y otra contiene 123456 ( total son los mismos dígitos "6")
Pasamos a una variable el texto de la celda:
texto=ActiveCell.Text ( con esto la variable tomará el valor de la cadena, da igual una u otra
extraemos en una variable los digitos que queramos al principio o al final con estas instrucciones:
Variable1=Left(texto, 3) Esta instrucción saca los 3 primeros caracteres de la cadena texto y los pasa a la variable "variable1" si es patata variable1=pat y si es 123456 variable1=123
variable2=Right(texto, 2) Esta instrucción extrae los 2 últimos caracteres de la cadena texto y los pasa a la variable "variable2, si es patata variable2=ata y si es 123456 variable2=456
Con esto puedes solucionar tu problema- relativamente- luego para unir con espacio el código pondrías en la variable texto nuevamente el valor y nuevamente este a la celda, algo así:
Sub Cambiar()
texto=ActiveCell.Text 'Suponemos tu primer codigo 06052700
var1=Left(texto,6)
var2=Right(texto,2)
texto=var1 & " " & var2
ActiveCell.Value=texto
End Sub
Esto para todas las celdas pero no podemos hacer un bucle porque se encontrara códigos que no vale esta instrucción, podemos hacer otra cosa, que primero coloree las celdas que tienen más de 8 caracteres y después aplicar 2 macros una de 2 al final y otra de 3.
En fin decide y vemos que hacemos
Si lo ves muy difícil ponme tu correo y te solicito el archivo y veo que puedo hacerte yo.
>Un saludo
>Julio

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas