Distribuir texto en dos celdas

Saludos.
Estoy usando en un archivo de excel una función (amablemente enviada por el experto " rsanti") que convierte a texto una cantidad escrita en numero, p.e. (¿245,12?) Me lo escribe en otra celda como (son DOSCIENTOS CUARENTA Y CINCO EUROS CON DOCE CÉNTIMOS).
El problema lo tengo cuando el texto de la cantidad es demasiado largo y no me cabe dentro de la celda, con lo que tengo que olvidarme de la función y hacerlo a mano, es decir poner parte del texto en ésta celda y continuar en la celda de más abajo. Como podría ser la función para cortar el texto en la primera celda justo en un espacio (CONTROLANDO QUE FUERA LO MÁS LARGO POSIBLE) y continuar en la celda de más abajo y que las palabras aparezcan completas en las dos celdas, pues entiendo que sería más difícil cortar las palabras por la silaba correspondiente.
Agradezco de antemano su inestimable ayuda.

1 respuesta

Respuesta
1
La solución pasa por determinar la cantidad´máxima de caracteres que irán en la primera fila, por ejemplo 50 caracteres.
A continuación, se debe establecer si el carácter 51 es un espacio. Si lo es, en la segunda fila irá el resto de la frase a contar de la posición 52.
Si el carácter 51 no es espacio, se debe hacer una búsqueda de él (del espacio) de derecha a izquierda a través de un ciclo For... Next. Si se encuentra, por ejemplo, en la posición 45, en la primera fila irán los primeros 44 caracteres y en la segunda, del 46º hasta el final.
No se si me he hecho entender, pero, entiendo que, programáticamente, la solución pasa por ahí.
Hola:
Creo que es el camino, pero no sé como desarrollarlo, puedes ayudarme.
En concreto cual seria la instrucción que busca de derecha a izquierda.
Como es el carácter (del espacio).
Tengo algunas cosas claras, como que evento se pondría en marcha al cambiar el valor de la celda C13. El largo máximo en la primera celda sería de 55 caracteres.
Saludos
Te mando el código del programa, y es el siguiente:
Sub DivideCelda()
Dim cifra As String 'Variable que va a recibir la cifra en letras
Dim x As Integer
Dim largo As Integer
cifra = Range("B1").Value 'Esta expresión la usé para ingresar una cifra en letras
largo = Len(cifra)
    If largo > 55 Then 'Si el largo de la frase es mayor a 55 la divide en dos
        If Mid(cifra, 56, 1) = " " Then 'Si el caracter Nº56 es un espacio, deja los
                                        'primeros 55 en una celda y los siguientes a
                                        'contar del 57 en otra celda
            Range("B2") = Left(cifra, 55) 'Celda que debes cambiar por la correcta
            Range("B3") = Mid(cifra, 57) 'Celda que debes cambiar por la correcta
          Else
            For x = 55 To 1 Step -1
                If Mid(cifra, x, 1) = " " Then  'Si el caracter 56 no es un espacio,
                                                'busca el primer espacio a contar del
                                                '55 hacia la izquierda. Cuando lo en-
                                                'cuentra, por ejemplo en el 50, toma
                                                'los primeros 49 y los deja en la pri-
                                                'mera celda y a contar del 51 en la
                                                'segunda celda
                    Range("B2") = Left(cifra, x - 1) 'Celda que debes cambiar por la correcta
                    Range("B3") = Mid(cifra, x + 1) 'Celda que debes cambiar por la correcta
                    Exit Sub  'Hecho lo anterior cierra el programa
                End If
            Next
        End If
    End If
End Sub
Espero que sepas como insertar este programa en el tuyo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas