buscar un fragmento de texto en una lista

9 envíos / 0 nuevos
Último envío
cesar rodriguez
Imagen de cesar rodriguez
Offline
última acción: Hace 13 años 10 meses
alta: 03/06/2010 - 18:31
Puntos: 25
buscar un fragmento de texto en una lista

tengo los comandos pero no me dan los resultados(no corre el programa

agrego los codigos

Sub Buscar_Texto_En_Lista()

'dimensiones
Dim lngUltimaFila As Long
Dim strObjetoBuscar As String
Dim lngResultado As Long
Dim lngColumna As Long, lngFila As Long
Dim lngPegarColumna As Long, lngPegarFila As Long
Dim x As Integer, n As Integer

'quitar resultados anteriores
Range("G5:H4000").ClearContents

'columna + fila donde empezar/terminar búsqueda
lngColumna = 2
lngFila = 5
lngUltimaFila = Columns(lngColumna).Range("A65536").End(xlUp).Row

'columna + fila donde empezar a pegar resultados
lngPegarColumna = 6
lngPegarFila = 5

'objeto a buscar
strObjetoBuscar = Range("G2").Text
If strObjetoBuscar = "" Then GoTo 99
'minúsculas
strObjetoBuscar = LCase(strObjetoBuscar)

'bucle: realizar búsqueda
For n = lngFila To lngUltimaFila

  'evaluación
  lngResultado = InStr(1, Cells(n, 3), strObjetoBuscar, vbTextCompare)

   'copiar/pegar
    If lngResultado > 0 Then
     Range(Cells(n, 2), Cells(n, 4)).Copy
      Range( _
      Cells(lngPegarFila, lngPegarColumna), _
      Cells(lngPegarFila, lngPegarColumna + 2)) _
        .Select
      ActiveSheet.Paste
    lngPegarFila = lngPegarFila + 1
    End If

Next n

'aparcar
Application.CutCopyMode = False
Range("G2").Select

99:
End Sub

 

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 3 días 4 horas
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
qué no funciona

¿podías concretar un poco más por qué no funciona?

¿da algún error en algún punto?¿no devuelve los resultados esperados? ...

------
Ya sé Excel, pero necesito más

 

------
Ya sé Excel, pero necesito más.

visitante (no verificado)
Imagen de visitante
Re: qué no funciona

no da ningun resultado se queda como en un ciclo

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 3 días 4 horas
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
Re: qué no funciona

yo lo he probado y me funciona bien.

está buscando datos coincidentes en la columna 3

InStr(1, Cells(n, 3), strObjetoBuscar, vbTextCompare)

pero para ver donde tiene los datos, utiliza la columna 2

lngColumna = 2
...
lngUltimaFila = Columns(lngColumna).Range("A65536").End(xlUp).Row

si no hay datos en la columna 2, aparentemente la macro no hace nada

(estás considerando que no hay más de 65536 datos, supongo que porque utilizas una versión 2003 o anterior)

Prueba a poner un mensaje al final de la macro para que te avise de que ha llegado al final, así sabrás que se está ejecutando.

algo así como

msgbox "terminé"

 

por cierto, las macros estan habilitadas ¿no?

------
Ya sé Excel, pero necesito más

 

------
Ya sé Excel, pero necesito más.

visitante (no verificado)
Imagen de visitante
Re: qué no funciona

Si coloco los datos en la columna 2 y 3 me da todos los resultados y si los coloco en la columna 2 solo me da el nombre y no el resto de la data y si lo coloco en la columna 3 no me da nada.

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 3 días 4 horas
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
¿puedes adjuntar un ejemplo?

¿puedes adjuntar un ejemplo?.

la macro espera encontrar los datos en una posición concreta, si están en otra posición diferente es normal que no lo encuentre.

Tal y como está escrita, copia los datos de las columas 2 a 4, eso es lo único que copia. si pones el nombre en la columna 1 no lo copiará. Si no encuentra nada en la columna 2 entiende que no hay datos, y por eso no devuelve ningún resultado.

-----

Ya sé Excel, pero necesito más

 

------
Ya sé Excel, pero necesito más.

visitante (no verificado)
Imagen de visitante
Re: ¿puedes adjuntar un ejemplo?

ya solucione el problema pero quiero ejecutar la macro con un boton que tengo que haser

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 3 días 4 horas
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
controles de formulario

yo creo que lo más sencillo es que insertes en tu hoja un botón del tipo "control de formulario"

Lo encontrarás en la pestaña Programador, dentro del grupo controles. (en las versiones anteriores a la 2007, se encuentra en la barra de herramientas Formulario)

insertar botón en la hoja de cálculo para ejecutar una macro

Dibuja el botón como si dibujases un rectángulo, a continuación se mostrará un formulario para asignarle una macro.

------
Ya sé Excel, pero necesito más

 

------
Ya sé Excel, pero necesito más.

visitante (no verificado)
Imagen de visitante
Re: controles de formulario

ya mucha grasia.