forzar propiedad "compartido" desde visual a un excel

09/05/2006 - 09:52 por xabi | Informe spam
Buenas...este es mi primer post aqui,saludo a todo el mundo.Me gustaria
saber si al crear un archivo excel desde visual se puede indicar que este
sea "compartido" para que no se machaquen entre si la info los diferentes
usuarios en paralelo.
muchisimas gracias.
xabi

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
11/05/2006 - 08:25 | Informe spam
hola, xabi !

... saber si al crear un archivo excel desde visual se puede indicar que este sea "compartido"
para que no se machaquen entre si la info los diferentes usuarios en paralelo.



prueba usando instrucciones +/- como las siguientes [xl '97 en adelante]:

op1:
With el_objeto_libro_que_has_creado
.KeepChangeHistory = True
.ProtectSharing(Filename, Password, WriteResPassword, ReadOnlyRecommended, CreateBackup, SharingPassword)
End With

donde:
FileName es una cadena de texto con el nombre del archivo
Password es una cadena de texto con la clave 'contra' apertura
WriteResPassword es una cadena de texto con la clave 'contra' esctritura
ReadOnlyRecommended es una variable True o False
CreateBackup es una variable True o False
SharingPassword es una cadena de texto con la clave 'contra' esctritura

op2:
objeto_libro.SaveAs(Filename, FileFormat, Password, WriteResPassword, ReadOnlyRecommended, CreateBackup, AccessMode, ConflictResolution, AddToMru, TextCodePage, TextVisualLayout)
End With

donde:
FileName es una cadena de texto con el nombre del archivo
FileFormat es [generalmente] la constante: -> xlWorkbookNormal
Password es una cadena de texto con la clave 'contra' apertura
WriteResPassword es una cadena de texto con la clave 'contra' esctritura
ReadOnlyRecommended es una variable True o False
CreateBackup es una variable True o False
AccessMode [aqui usa la constante] -> xlShared (archivo compartido)
- ConflictResolution puedes considerar las siguientes opciones:
- xlUserResolution (muestra el cuadro de dialogo de resolucion de conflictos) -por omision-
- xlLocalSessionChanges (acepta los cambios del usuario local)
- xlOtherSessionChanges (acepta los cambios que no pertenezcan al usuario local)
AddToMru es True o False -por omision- para agregar el archivo a la lista de los usados recientemente
TextCodePage [no se utiliza]
TextVisualLayout [no se utiliza]

nota: es posible que desde vb [stand-alone] NO se 'reconozcan' las constantes internas de excel :-((
-> pero puedes bajar un ZIP con las equivalencias de las constantes en: http://www.cpearson.com/Zips/XLConsts2.ZIP

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#2 xabi
15/05/2006 - 09:59 | Informe spam
Buenas!!
Muchisimas gracias por tu ayuda...aunque tengo algunas dudas.Estoy
probando con la op1 recomendada por ti.Mis preguntas son las siguientes:
1)el_objeto_libro_que_has_creado:en que se diferencia a el
FileName ?Tengo en nombre de mi archivo en una variable llamanda
NombreArchivoNuevo.Como deberia actuar?
2)Las propiedades como WriteResPasword QUE NO VOY A UTILIZAR
las pongo a false o simplemente borro dejandolo asi:(myfile, , , , )?

muchisimas gracias!!
xabi.
"Héctor Miguel" escribió en el mensaje
news:
hola, xabi !

> ... saber si al crear un archivo excel desde visual se puede indicar que


este sea "compartido"
> para que no se machaquen entre si la info los diferentes usuarios en


paralelo.

prueba usando instrucciones +/- como las siguientes [xl '97 en adelante]:

op1:
With el_objeto_libro_que_has_creado
.KeepChangeHistory = True
.ProtectSharing(Filename, Password, WriteResPassword,


ReadOnlyRecommended, CreateBackup, SharingPassword)
End With

donde:
FileName es una cadena de texto con el nombre del archivo
Password es una cadena de texto con la clave 'contra' apertura
WriteResPassword es una cadena de texto con la clave 'contra' esctritura
ReadOnlyRecommended es una variable True o False
CreateBackup es una variable True o False
SharingPassword es una cadena de texto con la clave 'contra' esctritura

op2:
objeto_libro.SaveAs(Filename, FileFormat, Password, WriteResPassword,


ReadOnlyRecommended, CreateBackup, AccessMode, ConflictResolution, AddToMru,
TextCodePage, TextVisualLayout)
End With

donde:
FileName es una cadena de texto con el nombre del archivo
FileFormat es [generalmente] la constante: -> xlWorkbookNormal
Password es una cadena de texto con la clave 'contra' apertura
WriteResPassword es una cadena de texto con la clave 'contra' esctritura
ReadOnlyRecommended es una variable True o False
CreateBackup es una variable True o False
AccessMode [aqui usa la constante] -> xlShared (archivo compartido)
- ConflictResolution puedes considerar las siguientes opciones:
- xlUserResolution (muestra el cuadro de dialogo de resolucion de


conflictos) -por omision-
- xlLocalSessionChanges (acepta los cambios del usuario local)
- xlOtherSessionChanges (acepta los cambios que no pertenezcan al


usuario local)
AddToMru es True o False -por omision- para agregar el archivo a la lista


de los usados recientemente
TextCodePage [no se utiliza]
TextVisualLayout [no se utiliza]

nota: es posible que desde vb [stand-alone] NO se 'reconozcan' las


constantes internas de excel :-((
-> pero puedes bajar un ZIP con las equivalencias de las constantes en:


http://www.cpearson.com/Zips/XLConsts2.ZIP

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


Respuesta Responder a este mensaje
#3 Héctor Miguel
17/05/2006 - 01:53 | Informe spam
hola, xabi !

... probando con la op1... Mis preguntas son las siguientes:
1) el_objeto_libro_que_has_creado:en que se diferencia a el FileName ?
Tengo en nombre de mi archivo en una variable llamanda NombreArchivoNuevo. Como deberia actuar?
2) Las propiedades como WriteResPasword QUE NO VOY A UTILIZAR las pongo a false o simplemente borro dejandolo asi:(myfile, , , , )?



1) [a falta de dealles mas 'especificos y claros']... en el ejemplo utilice la expresion: -> 'el_objeto_libro_que_has_creado'
-> asumiendo o suponiendo que desde vb creas o llamas alguna instancia del excel [p.e.] con instrucciones del tipo...
Mi_libro = CreateObject("Excel.Application") o... Mi_libro = GetObject(, "Excel.Application") -?- [luego entonces]...
-> la expresion 'el_objeto_libro_que_has_creado' debieras sustituirla por: -> Mi_libro [o la que hubieras definido 'realmente'] :))
[ademas de que]... poca [o ninguna] relacion pudiera tener con el 'FileName' [que es un argumento del metodo a utilizar] ;)

2) hablando de la op1 donde metodo y argumentos son los siguientes:
With el_objeto_libro_que_has_creado
.KeepChangeHistory = True
.ProtectSharing(Filename, Password, WriteResPassword, ReadOnlyRecommended, CreateBackup, SharingPassword)
End With
-> donde a su vez, cada argumento requiere del siguiente 'tipo' de datos:
FileName es una cadena de texto con el nombre del archivo
Password es una cadena de texto con la clave 'contra' apertura
WriteResPassword es una cadena de texto con la clave 'contra' esctritura
ReadOnlyRecommended es una variable True o False
CreateBackup es una variable True o False
SharingPassword es una cadena de texto con la clave 'contra' esctritura

una forma de usarlos 'en directo' [segun y con esctricto apego al ajemplo y supuestos]... es cada argumento segun su tipo:
.ProtectSharing("Filename", "Password", "WriteResPassword", True, False, "SharingPassword")

si piensas 'brincar' [o no utilizar] algunos 'anteriores'... deberas dejar su separador de argumentos [una coma] en vacio [p.e.]
.ProtectSharing(, , "WriteResPassword", , , "SharingPassword")
o... utilizar los nombres de sus argumentos y asi puedes 'omitir' los que no pienses utilizar [p.e.]
.ProtectSharing(Filename:="Nombre del archivo", _
ReadOnlyRecommended:=True, _
SharingPassword:="Clave de compartir")

si cualquier duda... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#4 xabi
05/06/2006 - 12:45 | Informe spam
Buenassss:
Aqui ando intentando crear el archivo excel compartido y vinculado.
Para el modo COMPARTIDO estoy haciendo lo siguiente:
With objLibro
.SaveAs("Prueba","xlWorkbookNormal", , ,False, , "xlShared",
"xlOtherSessionChanges", , , )
.Close
End With

Visual me lo subraya en rojoPOR QUE??Las constantes no van entre
comillas?
Otra preguntadonde le especifico la carpeta?Antes lo hacia asi:
objLibro.SaveAs RutaCarpeta+"\Prueba.xls" pero aora el "SaveAs" tiene
todas esas variablesse puede seguir especificando la ruta?
muchisimas gracias!!!

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

> ... probando con la op1... Mis preguntas son las siguientes:
> 1) el_objeto_libro_que_has_creado:en que se diferencia a el FileName ?
> Tengo en nombre de mi archivo en una variable llamanda


NombreArchivoNuevo. Como deberia actuar?
> 2) Las propiedades como WriteResPasword QUE NO VOY A UTILIZAR las pongo


a false o simplemente borro dejandolo asi:(myfile, , , , )?

1) [a falta de dealles mas 'especificos y claros']... en el ejemplo


utilice la expresion: -> 'el_objeto_libro_que_has_creado'
-> asumiendo o suponiendo que desde vb creas o llamas alguna instancia


del excel [p.e.] con instrucciones del tipo...
Mi_libro = CreateObject("Excel.Application") o... Mi_libro GetObject(, "Excel.Application") -?- [luego entonces]...
-> la expresion 'el_objeto_libro_que_has_creado' debieras sustituirla


por: -> Mi_libro [o la que hubieras definido 'realmente'] :))
[ademas de que]... poca [o ninguna] relacion pudiera tener con el


'FileName' [que es un argumento del metodo a utilizar] ;)

2) hablando de la op1 donde metodo y argumentos son los siguientes:
With el_objeto_libro_que_has_creado
.KeepChangeHistory = True
.ProtectSharing(Filename, Password, WriteResPassword,


ReadOnlyRecommended, CreateBackup, SharingPassword)
End With
-> donde a su vez, cada argumento requiere del siguiente 'tipo' de datos:
FileName es una cadena de texto con el nombre del archivo
Password es una cadena de texto con la clave 'contra' apertura
WriteResPassword es una cadena de texto con la clave 'contra' esctritura
ReadOnlyRecommended es una variable True o False
CreateBackup es una variable True o False
SharingPassword es una cadena de texto con la clave 'contra' esctritura

una forma de usarlos 'en directo' [segun y con esctricto apego al ajemplo


y supuestos]... es cada argumento segun su tipo:
.ProtectSharing("Filename", "Password", "WriteResPassword", True, False,


"SharingPassword")

si piensas 'brincar' [o no utilizar] algunos 'anteriores'... deberas dejar


su separador de argumentos [una coma] en vacio [p.e.]
.ProtectSharing(, , "WriteResPassword", , , "SharingPassword")
o... utilizar los nombres de sus argumentos y asi puedes 'omitir' los que


no pienses utilizar [p.e.]
.ProtectSharing(Filename:="Nombre del archivo", _
ReadOnlyRecommended:=True, _
SharingPassword:="Clave de compartir")

si cualquier duda... comentas ?
saludos,
hector.


Respuesta Responder a este mensaje
#5 Héctor Miguel
06/06/2006 - 10:10 | Informe spam
hola, xabi !

Aqui ando intentando crear el archivo excel compartido y vinculado.
Para el modo COMPARTIDO estoy haciendo lo siguiente:
With objLibro
.SaveAs("Prueba","xlWorkbookNormal", , ,False, , "xlShared", "xlOtherSessionChanges", , , )
.Close
End With
Visual me lo subraya en rojoPOR QUE?? Las constantes no van entre comillas?
Otra preguntadonde le especifico la carpeta?Antes lo hacia asi:
objLibro.SaveAs RutaCarpeta+"\Prueba.xls" pero aora el "SaveAs" tiene todas esas variables
...se puede seguir especificando la ruta?



1) las constantes... NO van delimitadas por comillas dobles :))

2) si tu variable -> RutaCarpeta ES una cadena de texto que 'apunta' a una ruta 'base'...
puedes seguir utilizandola 'como siempre' ;)

3) [hasta donde se] cuando excel se abre como 'instancia provocada' por mecanismos de automatizacion...
asumo que estas usando excel desde VisualBasic -stand alone- -?-
-> no es una aplicacion que este en 'control total' de sus habilidades
-> ningun archivo de 'auto-carga/apertura' se inicia en conjunto [complementos, ni siquiera el 'personal.xls']
-> por este 'motivo'... las constantes [internas] de excel [como xlDown, xlCenter, etc.]...
NO son 'transparentes' para la aplicacion 'instanciadora' :-((

4) 'bajo' estas sircunstancias... necesitaras CAMBIAR [en 'esas' lineas de codigo] las constantes POR su valor 'real'...
p.e. xlCenter [que es lo mismo que 'xlHAlignCenter'] 'equivale' al valor -4108 [menos_cuatro_uno_cero_ocho]
puedes comprobar esos valores [en vba de excel] desde la ventana de 'inmediato' con la sentencia: ? xlCenter y pulsas {enter}
o te puedes bajar un ZIP con las equivalencias de las constantes de excel en: http://www.cpearson.com/Zips/XLConsts2.ZIP

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida