visual basic

28/08/2007 - 01:04 por leslie | Informe spam
hola
necesito que un libro de exel se actualice, con un boto y tome los datos de
un libro llamado "concentrado de informacion", mi hoja llamada "concentrado
de informacion" tiene que estar protegida u oculta para que no la puedan
modificar, pero requiero que sin importar donde este guardada esta hoja, la
macro la busque (en cualquier ruta), y actualice mi archivo.

espero me entiendan y me puedan ayudar

gracias

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
28/08/2007 - 07:16 | Informe spam
hola, !

necesito que un libro... se actualice, con un boto y tome los datos de un libro llamado "concentrado de informacion"
mi hoja llamada "concentrado de informacion" tiene que estar protegida u oculta para que no la puedan modificar
pero requiero que sin importar donde este guardada esta hoja, la macro la busque (en cualquier ruta), y actualice mi archivo...



1) de tu libro *secreto* [concentrado de informacion.xls]...
a) cual es la hoja y rango que se debe entender como base para actualizar el libro con el boton ?
b) que tipo de datos contiene el rango con la informacion *actualizable* ? [formulas, formatos, constantes, ...]

2) de tu libro *con el boton*...
a) a que hoja y rango se debe *traer* la informacion actualizada ?
b) existe [o no] el riesgo de que el area *disponibe* fuera menor que los datos *a traer* ?

3) [de ser posible] comenta cualquier otro detalle que estuvieras dejando *en el tintero* [p.e.]
- decidir si el libro secreto tendra [o no] alguna proteccion/clave/... de apertura ?
- [si no es indiscrecion]... por que la posibilidad de que no sepas en donde esta guardado ?
- ???

saludos,
hector.
Respuesta Responder a este mensaje
#2 leslie
28/08/2007 - 23:46 | Informe spam
Esta es la codificacion que yo tengo pero yo pero yo quero que el archivo que
aqui abre en unidad c, yo lo pueda abrir desde cualquier ruta

espero esto te sirva de algo y me puedad ayudar

Sub Macro1()
'
' Macro1 Macro
'

'
Sheets("CONCENTRADO1").Visible = True
Range("B2:F2").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlDown)).Select
Range("B2").Select
ChDir "C:\"
Workbooks.Open Filename:="C:\concentrado de informacion.xls"
Sheets("concentrado").Visible = True
Sheets("concentrado").Select
Range("B2:G2").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("concentrado").Visible = False
ActiveWindow.Close
Windows("nomina.xls").Activate
Sheets("concentrado1").Select
Range("B2").Select
ActiveWindow.SelectedSheets.Visible = False
End Sub




"Héctor Miguel" escribió:

hola, !

> necesito que un libro... se actualice, con un boto y tome los datos de un libro llamado "concentrado de informacion"
> mi hoja llamada "concentrado de informacion" tiene que estar protegida u oculta para que no la puedan modificar
> pero requiero que sin importar donde este guardada esta hoja, la macro la busque (en cualquier ruta), y actualice mi archivo...

1) de tu libro *secreto* [concentrado de informacion.xls]...
a) cual es la hoja y rango que se debe entender como base para actualizar el libro con el boton ?
b) que tipo de datos contiene el rango con la informacion *actualizable* ? [formulas, formatos, constantes, ...]

2) de tu libro *con el boton*...
a) a que hoja y rango se debe *traer* la informacion actualizada ?
b) existe [o no] el riesgo de que el area *disponibe* fuera menor que los datos *a traer* ?

3) [de ser posible] comenta cualquier otro detalle que estuvieras dejando *en el tintero* [p.e.]
- decidir si el libro secreto tendra [o no] alguna proteccion/clave/... de apertura ?
- [si no es indiscrecion]... por que la posibilidad de que no sepas en donde esta guardado ?
- ???

saludos,
hector.



Respuesta Responder a este mensaje
#3 Héctor Miguel
29/08/2007 - 04:43 | Informe spam
hola, !

Esta es la codificacion que yo tengo pero yo quero que el archivo que aqui abre en unidad c
yo lo pueda abrir desde cualquier ruta
espero esto te sirva de algo y me puedad ayudar



bueno...
1) si -nada mas- quieres comprobar si existe [o no] en alguna [o cada] unidad logica [C:, D:, E:, ...,] que este disponible...
prueba con el siguente ejemplo, copiando/pegando las lineas en un modulo de codigo general/normal]...
es una API que lee la estructura de archivos [unidad logica] lo que seria la tabla de alojamiento de archivos [FAT]
solo esta 'preparado' para buscar en unidades 'locales', si necesitas buscar en unidades 'desmontables/flash/...'
te incluyo los codigos aplicables para cada tipo de unidad ;)
OJO: si existen varias versiones de tu archivo... la que *obtienes* es LA PRIMERA QUE SE ENCUENTRE <= OJO

2) en el codigo que expones, cambia la linea donde abres el archivo desde c:
-> de:
ChDir "C:\"
Workbooks.Open Filename:="C:\concentrado de informacion.xls"
-> a:
Dim Archivo As String
Archivo = Buscar_archivo("concentrado de informacion.xls")
If Archivo = "" Then MsgBox Archivo & " NO existe en esta pc !!!": Exit Sub
Workbooks.Open Archivo
' aqui continuan tus acciones normales :) '

3) esto es lo que copias/pegas en un modulo de codigo estandar/general/normal/... -> APARTE de tus codigos:
Option Private Module
Declare Function Busca_en_FAT Lib "ImageHlp.dll" Alias "SearchTreeForFile" _
(ByVal Unidad As String, ByVal Archivo As String, ByVal Reserva As String) As Long
Function Buscar_archivo(ByVal Archivo As String)
Dim Disco As Object, Unidad As String: Buscar_archivo = ""
With CreateObject("Scripting.FileSystemObject")
For Each Disco In .Drives
If Disco.DriveType = 2 Then
Unidad = Disco.DriveLetter & ":\": Buscar_archivo = Buscar(Unidad, Archivo)
If Buscar_archivo <> "" Then Exit For
End If: Next: End With
End Function
' Tipos para Disco.DriveType _
0 = "Desconocido" _
1 = "Desmontable" _
2 = "Fijo" _
3 = "Unidad de red" _
4 = "CD-ROM" _
5 = "Disco RAM"
Function Buscar(Unidad As String, Archivo As String) As String
Dim Pos As Long, Tmp As Long, Reserva As String: On Error GoTo No_existe
Reserva = Space(260): Tmp = Busca_en_FAT(Unidad, Archivo, Reserva)
Pos = InStr(Reserva, vbNullChar)
If Not Pos Then Reserva = Left(Reserva, Pos - 1)
Buscar = Reserva: Exit Function
No_existe:
End Function

saludos,
hector.

__ el codigo expuesto __
Sub Macro1()
Sheets("CONCENTRADO1").Visible = True
Range("B2:F2").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlDown)).Select
Range("B2").Select
ChDir "C:\"
Workbooks.Open Filename:="C:\concentrado de informacion.xls"
Sheets("concentrado").Visible = True
Sheets("concentrado").Select
Range("B2:G2").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("concentrado").Visible = False
ActiveWindow.Close
Windows("nomina.xls").Activate
Sheets("concentrado1").Select
Range("B2").Select
ActiveWindow.SelectedSheets.Visible = False
End Sub



__ las consultas anteriores __
hola, !

> necesito que un libro... se actualice, con un boto y tome los datos de un libro llamado "concentrado de informacion"
> mi hoja llamada "concentrado de informacion" tiene que estar protegida u oculta para que no la puedan modificar
> pero requiero que sin importar donde este guardada esta hoja, la macro la busque (en cualquier ruta), y actualice mi archivo...

1) de tu libro *secreto* [concentrado de informacion.xls]...
a) cual es la hoja y rango que se debe entender como base para actualizar el libro con el boton ?
b) que tipo de datos contiene el rango con la informacion *actualizable* ? [formulas, formatos, constantes, ...]

2) de tu libro *con el boton*...
a) a que hoja y rango se debe *traer* la informacion actualizada ?
b) existe [o no] el riesgo de que el area *disponibe* fuera menor que los datos *a traer* ?

3) [de ser posible] comenta cualquier otro detalle que estuvieras dejando *en el tintero* [p.e.]
- decidir si el libro secreto tendra [o no] alguna proteccion/clave/... de apertura ?
- [si no es indiscrecion]... por que la posibilidad de que no sepas en donde esta guardado ?
- ???
Respuesta Responder a este mensaje
#4 leslie
29/08/2007 - 17:26 | Informe spam
hola otra vez
y si yo quisiera que mi codigo me preguntara con un mensaje en donde buscar
el archivo, se podria?????

"leslie" escribió:

hola
necesito que un libro de exel se actualice, con un boto y tome los datos de
un libro llamado "concentrado de informacion", mi hoja llamada "concentrado
de informacion" tiene que estar protegida u oculta para que no la puedan
modificar, pero requiero que sin importar donde este guardada esta hoja, la
macro la busque (en cualquier ruta), y actualice mi archivo.

espero me entiendan y me puedan ayudar

gracias


Respuesta Responder a este mensaje
#5 Héctor Miguel
29/08/2007 - 19:18 | Informe spam
hola, !

y si yo quisiera que mi codigo me preguntara con un mensaje en donde buscar el archivo, se podria?????



muy probablemente que si se podria ;) solo una re/pregunta:

que es lo que quisieras que te preguntara, o que seria lo que esperas en respuesta para *donde buscar* ???
- solamente la unidad logica [C, D, F, ...] ???
- alguna ruta especifica [c:\carpeta y\alguna sub\carpeta] ???
- alguna probabilidad de unidades en red ???
[si son unidades en red... mapeadas ? o por convencionalismos UNC ?]

saludos,
hector.

p.d. tambien podrias hacer una *reduccion* de las funciones de la propuesta anterior ;)
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida