crear macro para busquedas repetitivas

26/09/2006 - 19:50 por wichy | Informe spam
Quisiera crear una macro para un libro de Excel, la cual me devolviera, tras
clickar un boton, los resultados de una misma fecha (que puede ser
repetitiva). Si además hubiera posibilidad de que directamente filtrara y
mostrara solo las filas donde encuentra esa fecha, seria ideal.

Gracias

Preguntas similare

Leer las respuestas

#6 wichy
03/10/2006 - 12:50 | Informe spam
"AnSanVal" escribió:

Hola wichy.
Hay algo en lo que me pierdo un poco: "... Las fechas van apareciendo en las
distintas columnas... " ¿Quieres decir que la fecha unas veces está en una
columna y otras veces en otra/s?.
Quizás sea mejor que pongas un ejemplo (ficticio o no) de como tienes
ordenados tus datos para hacernos mejor idea del problema.

Saludos desde Tenerife.




Hola,

como os decia, no soy muy asiduo de estos chats y no se como puedo hacer
llegar un ejemplo de la ordenación de las distintas columnas. ¿Existe la
posibilidad de enviar una copia de la hoja?, si es así...¿como?

Gracias por tu interés
Respuesta Responder a este mensaje
#7 AnSanVal
03/10/2006 - 17:15 | Informe spam
Puedes escribir algo parecido a esto...

A B C D
1 dato1 dato2 dato3 dato4
2 dato5 dato6 dato7 dato8
3 datoA datoB datoC datoD
4 datoE datoF datoG datoH

. pero con datos (reales o ficticios) similares a los que utilizas.

Saludos desde Tenerife.

"wichy" escribió en el mensaje
news:


"AnSanVal" escribió:

Hola wichy.
Hay algo en lo que me pierdo un poco: "... Las fechas van apareciendo en
las
distintas columnas... " ¿Quieres decir que la fecha unas veces está en
una
columna y otras veces en otra/s?.
Quizás sea mejor que pongas un ejemplo (ficticio o no) de como tienes
ordenados tus datos para hacernos mejor idea del problema.

Saludos desde Tenerife.




Hola,

como os decia, no soy muy asiduo de estos chats y no se como puedo hacer
llegar un ejemplo de la ordenación de las distintas columnas. ¿Existe la
posibilidad de enviar una copia de la hoja?, si es así...¿como?

Gracias por tu interés
Respuesta Responder a este mensaje
#8 Ivan
03/10/2006 - 17:30 | Informe spam
hola chicos,

aunque parece que no es lo que buscaba wichi, y como me habian quedado
algun que otro fallo,

aqui pongo el codigo retocado para buscar en un rango las filas que
contengan una determinada fecha, da lo mismo en la columna que esté
esta (con pequeños retoques vale para buscar cualquier dato), por si a
algun otro le interesa

Option Explicit
Dim Busca As Boolean

' para asignar a un boton (o a ...)

Sub CambiaVista()
If Busca = False Then BuscarCita2 Else MostrarTodo
End Sub

' deja visibles solo las filas que contengan el dato

Sub BuscarCita2()
Dim fiB As Integer, coB As Single
Dim lt As String, Esta As Boolean
Dim Celda As Range, Fecha As String
Application.ScreenUpdating = False
With Worksheets("Fechas")
.Rows.Hidden = False
Fecha = InputBox("Escribe la fecha a buscar")
If Fecha = "" Then
Exit Sub
End If
For fiB = 1 To .[a65536].End(xlUp).Row
Esta = False
For coB = 1 To .UsedRange.Columns.Count
lt = Chr(64 + coB)
If .Range(lt & fiB) = CDate(Fecha) Then
Esta = True: Exit For
End If
Next
If Esta = False Then .Range(lt & fiB) _
.EntireRow.Hidden = True
Next
End With
Busca = True
Application.ScreenUpdating = True
End Sub

' muestra todas las filas

Sub MostrarTodo()
Dim Celda As Range
Application.ScreenUpdating = False
Worksheets("Fechas").Rows.Hidden = False
Busca = False
Application.ScreenUpdating = True
End Sub

bueno, disculpad por la intromision, pero estaba un poco a disgusto con
el primer codigo, y a lo mejor a alguien le viene bien

un saludo y hasta pronto
Ivan
Respuesta Responder a este mensaje
#9 wichy
04/10/2006 - 11:44 | Informe spam
"AnSanVal" escribió:

Puedes escribir algo parecido a esto...

A B C D
1 dato1 dato2 dato3 dato4
2 dato5 dato6 dato7 dato8
3 datoA datoB datoC datoD
4 datoE datoF datoG datoH

.. pero con datos (reales o ficticios) similares a los que utilizas.

Saludos desde Tenerife.



Hola AnSanVa:

A ver si soy capaz de describirte la organización de la hoja

Como te decia en cada fila va incluido un cliente con sus datos generales
(entre la columna A y hasta la columna Q). Datos referentes a direccion,
telefonos, correos, web, persona de contacto etc.

A partir de la columna S,T y U y en saltos de 3 columnas incluyo (FECHA DE
CONTACTO, COMENTARIO, Y SI PRECISA SEGUIMIENTO). Este formato se repite
nuevamente en la columna W,C y Y, y asi repetitivamente dejando una columna
de separacion entre cada uno de los grupos de 3.

El interés es que me filtre los datos y me muestre solo las filas que
contengan la fecha del dia (hoy). Tengo incluida una celda con la formula
"HOY()" y mediante un formato condicional me las resalta en otro color cuando
coincide en las diferentes columnas (lo cual me facilita el localizarlas). El
problema es que la hoja se va haciendo grande y cada vez es más complicado.
Actualmente hay datos hasta las columnas CI, CJ y CK, y va en aumento.

Espero haber podido aclarar la situación

Muchas gracias
Respuesta Responder a este mensaje
#10 wichy
04/10/2006 - 11:57 | Informe spam
"Ivan" escribió:

hola chicos,

aunque parece que no es lo que buscaba wichi, y como me habian quedado
algun que otro fallo,

aqui pongo el codigo retocado para buscar en un rango las filas que
contengan una determinada fecha, da lo mismo en la columna que esté
esta (con pequeños retoques vale para buscar cualquier dato), por si a
algun otro le interesa

Option Explicit
Dim Busca As Boolean

' para asignar a un boton (o a ...)

Sub CambiaVista()
If Busca = False Then BuscarCita2 Else MostrarTodo
End Sub

' deja visibles solo las filas que contengan el dato

Sub BuscarCita2()
Dim fiB As Integer, coB As Single
Dim lt As String, Esta As Boolean
Dim Celda As Range, Fecha As String
Application.ScreenUpdating = False
With Worksheets("Fechas")
.Rows.Hidden = False
Fecha = InputBox("Escribe la fecha a buscar")
If Fecha = "" Then
Exit Sub
End If
For fiB = 1 To .[a65536].End(xlUp).Row
Esta = False
For coB = 1 To .UsedRange.Columns.Count
lt = Chr(64 + coB)
If .Range(lt & fiB) = CDate(Fecha) Then
Esta = True: Exit For
End If
Next
If Esta = False Then .Range(lt & fiB) _
.EntireRow.Hidden = True
Next
End With
Busca = True
Application.ScreenUpdating = True
End Sub

' muestra todas las filas

Sub MostrarTodo()
Dim Celda As Range
Application.ScreenUpdating = False
Worksheets("Fechas").Rows.Hidden = False
Busca = False
Application.ScreenUpdating = True
End Sub

bueno, disculpad por la intromision, pero estaba un poco a disgusto con
el primer codigo, y a lo mejor a alguien le viene bien

un saludo y hasta pronto
Ivan





Hola Ivan:

Muchas gracias por tu interés. Pero creo que mi nivel de conociemiento de
Excel esta muy por debajo del vuestro. Estoy haciendo pruebas constantemente
con tu primer post y ahora con este, y no consigo que lo reconozca.

Si no es mucho pedir, podrias indicarme el procedimiento para insertar la
macro que me adjuntas.

Gracias
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida