Inicio de sesión

Nombre de usuario o e-mail

En línea

En este momento hay 0 usuarios y 33 invitados en línea.

buscar un fragmento de texto en una lista

cesar rodriguez

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

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

Visitante

Re: qué no funciona

no da ningun resultado se queda como en un ciclo

pacomegia

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

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

¿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

Visitante

Re: ¿puedes adjuntar un ejemplo?

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

pacomegia

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

Visitante

Re: controles de formulario

ya mucha grasia.

¿necesitas más?

apúntate a nuestro newsletter
Fuente RSS

Si te gusta necesitomas, ¡ compártelo !

Si te gusta, compártelo


apúntate a nuestro newsletter

cargando...
Buscar en necesitomas.com

Excelómetro