Problema con el método open de worksheet

Hola Fejoal:
Mi Nombrre es Alejandro Fragoso de Mexico
Espero que te encuentres bien.
Tengo un problema con el método open de woorsheet, hice una macro que funciona muy bien si la ejecuto por medios convencionales, pero cuando la pongo para que se ejecute al abrir el libro no funciona cierto código que uso para ejecutar un filtro, perro lo raro es que el código que pongo antes y después del filto si funciona
Este es el código:
Sub Extraer()
'
' Extraer Macro
' Macro grabada el 06/05/2003 por Alejandro Fragoso
'
'
Sheets("Resumen").Select
Sheets("Facturas1").Range("A2007:C3505").AdvancedFilter Action:=xlFilterCopy _
, CriteriaRange:=Range("K1:N2"), CopyToRange:=Range("A35"), Unique:=False
Range("A35").Select
End Sub
Ojala me permitieras enviarte el archivo para ver si es mi maquina o la configurracion de mi excel o algo así
Muchísimas Gracias
P.DE me urge por favor

1 Respuesta

Respuesta
1
Me parece que la parte que no mencionaste es que tu archivo opera en una versión de Office posterior a la 97, podría ser XP, casi de seguro.
Ocurre que mi versión es la vieja y querida 97 y no lograba hacer funcionar tu macro ni por el evento de apertura ni ejecutándola manualmente.
Luego busqué una PC con XP y la macro funciona bien en cualquiera de las dos modalidades. Por lo cual concluyo que el problema debe estar en el nivel de seguridad asignado a tu versión de MS Excel.
Así si tienes una versión posterior a la 97, busca en "Herramientas" | "Macro" | "Seguridad" y marca la opción "Media" o "Baja" e intenta abrir nuevamente el archivo luego de asegurarte que te haya tomado esta configuración.
Un abrazo!
Fernando
Acabo de volver de mi fin de semana y vi tu pregunta.
De sólo ver el código, pareciera que el problema radica en la selección de la hoja, toda vez que, po definición, los resultados de un filtro avanzado sólo pueden extraerse en la misma hoja donde se encuentra la base filtrada.
Por lo tanto, el procedimiento correcto será extraer los datos en un rango de la misma hoja. Puede ser A35, pero es preferible uno que evite la posibilidad de sobreescribir datos preexistentes. Esto es: Si los datos a extraer fuesen más de 2000, desde la celda A35, la extracción se superpondría con el inicio de la base que es A2007
Como fuera, luego usar esa referencia con la propiedad "CurrentRegion" para identificar todas los registros extraídos, copiarlos, y luego llevarlos a la hoja "Resumen" que parece ser donde quieres que los datos se copien.
En definitiva, tu macro debería ser algo así como esto:
Sheets("Facturas1").Select
Sheets("Facturas1").Range("A2007:C3505").AdvancedFilter Action:=xlFilterCopy _
, CriteriaRange:=Range("K1:N2"), CopyToRange:=Range("U2"), Unique:=False
Range("U2"). CurrentRegion. Copy Sheets("Resumen"). Range("A35")
Nota que cambié el rango de extracción a la celda U2 de la hoja Facturas1
Las pruebas locales que realicé fueron exitosas. De todos modos, si con esta sugerencia no logras el resultado deseado, puedes enviarme el archivo a la siguiente dirección de correo:
aclarando qué entendí mal o qué faltó.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas