Discussion:
Macro copia pega que no funciona
(demasiado antiguo para responder)
Mk
2006-12-11 23:55:38 UTC
Permalink
Buenas!

Para algunos de vosotros la siguiente consulta será muy sencilla pero es
algo que no logro solucionar, a ver si me podeis ayudar.

Tengo una macro tal que:

Private Sub CommandButton30_Click()

Worksheets(1).Visible = True

Workbooks.Open Filename:="F:\DIRECTORIO\LISTADOS\5024.xls"
ActiveWorkbook.Sheets(Array(2)).Select
ActiveSheet.Activate
Range("E2", "F15000").Select
Selection.Copy

Windows("Plantilla_act_news_BETA 3.xls").Activate
ActiveWorkbook.Sheets("Matriz").Activate
ActiveSheet.Paste Destination:=Worksheets("Matriz").Range("A2")

Application.DisplayAlerts = False
Workbooks("5024.XLS").Close SaveChanges:=False

ActiveSheet.Visible = False
End Sub


Cuando estaba creando la macro todo ok, cierro el libro, lo guardo y al
abrirlo de nuevo para probar la macro me da error. ¿Alguna idea o ejemplo?.

Muchas gracias.

Mk
Ivan
2006-12-12 00:32:50 UTC
Permalink
hola Mk, mira aver si te vale esto (no estoy del todo seguro)

Private Sub CommandButton30_Click()
Workbooks.Open Filename:="F:\DIRECTORIO\LISTADOS\5024.xls"
Sheets(Array(2)).Range("E2", "F15000").Copy _
Workbooks("Plantilla_act_news_BETA
3.xls").Workheets("Matriz").Range("A2")
Application.DisplayAlerts = False
Workbooks("5024.XLS").Close SaveChanges:=False
Application.DisplayAlerts =true
End Sub

un saludo y hasta pronto
Ivan

PD: aviso: esto te copiaria todo, incluidos formatos.

por cierto, en la macro tienes varios errores/redundancias (aunque yo
no sabre explicartelos muy bien)->
ActiveSheet.Activate ->>> estas activando la hoja activa (ya activa).
Ademas no es necesario (al menos normalmente que yo sepa) activar
hojas, rangos, etc, para trabajar con ellas
Windows("Plantilla_act_news_BETA 3.xls").Activate
ActiveWorkbook.Sheets("Matriz").Activate
un poco de lo mismo de antes , pero con mas galimatias ¿usas 'windows'
por algun motivo especial? si no es asi te valdria con workbooks
(creo).
ActiveSheet.Paste Destination:=Worksheets("Matriz").Range("A2")
aqui, si no me equivoco, estas pegando la hoja activa, que es "Matriz"
en la hoja "Matriz" ??

¿y el motivo de hacerla visible? si no me equivoco no es necesario
para esta situacion.

lamento no poder/saber explicarte mucho mas, pero segun voy escribiendo
a mi mismo me entran las dudas

de todas formas creo que le macro modificada deberia funcionar

con lo que sea comentas, un saludo de nuevo
Ivan
2006-12-12 00:46:05 UTC
Permalink
disculpa Mk , pero acabo de ver otro de los errores que tenias

Sheets(Array(2)).Range("E2", "F15000").Copy -> el rango (Range("E2",
"F15000") ->

esta mal 'redactado' -> deberia ser -> Range("E2:F15000") (de nuevo
creo)

en cuanto a array(2), supongo que tienes una matriz con los nombres de
las hojas y esta se corresponde con el elemento 2º o 3º, no se si es
valida esta forma, pero por lo que yo llevo visto, si lo que estas
utilizando es la funcion Array, lo normal es asignar a una variable una
serie de elementos con la funcion 'Array' (pej:->

dim miMatriz as variant
miMatriz = Array("Hoja1", "Hoja2", "Hoja3")

aqui (y dependiendo de option base, creo) -> miMatriz(2) = "Hoja3"

bueno no me hagas mucho caso,
Ivan
2006-12-12 02:14:02 UTC
Permalink
hola de nuevo Mk,

disculpame, pero cada vez que intento ayudar, acabo metiendo la pata
unas cuantas veces, liando la cosa mas que aclarandola y mandando
tropecientos mil mensajes rectificandome a mi mismo

la macro a mi me funciona bien (aunque al final te la pongo un poco
depurada)

pero en lo que se refiere a mis consejos hay mas de un gazapo que te
comento ->
Post by Mk
Windows("Plantilla_act_news_BETA 3.xls").Activate
ActiveWorkbook.Sheets("Matriz").Activate
aqui solo dejaria esto->

¿usas 'windows' por algun motivo especial? si no es asi te valdria con
workbooks
(creo).
Post by Mk
ActiveSheet.Paste Destination:=Worksheets("Matriz").Range("A2")
aqui no dejaria nada, he dicho una burrada, Esta ->

(aqui, si no me equivoco, estas pegando la hoja activa, que es "Matriz"
en la hoja "Matriz" ??)

-> no me hagas ni caso

y en cuanto a esto ->

Sheets(Array(2)).Range("E2", "F15000").Copy -> el rango (Range("E2",
"F15000") -> esta mal 'redactado' -> deberia ser ->
Range("E2:F15000") (de nuevo
creo)

no se porque he pensado que querias copiar el rango completo
[e2:f15000], pero supongo que solo quieres pegar las dos celdas [e2] y
[f15000]. Lo mismo de antes, no me hagas ni caso

en cuanto a la matriz supongo que sera una matriz a la que llamas
'array' y punto. Lo mismo, no me hagas ni caso.

un saludo y disculpa el/los (embr)rollo/s.

A continuacon te pongo la macro que a mi me funciona bien (aunque
seguro que es notablemente mejorable)

un saludoy hasta pronto
Ivan

'*******************************
Private Sub CommandButton30Click()
Workbooks.Open Filename:="F:\DIRECTORIO\LISTADOS\5024.xls"
Sheets(Array(2)).Range("E2", "F15000").Copy _
Workbooks("Plantilla_act_news_BETA 3.xls") _
.Worksheets("Matriz").Range("A2")
Application.DisplayAlerts = False
Workbooks("5024.xls").Close False
Application.DisplayAlerts = True
End Sub

'*************************************************
'''para el caso de que la macro este en el libro de la hoja "Matrices"
'------------------------------------------------------------
Private Sub CommandButton30_Click()
Workbooks.Open Filename:="F:\DIRECTORIO\LISTADOS\5024.xls"
Sheets(Array(2)).Range("E2", "F15000").Copy _
ThisWorkbook.Worksheets("Matriz").Range("A2")
Application.DisplayAlerts = False
Workbooks("5024.xls").Close False
Application.DisplayAlerts = True
End Sub

'*****************************************
'''usando Paste, como en tu ejemplo
'----------------------------------------------
Private Sub CommandButton30_Click()
Workbooks.Open Filename:="F:\DIRECTORIO\LISTADOS\5024.xls"
Sheets(Array(2)).Range("E2", "F15000").Copy
With ThisWorkbook.Worksheets("Matriz")
.Paste .Range("A2")
End With
Application.DisplayAlerts = False
Workbooks("5024.xls").Close False
Application.DisplayAlerts = True
End Sub
Mk
2006-12-12 21:13:48 UTC
Permalink
Hola Iván!

Muchísimas gracias por tu interés sobre todo por tu ayuda.
Efectivamente, tal y como comentas tenía numerosos errores en la macro
pero incluso con el código "depurado" que tu expones no me funciona.

Lo único que he cambiado respecto al código que comentas es que
realmente mi intención es copiar el rango "E2:F15000" y no las dos
celdas como parecía indicar en el código que expuse inicialmente.

Lo que ocurre cuando ejecuto la macro es que se abre el fichero llamado
"5024" e inmediatamente después me "salta" un error "438 en tiempo de
ejecución" y me señala como causa del error la siguiente parte del código:

Sheets(Array(2)).Range("E2:F15000").Copy _
Workbooks("Plantilla_act_news_BETA 3.xls") _
.Worksheets("Matriz").Range("A2")

Voy a fijarme un poco más y hacer algún cambio en el código para ver si
logro hacerla funcionar ok.

Lo dicho, muchas gracias de nuevo.

Mk.
Ivan
2006-12-12 22:26:08 UTC
Permalink
hola Mk

a mi me funcionan los tres codigos sin ningun problema.

Por lo que he visto, el error 438 es que 'El objeto no admite esta
propiedad o metodo'

., y, en este caso, si todos los datos que has introducido sobre la
direccion de los libros y hojas es correcta, no deberia de darse,

salvo si lo que estas intentando pegar es un grafico, en cuyo caso no
tengo ni idea, pues no he trabajado con ninguno en mi vida.

de todas formas, si sigue dandote el error tras revisar bien todo,
prueba a cambiar donde pone worksheets por sheets, y a la inversa
(aunque no creo que tenga que ver)

tambien puedes exponer la matriz 'Array()', a ver como la tienes
asignada/configurada

ten en cuenta que, dependiendo de como tengas asignado Option Base
(echa un vistazo con F1 si no lo controlas), los limites de una matriz
pueden ir:->

de 0 <indice del 1er elemento> a ->>(nº de elementos - 1) <indice
del ultimo elemento>

o bien ir desde 1 al numero total de elementos.

pej. miMatriz=("a", "b", "c", "d")

si Option Base es 0 -->miMatriz(1)="b" -> miMatriz(3)="d"

si Option Base es 1 -> miMatriz(1)="a" -> miMatriz(3)="c"

bueno, no se si te aclara algo, o si tiene algo que ver, pero si sigues
teniendo el error, vuelve a consultar, a ser posible concretando estos
datos (array, graficos,..., y los que pienses que podrian influir.), y
si yo no se, seguro que hay alguien mas que te echa una mano

un saludo y hasta pronto
Ivan
Tux
2006-12-13 13:25:36 UTC
Permalink
Post by Ivan
hola Mk
a mi me funcionan los tres codigos sin ningun problema.
Por lo que he visto, el error 438 es que 'El objeto no admite esta
propiedad o metodo'
....................
Hola Chicos :-)

Me ha interasado este hilo y cogiendo la macro original quedaria una
cosa asi y luego adaptandola un poco claro esta :-)

Sub UnaPrueba()

Dim i As Integer
Dim x As Integer

x = 1

For i = 1 To Sheets.Count

For Each celda In Sheets(i).Range("B5:B29")


If celda <> 0 Then

Cells(x, 1) = celda

x = x + 1

End If
Next

Next

End Sub

Este codigo que he adaptado del que MK nos a ofrecido en el primer hilo
coge en [mi ejemplo] coge de todas las hojas de un mismo libro coge el
rango B5:B29 y copia esas celdas llenas (las vacias no) y las copia en
la hoja en la cual ejecutais la macro :-) ahora faltaria adapatarla a la
macro de MK que provaremos a ver como queda adaptada :-)

A ver si conseguimos sacarla entre todos :-)



Saludos
Monica
--
¡Un SAludo! :-)

www.fermu.com
www.zorval.es
Tux
2006-12-13 14:24:32 UTC
Permalink
Post by Ivan
hola Mk
a mi me funcionan los tres codigos sin ningun problema.
Por lo que he visto, el error 438 es que 'El objeto no admite esta
propiedad o metodo'
Hola de nuevo :-)

Bien he apañado el codigo asi :-)

Teniendo habierto el libro donde se quieren llevar los datos, en este
caso teniendo abierto el libro:

Plantilla_act_news_BETA 3.xls en la hoja donde se quieran copiar esos
datos si es la hoja matriz pues nos situamos en esa hoja y le damos a
ejecutar la macro:


Sub UnaPrueba()


Workbooks.Open Filename:="F:\DIRECTORIO\LISTADOS\5024.xls"

With Sheets.Add

Dim i As Integer
Dim x As Integer

x = 2

For i = 1 To Sheets.Count

For Each celda In Sheets(i).Range("E2:F15000")


If celda <> 0 Then

Cells(x, 1) = celda

x = x + 1

End If
Next

Next

Windows("5024.xls").Activate
Columns("A:A").Copy
Windows("Plantilla_act_news_BETA 3.xls").Activate
Columns("A:A").Select
ActiveSheet.Paste
Range("D1").Select

Application.DisplayAlerts = False
Workbooks("5024.XLS").Close SaveChanges:=False
End With


End Sub


ESte codigo hace que agrega una hoja en libro "5024.xls" donde unifica
en la columna A2 todos los datos de todas las hojas que existan en ese
libro, por el rango por ejemplo E2:F15000 y lo pone uno debajo de otro
en la columna A a partir de la fila 2. Bien, luego de esto hace una
copia de dicha columna y la pega en la columna A de nuestro libro
abierto osease Plantilla_act_news_BETA 3.xls (estando nosotros en la
hoja que nos interesa copiar esos datos) .

No se si me he explicado muy bien o quizas haya acabado de liarla un
poco mas :-(

Y el final del codigo como hemos cerrado es libro sin realizar cambios
pues logicamente esa hoja que hemos agregado no existira en el libro
"5024.xls"

Bueno ya me comentais ok? :-)

Saludos
MOnica
--
¡Un SAludo! :-)

www.fermu.com
www.zorval.es
Tux
2006-12-13 14:35:33 UTC
Permalink
Post by Tux
Post by Ivan
hola Mk
a mi me funcionan los tres codigos sin ningun problema.
Por lo que he visto, el error 438 es que 'El objeto no admite esta
propiedad o metodo'
Hola de nuevo :-)
Bien he apañado el codigo asi :-)
Teniendo habierto el libro donde se quieren llevar los datos, en este
Plantilla_act_news_BETA 3.xls en la hoja donde se quieran copiar esos
datos si es la hoja matriz pues nos situamos en esa hoja y le damos a
..............
Perdon :-)

Si solo son dos rangos lo que se quieren coger en esta linea seria asi:


For Each celda In Sheets(i).Range("E2:F15000")

Pasaria a ser asi :


For Each celda In Sheets(i).Range("E2", "F15000")


Bueno ya me comentais ok? :-)

Saludos
Monica
--
¡Un SAludo! :-)

www.fermu.com
www.zorval.es
Tux
2006-12-13 14:51:41 UTC
Permalink
Post by Ivan
hola Mk
a mi me funcionan los tres codigos sin ningun problema.
Por lo que he visto, el error 438 es que 'El objeto no admite esta
propiedad o metodo'
., y, en este caso, si todos los datos que has introducido sobre la
direccion de los libros y hojas es correcta, no deberia de darse,
...........

Perdon, perdon, perdon, pero creo que me he liado de hilo y lo que es
mas los he unido ¡ay dios ! ¡que verguenza! :-P

Perdon Ivan y perdon MK Me he liado entre hilos (si es que no se puede
abarcar mas de lo que se puede :-(

Perdon perdon! :-S

Saludos
Monica
--
¡Un SAludo! :-)

www.fermu.com
www.zorval.es
Tux
2006-12-13 15:39:18 UTC
Permalink
Post by Mk
Hola Iván!
Muchísimas gracias por tu interés sobre todo por tu ayuda.
Efectivamente, tal y como comentas tenía numerosos errores en la macro
pero incluso con el código "depurado" que tu expones no me funciona.
Lo único que he cambiado respecto al código que comentas es que
realmente mi intención es copiar el rango "E2:F15000" y no las dos
celdas como parecía indicar en el código que expuse inicialmente.
Lo que ocurre cuando ejecuto la macro es que se abre el fichero llamado
"5024" e inmediatamente después me "salta" un error "438 en tiempo de
Sheets(Array(2)).Range("E2:F15000").Copy _
Workbooks("Plantilla_act_news_BETA 3.xls") _
.Worksheets("Matriz").Range("A2")
Voy a fijarme un poco más y hacer algún cambio en el código para ver si
logro hacerla funcionar ok.
Lo dicho, muchas gracias de nuevo.
Mk.
Hola de nuevo :-)

Aqui te dejo despues de toda la que he liado el codigo para que lo
pruebes :-)

Y de nuevo mil perdones para Ivan y para Ti MK :-)




Private Sub CommandButton30_Click()


Worksheets(1).Visible = True

Workbooks.Open Filename:="F:\DIRECTORIO\LISTADOS\5024.xls"
ActiveWorkbook.Sheets(Array(2)).Select
ActiveSheet.Activate
Range("E2", "F15000").Copy
Windows("Plantilla_act_news_BETA 3.xls").Activate
Sheets("Matriz").Select
Range("A2").Select
ActiveSheet.Paste
Application.DisplayAlerts = False
Workbooks("5024.XLS").Close SaveChanges:=False

ActiveSheet.Visible = False

End Sub


Saludos
Monica
--
¡Un SAludo! :-)

www.fermu.com
www.zorval.es
Ivan
2006-12-13 23:40:14 UTC
Permalink
hola Monica,

a la espera de que Mk nos comente como le esta yendo (me da la
impresion que se trata de un error de sintaxis, bien en la escritura de
las rutas de los archivos, bien en el uso de 'Array(2), aunque hay una
cosa que me escama -> el uso de Windows ¿nos puedes explicar (Mk) si
tiene algun motivo especial, o si hay hojas de graficos en alguno de
los libros?....)

lo dicho, a la espera de Mk, me imagino que tus respuestas iniciales
eran para el tema "Buscar celdas no vacias en un rango y copiarlas en
otra hoja". Pues por aqui cerca anda el tema si quieres animarte.

en cuanto a la ultima macro que propones, me da la impresion (desde mi
punto de vista, que te aseguro que es muy limitado) de que quizas abusa
un poco de activar/desactivar objetos, teniendo en cuenta que
cualquiera de las acciones que realiza se pueden realizar (creo)
perfectamente sin necesidad de ello,

Y si no me equivoco ( que es muy posible que si) el ab/uso de
de/seleccionar y des/activar rangos y hojas se puede traducir en una
ralentizacion de la ejecucion, aparte de conllevar algun riesgo mas (y
de nuevo solo creo) como recalculos de formulas, si las hay, y quizas
otros

bueno, en cualquier caso, encantado de saludarte, y en cuanto tenga
otro rato echare un ojo a tus propuestas

un saludo y hasta pronto
Ivan

PD hola Mk, si andas por ahí, cuando puedas nos aclaras como te ha ido
el tema, por quitarnos el gusanillo
Mk
2006-12-14 00:26:08 UTC
Permalink
Post by Ivan
hola Monica,
a la espera de que Mk nos comente como le esta yendo (me da la
impresion que se trata de un error de sintaxis, bien en la escritura de
las rutas de los archivos, bien en el uso de 'Array(2), aunque hay una
cosa que me escama -> el uso de Windows ¿nos puedes explicar (Mk) si
tiene algun motivo especial, o si hay hojas de graficos en alguno de
los libros?....)
lo dicho, a la espera de Mk, me imagino que tus respuestas iniciales
eran para el tema "Buscar celdas no vacias en un rango y copiarlas en
otra hoja". Pues por aqui cerca anda el tema si quieres animarte.
en cuanto a la ultima macro que propones, me da la impresion (desde mi
punto de vista, que te aseguro que es muy limitado) de que quizas abusa
un poco de activar/desactivar objetos, teniendo en cuenta que
cualquiera de las acciones que realiza se pueden realizar (creo)
perfectamente sin necesidad de ello,
Y si no me equivoco ( que es muy posible que si) el ab/uso de
de/seleccionar y des/activar rangos y hojas se puede traducir en una
ralentizacion de la ejecucion, aparte de conllevar algun riesgo mas (y
de nuevo solo creo) como recalculos de formulas, si las hay, y quizas
otros
bueno, en cualquier caso, encantado de saludarte, y en cuanto tenga
otro rato echare un ojo a tus propuestas
un saludo y hasta pronto
Ivan
PD hola Mk, si andas por ahí, cuando puedas nos aclaras como te ha ido
el tema, por quitarnos el gusanillo
Hola a los 2!

Muchas gracias de nuevo por vuestra ayuda e interés.

La verdad es que aún no he logrado que me funcione la macro. Lo que
pretendo con la macro es relativamente sencillo, al menos en la teoría.

En un principio he añadido un botón en una hoja ("Resumen") del fichero
"Plantilla_act_news_BETA 3" que debería copiar dos columnas o un rango
muy amplio ("E2:F15000") de otro fichero ("5024.xls")en la columna A y B
de la hoja oculta ("Matriz") que se encuentra en el fichero
"Plantilla_act_news_BETA 3").

El fichero no contiene gráficos y si que es cierto que he modificado el
código conscientemente para "des/activar" rangos incluso cuando no fuese
necesario (asumiendo como bien dices que se ejecutase mas lentamente)
porque consultando en la ayuda de v.basic de excel menciona o al menos
yo he entendido que es muy importante des/activar los rangos para que
funcione correctamente.

De todos modos he probado de varias maneras y no logro avanzar. Hace
unos minutos he probado con el código de Tux y nada de nada. He
realizado una pequeñísima modificación y se refiere al rango ya que
realmente no me interesa copiar dos celdas sino el rango "E2:F15000".

Codigo:

Worksheets(1).Visible = True

Workbooks.Open Filename:="F:\DIRECTORIO\LISTADOS\5024.xls"
ActiveWorkbook.Sheets(Array(2)).Select
ActiveSheet.Activate
Range("E2:F15000").Copy
Windows("Plantilla_act_news_BETA 3.xls").Activate
Sheets("Matriz").Select
Range("A2").Select
ActiveSheet.Paste
Application.DisplayAlerts = False
Workbooks("5024.XLS").Close SaveChanges:=False

ActiveSheet.Visible = False


Lo único que obtengo ahora al ejecutar la macro es un error de código
1004, se me queda abierto el fichero 5024 y la celda a3 seleccionada.
Incluso he pensado en copiar el fichero y ejecutar la macro en otro pc
para tener mas datos.

En fín, un saludo y ya comentaré cualquier avance...

Mk.
Ivan
2006-12-14 01:51:12 UTC
Permalink
hola Mk,

en cuanto a de/seleccionar, no te lo podria asegurar, pero yo tengo la
idea mas bien contraria. No que sea malo seleccionar, sino mas bien
innecesario y poco operativo, excepto si es por un motivo concreto, o
por que la ocasion asi lo requiera

en cuanto al error no se que decirte, a mi me funcionan sin ningun
problema,

aunque no tengo mucha idea solo se me acurren estas
posibilidades/pruebas:


1.-haz un procedimiento independiente con la macro, pero ponlo en un
modulo normal, e intenta ejecutarlo directamente (con F5) a ver que
pasa, o/y se lo asignas al boton mas o menos asi

Private Sub CommandButton30_Click()
call CopiaDatos
end sub

este seria el procedimiento (pej) en un modulo normal->

Sub CopiarDatos()
Workbooks.Open Filename:="F:\DIRECTORIO\LISTADOS\5024.xls"
Sheets(Array(2)).Range("E2", "F15000").Copy _
ThisWorkbook.Sheets("Matriz").Range("A2")
Application.DisplayAlerts = False
Workbooks("5024.xls").Close False
Application.DisplayAlerts = True
End Sub

2.- ¿de donde es el boton que has insertado? bueno, la verdad es que
sobre los controles de hoja no controlo casi nada, pero puedes probar a
cambiarlo

si el boton es de la barra de controles (no la de formularios (¿o es
al reves?)) creo que no deberias tener problemas si la ruta esta bien
escrita (en cuanto a los botones no me hagas mucho caso)


3.-tambien puedes probar la/s macro/s con otros archivos (y sin
array()) a ver que pasa

y por ultimo, vuelve a revisar al milimetro el codigo copiado-> la ruta
y nombre de los archivo y hojas , los posilbles saltos de linea, alguna
omision,

no lo se, a ver si hay alguien que te pueda echar una mano

un saludo
Ivan
Tux
2006-12-15 23:36:14 UTC
Permalink
Post by Ivan
hola Mk,
en cuanto a de/seleccionar, no te lo podria asegurar, pero yo tengo la
idea mas bien contraria. No que sea malo seleccionar, sino mas bien
innecesario y poco operativo, excepto si es por un motivo concreto, o
por que la ocasion asi lo requiera..........
Hola Ivan :-)

Bien te comento que ahora me he puesto con este hilo :-)

Efectivamente tienes toda la razon demasiado select por ahi puesto, pero
te explico:

Este codigo es casi casi una grabacion de macro, mi teoria :-):

Si grabando el codigo (depurandolo un poco), siguiendo los pasos que en
teoria MK necesita (extraer dos columnas de datos en este caso
E2:F15000, y pegarlos en una nueva hoja llamada Matriz del libro en
custion, en teoria no tendria que fallarle puesto que la grabadora de
macros ha realizado el proceso correcto )

Bien entonces puse el codigo para que lo probara y ver si realmente era
por codigo o bien era por fallo de por ejemplo:

No escribir la ruta exacta del libro en cuestion en este caso 5024.xls o
por no tener los nombres de las hojas bien escritas, etc....

Bien ahora yo te pregunto MK :-)

Si la ruta de tu fichero esta por ejemplo en el escritorio ¿tienes la
ruta similar a esta?

Filename:="C:\Documents and settings\usuario\Escritorio\5024.xls"

En teoria tendrias que tenerla bien puesta o no te dejaria avanzar ya
que te daria un error 1004 de no se encuetra archivo.

Siguiente punto:

Si no tuvieras la hoja matriz bien escrita te daria un error de
subindice fuera de intervalo al igual que el libro activo en cuestion
tambien daria ese error si no lo tuvieras bien escrito :-)

Pues bien voy a mirar a ver si puedo reproducir el error y ya os comento
ok? :-)

Saludos
Monica
--
¡Un SAludo! :-)

www.fermu.com
www.zorval.es
Ivan
2006-12-17 00:31:04 UTC
Permalink
hola de nuevo, Monica

creo que, dado que segun comenta Mk, el archivo 5024 si se abre,
supongo que el problema debe estar en el nombre de las hojas, quizas
del (misterioso) array......., o quizas existan otros imponderables que
desconocemos en el archivo

aunque yo sigo pensando que se trata de una letra, un punto, una
barra,...., mal puesta/escrita

bueno, supongo que Mk le estar dando unas vueltas

un saludo y hasta pronto
Ivan

Tux
2006-12-14 09:47:44 UTC
Permalink
Post by Ivan
hola Monica,
a la espera de que Mk nos comente como le esta yendo (me da la
impresion que se trata de un error de sintaxis, bien en la escritura de
las rutas de los archivos, bien en el uso de 'Array(2), aunque hay una
cosa que me escama -> el uso de Windows ¿nos puedes explicar (Mk) si
tiene algun motivo especial, o si hay hojas de graficos en alguno de
los libros?....)
lo dicho, a la espera de Mk, me imagino que tus respuestas iniciales
eran para el tema "Buscar celdas no vacias en un rango y copiarlas en
otra hoja". Pues por aqui cerca anda el tema si quieres animarte.
en cuanto a la ultima macro que propones, me da la impresion (desde mi
punto de vista, que te aseguro que es muy limitado) de que quizas abusa
un poco de activar/desactivar objetos, teniendo en cuenta que
cualquiera de las acciones que realiza se pueden realizar (creo)
perfectamente sin necesidad de ello,
Y si no me equivoco ( que es muy posible que si) el ab/uso de
de/seleccionar y des/activar rangos y hojas se puede traducir en una
ralentizacion de la ejecucion, aparte de conllevar algun riesgo mas (y
de nuevo solo creo) como recalculos de formulas, si las hay, y quizas
otros
bueno, en cualquier caso, encantado de saludarte, y en cuanto tenga
otro rato echare un ojo a tus propuestas
un saludo y hasta pronto
Ivan
PD hola Mk, si andas por ahí, cuando puedas nos aclaras como te ha ido
el tema, por quitarnos el gusanillo
Hola Ivan :-)

Efectivamente eran para el Tema "Buscar Celdas no vacias en un
rango...", pero tenia abierto ese tema, luego el de MK y encima estaba
con otra macro para mi, total que hice un pupurri que ni te cuento y
cuando al rato pensando, me dije "oh, oh" !! y me di cuenta del pupurri
que hice, y luego era tu codigo de ese hilo por ahi arriba, mezclado con
el de MK , osea que me arme un jaleo con los codigos que para que las
prisas :-( . Ahora me tengo que marchar de viaje (cuestiones de trabajo)
pero el viernes estare aqui, asi que me pondre con detenimiento y
paciencia a mirar todo esto :-) y ya os comento asi aprendo yo tambien
de codigo que me gusta bastante :-)

E Igualmente Ivan encantada de saludarte y gracias ;-)

Saludos
Monica
--
¡Un SAludo! :-)

www.fermu.com
www.zorval.es
Loading...