23/07/2010, 16:29
|
| | Fecha de Ingreso: julio-2010
Mensajes: 9
Antigüedad: 14 años, 4 meses Puntos: 0 | |
Respuesta: Seguridad Macros yo tenia algo parecido y probando llegue a esto
mira yo escribo algo en d3 y usando el FIND buscara dentro de cada celda
si lo que he escrito esta dentro de ellas por ejemplo si en D3 escribo HORA
y en mi rango hay una celda que dice MILHORAS esa celda es una coincidencia ya que contiene la palabra HORA dentro del valor de celda.
Esta es la macro:
'defino el objeto c para q almacene la coincidencia de una busqueda
'lo que estoy buscando estará escrito en la celda d3
'y lo voy a buscar en el rango al que he llamado FRUITS de la
'hoja MISTOCK
Set c = Sheets("MISTOCK").Range("FRUITS").Find(Range("d3") , LookIn:=xlValues)
' si no hay coincidencia no hace nada
'solo un mensaje
If c Is Nothing Then
aaa = MsgBox("No se encontraron coincidencias!!!")
Else
'si hay una coincidencia
'almacena la primera fila de la coincidencia para
'luego comparar ya que el find volvera a empezar solo
'cuando llegue al final del rango dado
x = c.Row
'entra en un loop
'voy a copiar cada coincidencia del rango
'en otra columna para tener a un lado
'las celdas que coinciden con lo que yo escribi en d3
Do
'selecciona la posicion de la coincidencia
c.Select
'hace el copy
Selection.Copy
'luego un pegado de valores bajo la celda H2
Range("H2").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
'usando el FINDNEXT le doy a C la siuiente coincidencia
Set c = Sheets("MISTOCK").Range("FRUITS").FindNext(c)
'almaceno la fila de la siguiente coincidencia
y = c.Row
'aqui volvera a repetir el proceso siempre y cuando
'la fila de la primera coincidencia sea diferente
'de la fila de la nueva coincidencia
'ya que si son iguales quiere decir que
'esto volviendo a empezar la busqueda
Loop While x <> y
End If
Espero que haya sido bastante claro y q t ayude en algo... |