Foro

=> ¿No se ha registrado todavía?

MAS EN: EXCEL AVANZADO



Foro - Hacer búsqueda y mover contenido a otra celda automáticamente

Se encuentra aqui:
Foro => Macros => Hacer búsqueda y mover contenido a otra celda automáticamente

<-Volver

 1 

Siguiente->


Fredes (Visitante)
01-02-2013 22:25 (UTC)[citar]
Hola,
me gustaría saber si es posible hacer una búsqueda de un texto en una columna de datos y cada vez que lo encuentre moverlo a una celda contigua o en una posición determinada.

Ej: son preguntas de tipo test.

A B
1 Pregunta:... x
2 a)cada 2 meses '
3 b)cada 3 meses '
4 c)cada semestre '
5 d)anualmente '
6 Solución: B ------------x
7 Pregunta:...
8 a)
9 b)
10 ....

Tengo en la columna A miles de preguntas, respuestas y soluciones y me gustaría saber si se puede hacer una búsqueda de la palabra o la celda donde está la palabra "Solución" y moverla o bien a la celda Bx contigua (ej: de A6 a B6)o mejor a la celda B que esté 5 líneas antes (Ej: de A6 a B1) y esto de forma automática para toda la columna.
He realizado búsquedas y reemplazos en Word para dejar la columna como está, pero no he encontrado nada en el procesador de texto que me permita buscar y mover. Tampoco en Excel en los menús principales por lo que imagino que tendrá que hacerse con una programación. He visto los post dedicados a búsquedas, pero no tengo conocimiento sobre Excel y no sé como se podrían adaptar a este caso.
Gracias por permitirme comentar.
Un cordial saludo.

PD: espero que el ejemplo quede bien maquetado. No he podido hacer vista previa antes de publicarlo.
Fredes (Visitante)
03-02-2013 19:02 (UTC)[citar]
He encontrado una media solución que me resuelve de momento el problema.

Sub Buscarymover()

Do Until IsEmpty(ActiveCell)

Cells.Find(What:="Texto_a_buscar", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
ActiveCell.Select
Selection.Cut
ActiveCell.Offset(-5, 1).Range("A1".Select
ActiveSheet.Paste
ActiveCell.Offset(6, -1).Range("A1".Select

Loop

End Sub


Hace un recorrido por la columna de datos hasta que encuentra una celda vacía que se supone que es el final de los datos, donde Texto_a_Buscar es lo que queremos encontrar y mover.
Lo que no sé si es el mejor código para hacer el trabajo. Falla cuando encuentra una celda vacía en mitad de la columna de datos, por lo que hay que ejecutar de nuevo la macro o haber limpiado las filas vacías previamente con las opciones de menú del propio Excel (F5--> "celdas vacías" y luego ir al menú de eliminar filas).

Respuesta:

Tu nombre de usuario:

 Color de texto:

 Tamaño de letra:
Cerrar tags



Temas totales: 40
Entradas totales: 95
Usuarios totales: 208
En este momento conectados (usuarios registrados): Nadie crying smiley
Este sitio web fue creado de forma gratuita con PaginaWebGratis.es. ¿Quieres también tu sitio web propio?
Registrarse gratis