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
¿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.
no da ningun resultado se queda como en un ciclo
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.
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.
¿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.
ya solucione el problema pero quiero ejecutar la macro con un boton que tengo que haser
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)
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.
ya mucha grasia.