Vìnculos en Excel

25/11/2003 - 05:16 por Nestor | Informe spam
Hola:

Necesito una forma de poder tomar valores de hojas electrónicas
externas a mi hoja de trabajo, sólo si existen aquellas.

Me explico:

Tengo una hoja electrónica en la cual copio datos de otros archivos que
me mandan semanalmente, ya que no todos los archivos llegan al
mismo tiempo, necesito una forma de que se vayan llenando las celdas
correspondientes a los archivos que ya estén presentes.

Mil gracias de antemano por el apoyo que me puedan prestar.

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
25/11/2003 - 10:01 | Informe spam
Hola, Nestor !

... forma de ... tomar ... de hojas ... externas ... solo si existen aquellas.
... copio datos de otros archivos que me mandan semanalmente ... no todos ... llegan al mismo tiempo
... que se vayan llenando las celdas correspondientes a los archivos que ya esten presentes.



¿podrias proporcionar mayor informacion? [p.e.]
- ¿como lo estas haciendo actualmente?
- ¿como 'saber' que un archivo ya 'esta presente'? [... ¿'donde' esta???... ¿es 'reciente'???... etc.]
- ¿de que celda/s [y hoj/a] se 'van' a tomar los datos? [y... donde se van a 'poner'???]
- [tu conoces la/s situacion/es que necesitas resolver]

saludos,
Héctor.
Respuesta Responder a este mensaje
#2 Nestor
25/11/2003 - 15:44 | Informe spam
La situación es esta:

Tengo varios archivos que otras personas actualizan
semanalmente y me los mandan por correo para integrar la
información. Cada archivo tiene su propio nombre y sólo
cambian los datos de las celdas B8 a la B17, los cuales
incluyen datos nuevos y acumulados con los anteriores. En
mi hoja principal tengo una columna por cada uno de los
archivos.

Cada semana hago una nueva carpeta donde pongo una copia
de mi hoja electrónica principal y ahí mismo pongo los
archivos que me envían. Esto para tener un histórico de
los datos remitidos.

Actualmente tengo que abrir cada archivo que me mandan y
copiar los datos de las celdas mencionadas a mi hoja
principal.

El objetivo es no tener que abrir cada archivo
actualizado que me manden para copiar los datos, sino
sólo mi hoja principal y que se vayan actualizando mis
datos conforme vaya recibiendo los archivos.

Yo había imaginado que existía una función que verificara
si existe en el directorio actual (que es donde está mi
hoja principal) el archivo "nombre_de_archivo.xls", en
caso afirmativo poner el dato en la celda
correspondiente, en caso contrario, poner cero o nada y
así consecutivamente por cada uno de los archivos y
celdas.

Espero esté más claro lo que pretendo.

Saludos.
Respuesta Responder a este mensaje
#3 Héctor Miguel
26/11/2003 - 06:11 | Informe spam
Hola, Nestor !

... mandan por correo para integrar ... cada archivo ... su ... nombre y solo cambian ... las celdas B8 a la B17
... incluyen datos nuevos y acumulados con los anteriores ... hoja principal ... una columna por cada ... archivo.
Cada semana ... nueva carpeta ... copia de mi hoja ... principal y ... los archivos que me envian. ...[historico]...
Actualmente tengo que abrir cada archivo que me mandan y copiar los datos ... a mi hoja principal.
... no tener que abrir cada archivo ... solo mi hoja ... actualizando ... datos conforme vaya recibiendo los archivos.
... funcion que verificara si existe en el directorio ... donde esta ... hoja principal el archivo "nombre_de_archivo.xls"
... caso afirmativo poner el dato en la celda correspondiente, en caso contrario, poner cero o nada y así [...]
Espero este más claro lo que pretendo.



queda claro lo que pretendes y he tratado de 'llenar' algunos 'vacios de informacion' con los siguientes 'supuestos':
1.- una matriz para los los archivos que recibes =>con nombres 'diferentes' y NO 'secuenciales'<2.- los archivos contienen la informacion en el rango de celdas 'B8:B17' =>TODOS EN LA 'Hoja1'<3.- en la hoja principal, la fila 7 lleva un titulo que SE 'corresponde' con el archivo del cual 'se obtiene' la informacion
=>a partir de 'B7' y EN EL MISMO ORDEN en que se declaran los nombres en la matriz [punto 1]<te adjunto una macro que 'utiliza' una funcion para leer los datos de los archivos SIN 'necesidad' de abrirlos ;)
si el archivo 'existe' en el directorio de la hoja principal, 'su' columna [mismas filas] 'se llena' con los datos de B8:B17
modifica 'lo necesario' [p.e. la matriz de nombres por los reales y agrega los que falten =>'considera' el punto 3<=]
si quieres que la macro se ejecute al abrir el libro, 'llamala' en el evento '_Open' [p.e.]
en el modulo de codigo de 'ThisWorkbook ==Private Sub Workbook_Open()
Actualizar_Datos
End Sub

si cualquier duda o me equivoque en los 'supuestos'... ¿comentas?
saludos,
Héctor.

en un modulo de codigo 'normal' ==Sub Actualizar_Datos()
Dim Archivos, Ruta As String, Hoja As String, _
Sig As Integer, Fila As Integer, Falta As String
Ruta = ThisWorkbook.Path & "\"
Archivos = Array("Norte.xls", "Sur.xls", "Este.xls", "Oeste.xls")
Hoja = "Hoja1"
For Sig = 0 To UBound(Archivos)
If Dir(Ruta & Archivos(Sig)) <> "" Then
For Fila = 8 To 17
With ThisWorkbook.Worksheets("Hoja1")
If .Cells(Fila, Sig + 2) <> "" Then Exit For
.Cells(Fila, Sig + 2) = LeerDeArchivo(Ruta, Archivos(Sig), Hoja, "b" & 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
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida