............ Foro Excel
Si no lo has hecho aún: REGISTRATE!!!

Macro para leer valores de libros cerrados

Ver el tema anterior Ver el tema siguiente Ir abajo

Macro para leer valores de libros cerrados

Mensaje por ivanmolina el Miér Jun 18, 2008 5:06 pm


Tengo un procedimiento VBA que recorre una carpeta y lista los ficheros que hay en la misma

Código:
Sub IndizadorArchivos()
Dim RUTA As String, RutaArchivo as string
RUTA = InputBox("Indique aquí la Ruta de la Carpeta a revisar")
With Application.FileSearch
.NewSearch
.LookIn = RUTA:
.SearchSubFolders = True
.MatchTextExactly = False
.FileType = msoFileTypeExcelWorkbooks
If .Execute(msoSortOrderDescending) > 0 Then
MsgBox "Hay " & .FoundFiles.Count & " archivo(s) encontrados."
For i = 1 To .FoundFiles.Count
 
RutaArchivo =.FoundFiles(i)
Cells(i, 2).Value = RutaArchivo
Cells(i, 5).Value = Mid(RutaArchivo, InStrRev(RutaArchivo, "\") + 1)

Cells(i, 3).Value = FileDateTime(.FoundFiles(i))
Cells(i, 4).Value = FileLen(.FoundFiles(i))
Next i
Else
MsgBox "No fue localizado ningún archivo."
End If
End With
End Sub

Necesito listar también el valor de una celda determinada, algo así como
Cells(i,5).Value=Workbook.Sheets(1).Range(A1)

Pero no sé cómo hacerlo.

ivanmolina

Cantidad de envíos : 9
Fecha de inscripción : 14/05/2008

Volver arriba Ir abajo

Re: Macro para leer valores de libros cerrados

Mensaje por GalileoGali el Miér Jun 18, 2008 11:33 pm

Podes probar esto, adaptandolo
Código:
Sub mostrar()
b = ThisWorkbook.Path & "\"
a = ExecuteExcel4Macro("'" & b & "[MOVIMIEN.xls]Hoja1'!r72c4")
End Sub

_________________
GalileoGali
M.A.P. 2010-2013
Microsoft Active Professional
avatar
GalileoGali
Admin

Masculino Cantidad de envíos : 1963
Edad : 62
Ciudad - Pais : QUIROGA, Argentina
Version de Excel : 2000-2003-2007-2010
Fecha de inscripción : 24/01/2008

http://excelgali.mejorforo.net

Volver arriba Ir abajo

¿Qué hago con esto?

Mensaje por ivanmolina el Jue Jun 19, 2008 2:44 am


Lo siento, Gali, pero no entiendo qué tengo que hacer con el código que adjuntas...

ivanmolina

Cantidad de envíos : 9
Fecha de inscripción : 14/05/2008

Volver arriba Ir abajo

Re: Macro para leer valores de libros cerrados

Mensaje por GalileoGali el Jue Jun 19, 2008 8:22 am

Ivan: Para traer un valor de un Libro cerrado, sin que intervenga la Hoja de excel, existe el recurso del Metodo ExecuteExcel4Macro, que ejecuta Cadenas conteniendo referencias o funciones con referencias a libros externos.....
en este caso use Thisworkbook.Path, pensando en que ambos archivos Origeny destino, estuvieran en la misma Carpeta. En mi ejemplo la referencia es al Libro MOVIMIEN.xls mas concretamente a la celda D72 (r72c4, row and column) de la Hoja1

_________________
GalileoGali
M.A.P. 2010-2013
Microsoft Active Professional
avatar
GalileoGali
Admin

Masculino Cantidad de envíos : 1963
Edad : 62
Ciudad - Pais : QUIROGA, Argentina
Version de Excel : 2000-2003-2007-2010
Fecha de inscripción : 24/01/2008

http://excelgali.mejorforo.net

Volver arriba Ir abajo

Re: Macro para leer valores de libros cerrados

Mensaje por ivanmolina el Miér Jun 25, 2008 5:25 am

Gali:
Intento usar este código, pero no consigo que funcione. El problema está en la cadena que paso al método ExecuteExcel4Macro, pues he probado múltiples variantes y ninguna funciona (a veces fallan las comillas, otras la barra separadora, otras los corchetes...).
¿Podrías ayudarme?

Otra cosa: de manera parecida a como obtengo la variable Archivo, quisiera obtener la variable Carpeta, pero como el último carácter de la Ruta es la barra separadora, me devuelve una cadena vacía.



Código:

Sub CálculoCostesDocentes()

Dim Ruta As String, RutaArchivo As String

Ruta = InputBox("Indique aquí la ruta de la carpeta a revisar")
CostesDocentes = "Hoja1'!r19c7"
Horas = "Hoja1'!r9c8"

Range("A3,C100").Delete

With Application.FileSearch
    .NewSearch
    .LookIn = Ruta:
    .SearchSubFolders = True
    .MatchTextExactly = False
    .FileType = msoFileTypeExcelWorkbooks
    If .Execute(SortBy:=msoSortByFileName, SortOrder:=msoSortOrderAscending) > 0 Then
        Application.StatusBar = "Cursos encontrados: " & .FoundFiles.Count
        Carpeta=Mid(Ruta, InStrRev(Ruta, "\") + 1)
        Cells(1, 1).Value = Carpeta
        For i = 3 To .FoundFiles.Count
            RutaArchivo = .FoundFiles(i)
            Archivo = Mid(RutaArchivo, InStrRev(RutaArchivo, "\") + 1)
            Cells(i, 1).Value = Archivo
            Cells(i, 2).Value = ExecuteExcel4Macro(""" & Ruta & Application.PathSeparator & ""[" & Archivo & "]"" & CostesDocentes & """)
        Next i
        Else
        MsgBox "No se ha encontrado ningún archivo."
    End If
End With

End Sub

ivanmolina

Cantidad de envíos : 9
Fecha de inscripción : 14/05/2008

Volver arriba Ir abajo

Re: Macro para leer valores de libros cerrados

Mensaje por GalileoGali el Mar Jul 01, 2008 11:25 pm

Proba con esto:
Cells(1, 2).Value = ExecuteExcel4Macro(" ' (una sola comilla) " & Ruta & Application.PathSeparator & "[" & Archivo & "]" & CostesDocentes)

_________________
GalileoGali
M.A.P. 2010-2013
Microsoft Active Professional
avatar
GalileoGali
Admin

Masculino Cantidad de envíos : 1963
Edad : 62
Ciudad - Pais : QUIROGA, Argentina
Version de Excel : 2000-2003-2007-2010
Fecha de inscripción : 24/01/2008

http://excelgali.mejorforo.net

Volver arriba Ir abajo

Re: Macro para leer valores de libros cerrados

Mensaje por ivanmolina el Miér Jul 02, 2008 2:46 am

Perfecto, Gali. Esto es lo que necesitaba. Una vez más, muchísimas gracias por tu trabajo .

ivanmolina

Cantidad de envíos : 9
Fecha de inscripción : 14/05/2008

Volver arriba Ir abajo

Re: Macro para leer valores de libros cerrados

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.