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

#6 leslie
29/08/2007 - 19:38 | Informe spam
hola hector:

que busque la unidad logica

se puede y me puedes decir como
gracias

"Héctor Miguel" escribió:

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
#7 Héctor Miguel
29/08/2007 - 20:11 | Informe spam
hola, !

que busque la unidad logica



1) copia/pega lo siguiente AL INICIO de tu modulo de codigo:

Private 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(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

2) modifica las instrucciones donde abres el archivo [segun el codigo que expusiste anteriormente]:

-> de:
ChDir "C:\"
Workbooks.Open Filename:="C:\concentrado de informacion.xls"
-> a:
Dim Unidad As String, Archivo As String
Unidad = Left(Trim(InputBox("Indica la letra de la unidad logica donde se buscara el archivo...", "C")), 1)
If Unidad = "" Then MsgBox "Operacion cancelada !!!": Exit Sub
Archivo = Buscar(Unidad & ":\", "concentrado de informacion.xls")
If Archivo = "" Then MsgBox Archivo & " NO existe en " & Unidad & ":\ !!!": Exit Sub
Workbooks.Open Archivo
' aqui continuan tus acciones normales :) '

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#8 leslie
29/08/2007 - 23:58 | Informe spam
hola otra vez

no se si est haciendo algo mal que yo creo que si pero la codificacion que
me diste me genera un errorque dice error de compilacion los
comentarios´pueden aparecer despues del end sub, end function o end property,
y me sombrea la siguientes lineas

Private Declare Function Busca_en_FAT Lib "ImageHlp.dll" Alias
"SearchTreeForFile" _
(ByVal Unidad As String, ByVal Archivo As String, ByVal Reserva As String)
As Long

espero me puedas ayudar

gracias

"Héctor Miguel" escribió:

hola, !

> que busque la unidad logica

1) copia/pega lo siguiente AL INICIO de tu modulo de codigo:

Private 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(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

2) modifica las instrucciones donde abres el archivo [segun el codigo que expusiste anteriormente]:

-> de:
ChDir "C:\"
Workbooks.Open Filename:="C:\concentrado de informacion.xls"
-> a:
Dim Unidad As String, Archivo As String
Unidad = Left(Trim(InputBox("Indica la letra de la unidad logica donde se buscara el archivo...", "C")), 1)
If Unidad = "" Then MsgBox "Operacion cancelada !!!": Exit Sub
Archivo = Buscar(Unidad & ":\", "concentrado de informacion.xls")
If Archivo = "" Then MsgBox Archivo & " NO existe en " & Unidad & ":\ !!!": Exit Sub
Workbooks.Open Archivo
' aqui continuan tus acciones normales :) '

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.



Respuesta Responder a este mensaje
#9 Héctor Miguel
30/08/2007 - 01:07 | Informe spam
hola, !

no se si est haciendo algo mal que yo creo que si pero la codificacion que me diste me genera un error
que dice error de compilacion los comentarios pueden aparecer despues del end sub, end function o end property
y me sombrea la siguientes lineas

Private Declare Function Busca_en_FAT Lib "ImageHlp.dll" Alias
"SearchTreeForFile" _
(ByVal Unidad As String, ByVal Archivo As String, ByVal Reserva As String)
As Long



[creo que] al copiar desde el mensaje y pegar al modulo de codigo hay *saltos de linea* :-((
[aunque veo que en tus *respuestas* no pasan los *cortes* de +/- 80 caracteres por linea de los lectores de noticias] -?-
prueba con lo siguiente:

Private Declare Function Busca_en_FAT Lib "ImageHlp.dll" _
Alias "SearchTreeForFile"(ByVal Unidad As String, _
ByVal Archivo As String, ByVal Reserva As String) As Long

saludos,
hector.
Respuesta Responder a este mensaje
#10 leslie
31/08/2007 - 01:18 | Informe spam
hola hector

gracias por la ayuda me sirvio de mucho.

gracias otra vez

saludos


"Héctor Miguel" escribió:

hola, !

> no se si est haciendo algo mal que yo creo que si pero la codificacion que me diste me genera un error
> que dice error de compilacion los comentarios pueden aparecer despues del end sub, end function o end property
> y me sombrea la siguientes lineas
>
> Private Declare Function Busca_en_FAT Lib "ImageHlp.dll" Alias
> "SearchTreeForFile" _
> (ByVal Unidad As String, ByVal Archivo As String, ByVal Reserva As String)
> As Long

[creo que] al copiar desde el mensaje y pegar al modulo de codigo hay *saltos de linea* :-((
[aunque veo que en tus *respuestas* no pasan los *cortes* de +/- 80 caracteres por linea de los lectores de noticias] -?-
prueba con lo siguiente:

Private Declare Function Busca_en_FAT Lib "ImageHlp.dll" _
Alias "SearchTreeForFile"(ByVal Unidad As String, _
ByVal Archivo As String, ByVal Reserva As String) As Long

saludos,
hector.



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