Link

04/01/2005 - 14:53 por MN | Informe spam
Como puedo hacer un link que llame a archivos de diferentes meses

Ej.:

A B


1 JUNIO ='D:\Ventas\[Ventas Diarias Plataforma
JUNIO.xls]Informe'!F11
2 JULIO ='D:\Ventas\[Ventas Diarias Plataforma
JULIO.xls]Informe'!F11


Entonces quiero que me reconozca automáticamente el Mes en las celdas de la
columna A y la agregue al link de la celdas de la columna B


atte.
MN

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
05/01/2005 - 06:44 | Informe spam
hola, MN !

... hacer un link que llame a archivos de diferentes meses [...]
A B
1 JUNIO ='D:\Ventas\[Ventas Diarias Plataforma JUNIO.xls]Informe'!F11
2 JULIO ='D:\Ventas\[Ventas Diarias Plataforma JULIO.xls]Informe'!F11
... que me reconozca automaticamente el Mes en ... A y agregue el link de ... B [...]



dependiendo de los diferentes archivos para los diferentes meses...
-> si van a estar abiertos... podrias usar la funcion indirecto()
[pero me da la impresion de que NO es 'el caso']
-> si van a estar cerrados... se requiere 'meter' [por codigo] una formula que...
-> cree [literal y realmente] el vinculo al documento [ruta, libro, hoja y rango]
-> o... que [simplemente] 'tome' el dato del libro cerrado y lo ponga en la celda 'B'
suponiendo que las celdas en 'A' es el rango 'A2:A15' y que se afecta/modifica SOLO una por vez...
te expongo un ejemplo enseguida [ambas opciones]...

si cualquier duda o informacion adicional... ¿comentas?
saludos,
hector.
en el modulo de codigo de ->esa hoja<- ==Private Sub Worksheet_Change(ByVal Target As Range)
Dim Ruta As String, Archivo As String, Hoja As String, Rango As String
Ruta = "D:\Ventas\"
Archivo = '"Ventas Diarias Plataforma "
Hoja = '"Informe"
Rango = '"F11"
If Intersect(Target, Range("a2:a15")) Is Nothing Then Exit Sub
If IsEmpty(Target) Then Target.Offset(, 1).ClearContents
If Dir(Ruta & Archivo & Target & ".xls") <> "" Then
Target.Offset(, 1).Formula = _
"='" & Ruta & "[" & Archivo & Target & ".xls]" & Hoja & "'!" & Rango
Else: Target.Offset(, 1).ClearContents
End If
End Sub

si es el caso que NO requieres 'mantener' los archivos vinculados, sino solo 'tomar' el dato...
cambia/sustituye la instruccion...
Target.Offset(, 1).Formula = _
"='" & Ruta & "[" & Archivo & Target & ".xls]" & Hoja & "'!" & Rango
por la instruccion siguiente...
Target.Offset(, 1) = ExecuteExcel4Macro( _
"'" & Ruta & "[" & Archivo & Target & ".xls]" & Hoja & "'!" & Range(Rango).Address(, , xlR1C1))
Respuesta Responder a este mensaje
#2 MN
05/01/2005 - 14:07 | Informe spam
Muchas Gracias,

MN

"Héctor Miguel" escribió en el mensaje
news:%
hola, MN !

> ... hacer un link que llame a archivos de diferentes meses [...]
> A B
> 1 JUNIO ='D:\Ventas\[Ventas Diarias Plataforma


JUNIO.xls]Informe'!F11
> 2 JULIO ='D:\Ventas\[Ventas Diarias Plataforma


JULIO.xls]Informe'!F11
> ... que me reconozca automaticamente el Mes en ... A y agregue el link


de ... B [...]

dependiendo de los diferentes archivos para los diferentes meses...
-> si van a estar abiertos... podrias usar la funcion indirecto()
[pero me da la impresion de que NO es 'el caso']
-> si van a estar cerrados... se requiere 'meter' [por codigo] una


formula que...
-> cree [literal y realmente] el vinculo al documento [ruta,


libro, hoja y rango]
-> o... que [simplemente] 'tome' el dato del libro cerrado y lo


ponga en la celda 'B'
suponiendo que las celdas en 'A' es el rango 'A2:A15' y que se


afecta/modifica SOLO una por vez...
te expongo un ejemplo enseguida [ambas opciones]...

si cualquier duda o informacion adicional... ¿comentas?
saludos,
hector.
en el modulo de codigo de ->esa hoja<- ==> Private Sub Worksheet_Change(ByVal Target As Range)
Dim Ruta As String, Archivo As String, Hoja As String, Rango As String
Ruta = "D:\Ventas\"
Archivo = '"Ventas Diarias Plataforma "
Hoja = '"Informe"
Rango = '"F11"
If Intersect(Target, Range("a2:a15")) Is Nothing Then Exit Sub
If IsEmpty(Target) Then Target.Offset(, 1).ClearContents
If Dir(Ruta & Archivo & Target & ".xls") <> "" Then
Target.Offset(, 1).Formula = _
"='" & Ruta & "[" & Archivo & Target & ".xls]" & Hoja & "'!" & Rango
Else: Target.Offset(, 1).ClearContents
End If
End Sub

si es el caso que NO requieres 'mantener' los archivos vinculados, sino


solo 'tomar' el dato...
cambia/sustituye la instruccion...
Target.Offset(, 1).Formula = _
"='" & Ruta & "[" & Archivo & Target & ".xls]" & Hoja & "'!" & Rango
por la instruccion siguiente...
Target.Offset(, 1) = ExecuteExcel4Macro( _
"'" & Ruta & "[" & Archivo & Target & ".xls]" & Hoja & "'!" &


Range(Rango).Address(, , xlR1C1))


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