A vueltas con ExecuteExcel4Macro

18/10/2005 - 07:40 por Brel | Informe spam
Hola grupo,
la historieta es utilizar ExecuteExcel4Macro para conseguir traerme la
información de 14 libros que están cerrados siguiendo estos parámetros:
- Los nombres de ficheros están en la columna AR (AR2:AR601).
- La hoja se llama BD tanto en los 14 libros como en este general.
- De cada fila necesito poner los datos de las columnas D:K y M:AP
- Todos los ficheros están protegidos (pongamos por ejemplo la contraseña
"pepito1" a "pepito 14").

¿Cómo hacer que en cada celda no me pida la contraseña (apertura de los 14
libros)?... Y peor aún... aunque no la pongas te trae el dato...
Necesito que no pida la contraseña pues son un montón de celdas.
Obviamente... que la contraseña que he puesto a los 14 libros de apertura se
respete... :-((
Nota: En cada uno de los 14 libros, la hoja 'BD' fila 2 solo tiene datos si
en AR2 figura el nombre del usuario de libro -que coincide con el nombre del
libro-, y así en todas las filas hasta la 601, con lo que cada fila se
extrae de un libro concreto.

Espero haberme explicado. Gracias por vuestro interés.

Brel

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
18/10/2005 - 10:33 | Informe spam
hola, Brel !

... utilizar ExecuteExcel4Macro para... traerme... informacion de 14 libros... cerrados [...]
... los ficheros estan protegidos (pongamos por ejemplo... "pepito1" a "pepito 14")
... Como hacer que en cada celda no me pida la contrase#a (apertura de los 14 libros)?
... peor aun... aunque no la pongas te trae el dato...



1) considera que en un 'determinado' momento... la ejecucion del metodo SIN proveer el password... ->VA A FALLAR<- :-(
2) [ademas]... usando el metodo [ExecuteExcel4Macro] 'te obliga' a traer SOLO de a una celda por vez :-((
3) hasta la fecha -o hasta donde se- [y esto SI es 'peor aun']...
-> NO EXISTE ningun proveedor de acceso a bases de datos [como leer de libros de excel CERRADOS]...
que 'logre entrar' a bases de datos ENCRIPTADAS de excel :-(((
4) las sugerencias que he visto -generalmente- van en el sentido de...
-> usar el modelo de objetos de excel...
-> abrir una [nueva] instancia de excel ->CreateObject("Excel.Application")<-
-> abrir el libro, proveyendo password/s e indicando el modo de 'solo lectura'
-> 'tomar' los datos... cerrar el libro [sin guardar los cambios]... y 'terminar' la instancia en la que se abrio el libro 'cerrado' ;)

saludos,
hector.
Respuesta Responder a este mensaje
#2 Brel
18/10/2005 - 16:07 | Informe spam
Gracias Héctor,
el problema lo veo entonces en que las filas de las que necesito traer los
datos están ordenadas alfabéticamente por otro baremo que no es el nombre
del libro. Quiero decir que las filas a extraer de los 14 libros pueden ser:
Del libro 1: la 2 , 17, 46, 189, 190, 350...
Te agradecería algo sobre lo que poder estudiar esa nueva forma que planteas
en tu punto 4.
Sobre el 3: Te refieres al cifrado en cuanto a la contraseña de apertura
(pestaña avanzada) o a otra cosa...
Saludos. Hasta la noche no podré volver a conectarme.
Brel
"Héctor Miguel" escribió en el mensaje
news:%
hola, Brel !

... utilizar ExecuteExcel4Macro para... traerme... informacion de 14
libros... cerrados [...]
... los ficheros estan protegidos (pongamos por ejemplo... "pepito1" a
"pepito 14")
... Como hacer que en cada celda no me pida la contrase#a (apertura de
los 14 libros)?
... peor aun... aunque no la pongas te trae el dato...



1) considera que en un 'determinado' momento... la ejecucion del metodo
SIN proveer el password... ->VA A FALLAR<- :-(
2) [ademas]... usando el metodo [ExecuteExcel4Macro] 'te obliga' a traer
SOLO de a una celda por vez :-((
3) hasta la fecha -o hasta donde se- [y esto SI es 'peor aun']...
-> NO EXISTE ningun proveedor de acceso a bases de datos [como leer de
libros de excel CERRADOS]...
que 'logre entrar' a bases de datos ENCRIPTADAS de excel :-(((
4) las sugerencias que he visto -generalmente- van en el sentido de...
-> usar el modelo de objetos de excel...
-> abrir una [nueva] instancia de
excel ->CreateObject("Excel.Application")<-
-> abrir el libro, proveyendo password/s e indicando el modo de 'solo
lectura'
-> 'tomar' los datos... cerrar el libro [sin guardar los cambios]... y
'terminar' la instancia en la que se abrio el libro 'cerrado' ;)

saludos,
hector.

Respuesta Responder a este mensaje
#3 Héctor Miguel
18/10/2005 - 23:13 | Informe spam
hola, Brel !

... problema... que las filas de las que necesito traer los datos estan ordenadas... por otro baremo
... Quiero decir que las filas a extraer de los 14 libros pueden ser: del libro 1: la 2 , 17, 46, 189, 190, 350...
... algo sobre lo que poder estudiar esa nueva forma que planteas en tu punto 4.
Sobre el 3: Te refieres al cifrado en cuanto a la contrase#a de apertura (pesta#a avanzada) o a otra cosa...



sobre el punto 3: se trata -efectivamente- de las claves 'contra' apertura/escritura que se esablezcan en el erchivo ;)

sobre el punto 4: me gustaria saber con que instrucciones tomabas los datos con el 'ExecuteExcel4Macro' -?-
[y se pasadita... las instrucciones con las que abrias cada libro]

saludos,
hector.
Respuesta Responder a este mensaje
#4 Brel
18/10/2005 - 23:53 | Informe spam
Hola Héctor,
empecé a hacer pruebas ayer con eso: buscando en el grupo encontré esto
(igual hasta es tuyo). En un módulo normal:
Sub Actual()
Dim Archivos, Ruta As String, Hoja As String, _
Sig As Integer, Fila As Integer, Falta As String
Ruta = ThisWorkbook.Path & "\"
Archivos = Array("Alberto.xls", "Ana María.xls")
Hoja = "BD"
For Sig = 0 To UBound(Archivos)
If Dir(Ruta & Archivos(Sig)) <> "" Then
For Fila = 6 To 8
With ThisWorkbook.Worksheets("Hoja3")
If .Cells(Fila, Sig + 2) <> "" Then Exit For
.Cells(Fila, Sig + 2) = LeerDeArchivo(Ruta, Archivos(Sig), Hoja,
"L" & Fila)
End With
Next
Else
If Falta <> "" Then Falta = Falta & vbCr
Falta = Falta & "NO está ""listo"" el archivo: " & Archivos(Sig)
End If
Next
If Falta <> "" Then MsgBox Falta
End Sub
Private Function LeerDeArchivo( _
ByVal DelDirectorio As String, _
ByVal DelArchivo As String, _
ByVal DeLaHoja As String, _
ByVal DeLaCelda As String) As Variant
Dim Instrucción As String
Instrucción = "'" & DelDirectorio & "[" & DelArchivo & "]" & DeLaHoja &
"'!" & _
Range(DeLaCelda).Range("a1").Address(, , xlR1C1)
LeerDeArchivo = ExecuteExcel4Macro(Instrucción)
End Function
Y en la hoja en cuestión:
Private Sub Worksheet_Activate()
Actual
End Sub

Obviamente en cada celda pregunta la contraseña y aunque no lo pongas te
trae el dato.
Saludos y gracias por tu asesoramiento.
Brel
"Héctor Miguel" escribió en el mensaje
news:
hola, Brel !

... problema... que las filas de las que necesito traer los datos estan
ordenadas... por otro baremo
... Quiero decir que las filas a extraer de los 14 libros pueden ser: del
libro 1: la 2 , 17, 46, 189, 190, 350...
... algo sobre lo que poder estudiar esa nueva forma que planteas en tu
punto 4.
Sobre el 3: Te refieres al cifrado en cuanto a la contrase#a de apertura
(pesta#a avanzada) o a otra cosa...



sobre el punto 3: se trata -efectivamente- de las claves 'contra'
apertura/escritura que se esablezcan en el erchivo ;)

sobre el punto 4: me gustaria saber con que instrucciones tomabas los
datos con el 'ExecuteExcel4Macro' -?-
[y se pasadita... las instrucciones con las que abrias cada libro]

saludos,
hector.

Respuesta Responder a este mensaje
#5 Brel
19/10/2005 - 18:01 | Informe spam
Hola Héctor
se te ocurre por dónde seguir?
Gracias.
Brel
"Brel" escribió en el mensaje
news:%23%
Hola Héctor,
empecé a hacer pruebas ayer con eso: buscando en el grupo encontré esto
(igual hasta es tuyo). En un módulo normal:
Sub Actual()
Dim Archivos, Ruta As String, Hoja As String, _
Sig As Integer, Fila As Integer, Falta As String
Ruta = ThisWorkbook.Path & "\"
Archivos = Array("Alberto.xls", "Ana María.xls")
Hoja = "BD"
For Sig = 0 To UBound(Archivos)
If Dir(Ruta & Archivos(Sig)) <> "" Then
For Fila = 6 To 8
With ThisWorkbook.Worksheets("Hoja3")
If .Cells(Fila, Sig + 2) <> "" Then Exit For
.Cells(Fila, Sig + 2) = LeerDeArchivo(Ruta, Archivos(Sig), Hoja,
"L" & Fila)
End With
Next
Else
If Falta <> "" Then Falta = Falta & vbCr
Falta = Falta & "NO está ""listo"" el archivo: " & Archivos(Sig)
End If
Next
If Falta <> "" Then MsgBox Falta
End Sub
Private Function LeerDeArchivo( _
ByVal DelDirectorio As String, _
ByVal DelArchivo As String, _
ByVal DeLaHoja As String, _
ByVal DeLaCelda As String) As Variant
Dim Instrucción As String
Instrucción = "'" & DelDirectorio & "[" & DelArchivo & "]" & DeLaHoja &
"'!" & _
Range(DeLaCelda).Range("a1").Address(, , xlR1C1)
LeerDeArchivo = ExecuteExcel4Macro(Instrucción)
End Function
Y en la hoja en cuestión:
Private Sub Worksheet_Activate()
Actual
End Sub

Obviamente en cada celda pregunta la contraseña y aunque no lo pongas te
trae el dato.
Saludos y gracias por tu asesoramiento.
Brel
"Héctor Miguel" escribió en el mensaje
news:
hola, Brel !

... problema... que las filas de las que necesito traer los datos estan
ordenadas... por otro baremo
... Quiero decir que las filas a extraer de los 14 libros pueden ser:
del libro 1: la 2 , 17, 46, 189, 190, 350...
... algo sobre lo que poder estudiar esa nueva forma que planteas en tu
punto 4.
Sobre el 3: Te refieres al cifrado en cuanto a la contrase#a de apertura
(pesta#a avanzada) o a otra cosa...



sobre el punto 3: se trata -efectivamente- de las claves 'contra'
apertura/escritura que se esablezcan en el erchivo ;)

sobre el punto 4: me gustaria saber con que instrucciones tomabas los
datos con el 'ExecuteExcel4Macro' -?-
[y se pasadita... las instrucciones con las que abrias cada libro]

saludos,
hector.





email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida