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

Macro para leer valores de libros cerrados

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

Volver arriba


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