Cambiar el contenido de una celda

Buenas Tardes Experto
Espero que me pueda ayudar con este problema:
Necesito aplicar una fórmula, función o lo que sea en una columna, de tal manera que todo lo que copie en alguna celda de esa columna automáticamente sea reemplazado en esa misma posición por los primeros 18 caracteres de lo que escribí.
Ejemplo:
Si copio en la celda A1 "ANDRES MAURICIO GOMEZ VELASQUEZ" necesito que el sistema automáticamente me lo convierta por "ANDRES MAURICIO GO" (18 primeros caracteres) en la misma celda A1.
Gracias, a la espera de sus comentarios...

1 Respuesta

Respuesta
1
* Abre el Editor de Visual Basic Alt-F11
* En la ventana Proyecto, habitualmente en la parte centro-superior-izquierda de tu pantalla, ubica Hoja1(Hoja1) debajo de Microsoft Excel Objects y haz doble click. Si tu hoja a trabajar tiene otro nombre, selecciona esa Hoja.
*En el módulo en blanco que aparece, copia el siguiente codigo
Dim SourceAddress, SourceColumn
Private Sub Worksheet_Activate()
    SourceAddress = ActiveCell.Address
    SourceColumn = ActiveCell.Column
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If SourceColumn = 1 Then
        Range(SourceAddress) = Left(Range(SourceAddress), 18)
    End If
    SourceAddress = ActiveCell.Address
    SourceColumn = ActiveCell.Column
End Sub
Cierra el Editor de Visual Basic
Prueba la rutina
Gracias Experto por tu Gran Ayuda.
Te cuento que funciona muy bien lo que me dijiste, cada que copio algún nombre en la columna A automáticamente me lo convierte a 18 caracteres.
Más sin embargo falta un pelín para que me funcione 100 % para lo que necesito. Resulta que en ocasiones tengo la lista de nombres que deseo convertir en alguna parte, entonces los copio y los pego en la columna A y el solo me convierte a 18 caracteres el primer nombre, los otros nombres los pega tal cual.
Yo quisiera que todo, absolutamente todo, lo que copie en la columna A quede reducido a 18 caracteres, ya sea porque lo escribo uno por uno o porque copié y pegué desde otra columna, o como sea que entre los datos a la columna A.
Agradezco si me pues ayudar con esta cosita, ahí me perdonás el atrevimiento.
Cambia todo el código que tienes, por este :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Application.ScreenUpdating = False
    If ActiveCell.Column = 1 Then
    For a = 1 To 30
        Range("A1").Offset(a - 1, 0) = Left(Range("A1").Offset(a - 1, 0), 18)
    Next a
    End If
End Sub
En la linea    :   For a = 1 To 30
Cambia cuantas celdas de la columna A son las que van a ser analizadas y cambiadas. Si es desde A1 hasta A23, por ejemplo, cambialo así For a = 1 To 23
Muchísimas Gracias Señor Experto:
Esta solución me quedó como un traje a la medida, exactamente lo que necesitaba, déjeme decirle que "me quito el sombrero" (Esta expresión la utilizamos en Colombia para referirnos a una persona que sabe mucho sobre algo)
Que tenga un feliz día. Muchas Gracias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas