Excel macros: buscar valores en una columna

Tengo un problema con un macro que estoy haciendo:
Tengo un commandbutton con el que quiero buscar valores en una selección, pero el comando:
Cells.Find(What:=ComboBox1, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
        xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False) _
        .Activate
Me muestra error de compilación
Lo intenté filtrando datos y tampoco me muestra un resultado.
El botón con problemas es commandbutton8, que debería filtrar datos por fecha.
Adicional pregunto: cuando corro este archivo en mi PC (winxp sp2, office2007 en español) me muestra errores de compilación que no me muestra el pc de la oficina (windows xp profesional, ¿office 2003 en inglés) porque pasará esto?
El archivo se puede escargar en este link
http://www.megaupload.com/?d=S350GVJ2

1 respuesta

Respuesta
1
Las instrucciones en VBA en español son diferentes al ingles. Si tu Visual de casa está compilado en español las instrucciones son diferentes (por el idioma).
Para saberlo haz esta prueba. Grabate una macro y ves en que idioma se graban las instrucciones. De todas maneras existen diferencias entre Office 2007 y 2003 de hecho Microsoft ya ha sacado el servipack 1 que corrige muchos problemas aquí te dejo la página:
http://support.microsoft.com/kb/942382/es
Pruébalo y si te lo ha solucionado puntúas y finalizas la consulta. Gracias.
>Un saludo
>Julio
Gracias Julio!
Voy a descargar el servicepack para corregir estos errores.
Por otro lado, para el caso del archivo que del link, ¿podrías ayudarme con el problema del código asociado al commandbutton 8?
Quisiera que hiciera una de estas dos cosas:
Buscar una fecha que se introduce el el textbox3, en la página 2 y seleccionar todas las filas en las que se encuentren estas celdas para después copiarlas y pegarlas en otra ubicación
O bien:
Filtrar solo las filas que contienen la fecha que aparece en el textbox3 y seleccionarlas para pegarlas en otra ubicación.
Gracias Experto!
El problemita de fechas en Excel tiene guasa, algunas veces funciona y otras no reconoce el formato, todo depende de como se ingresan los datos, en excel el formato de fecha para buscar es mes/dia/año mm/dd/yyyy si las has ingresado al revés antes hay que cambiar el formato del textbox, tengo esta macro pruébalas acomodándola a tu necesidad:
Private Sub CommandButton8_Click()
  Range("A1:F3").Select          'Modifica tu rango a filtrar
    Selection. AutoFilter
    Selection.AutoFilter Field:=1, Criteria1:=" 6 TextBox3
    Range("A1:F3").Select        'Modifica tu rango a filtrar
    Selection. Copy
    Sheets("Hoja2").Select        'Modifica lo que hacer con el rango copiado
    ActiveSheet. Paste
    End Sub
Mira a ver si te funciona si no tendremos más cosas que hacer.
>Un saludo
>Julio
Perfectamente! De eso se trataba el problema, todas las fechas tienen que tener el formato "mm/dd/yyyy" o si no, no los encuentra!
Una duda final, antes de cerrar la pregunta, y perdona el abuso:
Ahora que filtré, ¿cómo hago para seleccionar las filas filtradas?
No me sirve determinar un rango rígido, como en tu ejemplo, ya que unas veces pueden resultar 3 filas, otras veces 4 o 5.
Mil gracias, Julio
Si te fijas en la macro el mismo rango seleccionado para el autofiltro es el que se selecciona después de ejecutar el autofiltro copias el rango y lo pegas donde quieras quedaría así:
Private Sub CommandButton8_Click()
Dim celdaINI, celdaFIN As String
Range("A1").Select
celdaINI = ActiveCell.Address
ActiveCell.End(xlDown).Select
ActiveCell.End(xlToRight).Select
celdaFIN = ActiveCell.Address
Range("A1", ActiveCell).Select
Selection.AutoFilter
Selection.AutoFilter Field:=3, Criteria1:=Textbox3
Range(celdaINI, celdaFIN).Select
Selection. Copy
Range("A12"). Select    'Cambia la celda donde la necesites pegar
ActiveCell. PasteSpecial
End Sub
Esta macro te la he hecho suponiendo que tu rango comienza en A1 y no sabemos cuando termina en filas ni tampoco en columnas, la macro seleccionará sola los rangos siempre y cuando no haya celdas vacías entre medias. Yo en mi ejemplo te he llevado el rango copiado a la celda A12 tu cambiala a tu necesidad o a la hoja que quieras.
Si te ha servido puntúa y finaliza la consulta. Recuerda poner la fecha mm/dd/yyyy
>Un saludo
>Julio

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas