29/06/2007, 03:11
|
| Colaborador | | Fecha de Ingreso: diciembre-2003 Ubicación: Desde una destilería
Mensajes: 2.584
Antigüedad: 20 años, 11 meses Puntos: 144 | |
Re: filtrado de una lista Prueba este macro (ponlo en la sección de módulos):
Código:
Sub SoloTexto()
'**************************************************************************
'SUPUESTO:
'Rango de datos: desde A1 hasta donde sea.
'El macro acaba, cuando encuentra una fila vacía
'Tenemos 2 hojas: Hoja1 y Hoja2 (estos son los nombres que vemos en VBA,
'no los nombres que le damos a las pestañas desde Excel)
'En Hoja1 están los datos de origen, y el texto se pegará en Hoja2
'**************************************************************************
'Ocultamos el procedimiento
Application.ScreenUpdating = False
'Nos situamos en A1
Hoja1.Select
Range("A1").Select
'Mientras la celda en cuestión no esté vacía, que
'vaya bajando una fila, hasta que se encuentre con una vacía
Do While Not IsEmpty(ActiveCell)
'Miramos si es texto
If Not IsNumeric(ActiveCell) Then
dato = ActiveCell
'Seleccionamos la Hoja2
Hoja2.Select
Range("A1").Select
'Si está vacía la fila, ponemos el primer dato
If IsEmpty(ActiveCell) Then
'y ahí pegamos el texto
ActiveCell = dato
'en caso contrario, buscamos la primera fíla vacía
Else
'Recorremos esa columna, hasta encontrar una fila vacía
Do While Not IsEmpty(ActiveCell)
'Bajamos una fila
ActiveCell.Offset(1, 0).Select
Loop
'y ahí pegamos el texto
ActiveCell = dato
End If
End If
'Bajamos una fila
Hoja1.Select
ActiveCell.Offset(1, 0).Select
Loop
'Volvemos al la Hoja1
Hoja1.Select
Range("A1").Select
'Mostramos el procedimiento
Application.ScreenUpdating = True
End Sub
Salu2 |