Foros aprenderaprogramar.com

Aprender a programar => De todo un poco... => Mensaje iniciado por: Lola Roches en 05 de Junio 2013, 10:48

Título: invertir cadenas de texto o palabras en excel (automatas) [función StrReverse VB
Publicado por: Lola Roches en 05 de Junio 2013, 10:48
Hola, el asunto es que estoy tratanto de invertir cadenas de texto o palabras en excel, pero no encuentro la manera.

Lo que quiero hacer es que si en una columna tengo mapa generar en otra columna la misma palabra pero invertida: apam

Si fuera casa la invertida sería asac, si fuera aabbcc la invertida sería ccbbaa
Título: Re:invertir cadenas de texto o palabras en excel (automatas)
Publicado por: programillo en 06 de Junio 2013, 12:04
se que no es lo que preguntas pero ¿para qué sirve eso?
Título: Re:invertir cadenas de texto o palabras en excel (automatas)
Publicado por: Lola Roches en 08 de Junio 2013, 00:14
El caso es que estoy trabajando en simular un autómata, un autómata lo que hace es recibir una cadena de texto y decir si esa cadena pertenece al lenguaje. Lo que quiero hacer es generar muchas combinaciones de letras y sus "reflejos" o "palíndromos" es decir la cadena al revés por ejemplo:

aaaa ---> aaaa
aaab ---> baaa
aaac ---> caaa
aaba ---> abaa
aabb ---> bbaa
aabc ---> cbaa
aaca ---> acaa
aacb ---> bcaa
aacc ---> ccaa

Título: Re:invertir cadenas de texto o palabras en excel (automatas)
Publicado por: Mayen Olivares en 10 de Junio 2013, 10:00
Hola Lola puedes hacerlo usando la funcion de Visual Basic for Applications StrReverse, esta función lo que hace es devolverte un texto invertido tal y como has explicado tu en los ejemplos, saludos
Título: Re:invertir cadenas de texto o palabras en excel (automatas)
Publicado por: Lola Roches en 13 de Junio 2013, 12:53
¿Es una función de las predefinidas de Excel?
Título: Re:invertir cadenas de texto o palabras en excel (automatas)
Publicado por: Mayen Olivares en 14 de Junio 2013, 00:20
No digamos mas bien que es una función de Visual Basic que puedes usar para crearte una función de excel que cumpla lo que quieres de invertir cadenas
Título: Re:invertir cadenas de texto o palabras en excel (automatas)
Publicado por: Lola Roches en 18 de Junio 2013, 00:05
Ya he logrado resolverlo, digo cómo lo he hecho por si le puede servir de ayuda a otras personas.

Abrimos Excel y seguimos estos pasos:

1) Ir a la ficha programador -- > Visual Basic

2) En el menú Insertar elegimos "Módulo"

3) Ponemos en el editor de código esto:

Option Explicit

Public Function Invertir(sInputString As String) As String
                Invertir = StrReverse(sInputString)
            End Function

Ahora ya podemos usar la función invertir que nos devuelve un texto invertido.
Título: Re:invertir cadenas de texto o palabras en excel (automatas)
Publicado por: Lola Roches en 20 de Junio 2013, 10:29
Aclaro un par de cosas ya que me han preguntado por mensaje privado y parece que no quedó claro.

Después de haber hecho lo que expliqué para usarla un ejemplo sería escribir en una casilla:

=Invertir(B2)      , de este modo si en la casilla B2 hay aabc nos devuelve en la nueva casilla cbaa, es decir, la cadena invertida.

Y otra cosa, para que la función quede guardada en el archivo y podamos seguir usándola para guardar el archivo hay que hacerlo con tipo de archivo Libro Excel como "Libro de excel habilitado para macros (*.xlsm)