Visual Basic para Aplicaciones - maro que compare cadenas de texto en Excel

Life is soft - evento anual de software empresarial
 
Vista:

maro que compare cadenas de texto en Excel

Publicado por Alejandro (6 intervenciones) el 12/05/2006 11:40:17
Hola a todos,
Tengo una hoja1 con 9000 filas con datos solo en la columna A.Cada celda tiene texto en Ingles delimitado por "|" tal como así: p.e car | house | tree
Por otro lado tengo otra hoja2 en la que aprecen en la columna A titulos en ingles y en B su traducción en castellano, p.e: car coche
house casa
Pues bien, lo que tengo que hacer es que en cada fila de la hoja1 cambiar el nombre que aparece en ingles por su correspondiente en castellano.
Se supone que todas las correspondencias entre nombre castellanos e ingles se encuentran en la hoja2.
Alguien puede ayudarme a crear esta macro?
Muchas Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:maro que compare cadenas de texto en Excel

Publicado por JuanC (243 intervenciones) el 12/05/2006 13:23:25
Hola Alejandro..

Te paso un fragmento rudimentario que te puede servir de guía
para resolver tu problema.

Es sólo la "punta de un ovillo", le falta bastante...

Sub base()
'Ubicamos los datos
Worksheets("hoja1").Activate
Range("a1:a2").Select

'Procesamos cada dato
For Each cell In Selection
s = Trim(cell.Value)
original = s
pos = InStr(s, "|")
longi = Len(s)
'Extraemos cada una de las palabras en la celda
Do While pos > 0
palabra = Trim(Left(s, pos - 1))
'Buscamos la palabra traducida
Set rng = Range("hoja2!A1:hoja2!A3").Find(palabra)
If Not rng Is Nothing Then
'Reemplazamos por la traducción encontrada
original = Replace(original, palabra, rng.Offset(0, 1).Value)
End If
'Palabra siguiente
s = Right(s, longi - pos)
longi = Len(s)
pos = InStr(s, "|")
Loop
'Palabra final
palabra = Trim(s)
Set rng = Range("hoja2!A1:hoja2!A3").Find(palabra)
If Not rng Is Nothing Then
original = Replace(original, palabra, rng.Offset(0, 1).Value)
End If
'Sobreescribimos la celda
cell.Value = original
'Siguiente dato
Next cell
End Sub

Saludos desde Buenos Aires, JuanC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:maro que compare cadenas de texto en Excel

Publicado por Alejandro (6 intervenciones) el 13/05/2006 19:22:15
Muchas Gracias Juan!!
Saludos!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar