inhabilita opciones

22/09/2004 - 02:36 por ayuda | Informe spam
Tengo un libro compartido el cual ejecuta una serie de
macros, mi problema radica en que al momento de importar
datos desde un archivo el codigo que lo hace no puede ser
ejecutado por la caracteristica que mencione (libro
compartido), exister alguna forma para que al compartir
libros no me inhabilite ninguna opción o menú, espero
contar con su ayuda

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
22/09/2004 - 04:07 | Informe spam
hola, 'anonimo' !

... libro compartido ... problema ... al momento de importar ... desde un archivo [...]



por su misma carcteristica de 'compartido'... hay 'cosas que no hacen' en 'tiempo de ejecucion'
si tienes acceso a la ayuda {F1}... consulta el tema de: limitaciones de los libros compartidos

saludos,
hector.
Respuesta Responder a este mensaje
#2 Anonimo
23/09/2004 - 04:29 | Informe spam
Gracias por responder Hector, de hecho ya habia consultado
la ayuda y note esta caracteristica en libros compartidos,
por lo mismo mi pregunta era si existia alguna manera de
habilitar todas las opciones en un libro compartido y de
ser así cual sería

hola, 'anonimo' !

... libro compartido ... problema ... al momento de




importar ... desde un archivo [...]

por su misma carcteristica de 'compartido'... hay 'cosas


que no hacen' en 'tiempo de ejecucion'
si tienes acceso a la ayuda {F1}... consulta el tema de:


limitaciones de los libros compartidos

saludos,
hector.
.

Respuesta Responder a este mensaje
#3 Héctor Miguel
23/09/2004 - 06:44 | Informe spam
hola, [?] !

... ya habia consultado la ayuda y note esta caracteristica en libros compartidos
... alguna manera de habilitar todas las opciones en un libro compartido y ... cual seria



- por lo que 'toca' a las carcteristicas 'NO permitidas' por excel en el uso de libros compertidos
y sus correspondientes opciones de menu... no creo que puedan ser 'habilitadas a la fuerza' :(
- por lo que 'toca' a las macros 'existentes' [al momento de compartirlo]... continuan 'operables'
[hasta que 'tocan' alguna/s de las opciones 'prohibidas'] :(
- por lo que comentas que 'hacen las macros'... [importar datos desde un archivo] ...
y considerando que [en un libro compartido] NO 'se pueden' ->crear tablas[t/dinamicas] nuevas<-...
[quizas...] si 'dejas preparada' el area/tabla[t/dinamica] y ->vinculos<- al archivo 'de origen' [???]
-> si comentas...
- 'que tipo' de archivo es [de donde se importan los datos]
- 'de que forma' estas haciendo por macros la importacion
- que 'variantes' pudiera haber en 'el archvo' [nombre/tipo_ext, filas/registros, columnas/campos, etc.]

saludos,
hector.
Respuesta Responder a este mensaje
#4 Anonimo
24/09/2004 - 03:51 | Informe spam
Gracias por la respuesta Hector

El codigo con el cual hago la extracción de datos es el
siguiente:

With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;e:\ext\vb\are_pis.txt" _
, Destination:=Range("a1"))
.TextFileOtherDelimiter = ","
.Refresh BackgroundQuery:=False
End With

El tipo es .TXT con los siguientes datos

f,faca,interiores,faca,
020_dem_tab3,15
020_dem_plf4,12
040_mur_tab3,11
040_mur_tab2,20

es el resultado de una cuantificación en autocad, con
estos datos tengo que realizar un presupuesto de obra, los
datos del segundo renglon y anteriores a la "," son claves
que ya tengo en una hoja de excel, y son tomados para
realizar la funcion "buscarv", todo esto lo debo tener en
red y compartido pero tengo el problema ya mencionado.

Aprovechando tu amabilidad, es posible cargar en una
variable la ubicación de una celda - la cual ya la obtuve
con .Address - y utilizar esta variable para ponerla en
la opción .Destination:=Range("A1"), es decir en lugar de
poner Range("A1"), poner la variable que declaré?

el codigo que estoy utilizando para tal efecto es el
siguiente:

With ActiveCell
Dim c As Range
set c = .Address(xlA1)
End With 'hasta aqui todo esta correcto

With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;e:\gil\vb\are_pis.txt" _
, Destination:=c)
.TextFileOtherDelimiter = ","
.Refresh BackgroundQuery:=False
End With

pero me manda error

Espero me puedas ayudar, gracias
Saludos
Gil Romero
Respuesta Responder a este mensaje
#5 Héctor Miguel
26/09/2004 - 08:51 | Informe spam
hola, Gil !

El codigo con el cual hago la extraccion de datos es el siguiente:
With ActiveSheet.QueryTables.Add(Connection:= _ [... sigue ejemplo del codigo ...]
... una cuantificacion en autocad ... tengo que realizar un presupuesto de obra
... lo debo tener en red y compartido pero tengo el problema ya mencionado.



=> puedes 'aprovechar' el que las macros 'generadas' ANTES de compartir el libro... ->son 'operables'<-
-> siempre y cuando... NO 'traten de hacer uso' de las carcteristicas 'prohibidas' para ellos <-
[como el 'crear/refrescar' tablas de datos externos] :(
en lugar de un 'QueryTables.Add'... te expongo un ejemplo 'probado', considerando que...
no esta 'prohibido'... 'tomar para lectura' el archivo 'de origen' y 'vaciar' sus datos en el libro compartido ;)

... es posible cargar en una variable la ubicacion de una celda - ... ya la obtuve con .Address -
y utilizar esta variable para ponerla en la opcion .Destination:=Range("A1")
es decir en lugar de poner Range("A1"), poner la variable que declare?



=> [aunque ya no sera 'necesario' modificar la tabla] :))
en la expresion Range("A1"), puedes sustituir la referencia al rango [A1] por cualquier variable ->de texto<-
[siempre y cuando, el 'resultado' de dicha variable 'permita' que sea 'interpretada' como una direccion de celda/s]
[como es el caso en que 'la tomas' de la propiedad 'Address']

el codigo que estoy utilizando para tal efecto es el siguiente:
With ActiveCell
Dim c As Range
set c = .Address(xlA1) [... sigue el ejemplo de codigo ...]
pero me manda error



=> el error 'se origina' debido a que...
1° 'declaras' la variable como de tipo 'Range' [Dim c As Range]
2° cuando lo 'estableces' [con la instruccion 'Set']... lo 'cambias' a un tipo 'String' [= .Address]
[de ahi en adelante... cualquier cosa puede fallar, puesto que 'el tipo' ya no 'coincide'] :((

el codigo propuesto, a continuacion. si cualquier duda... ¿comentas?
saludos,
hector.
en un modulo de codigo 'normal' ==Sub TraerDatosCAD()
Dim Archivo As String, Celda1 As String, Datos As Byte, _
Entrada As String, Fila As Long, Cols As Byte, Pos As Integer, Col As Byte, Dato()
Archivo = "e:\ext\vb\are_pis.txt"
Celda1 = "a1"
Range(Celda1).CurrentRegion.ClearContents
Datos = FreeFile
Open Archivo For Input As #Datos
Do While Not EOF(Datos)
Line Input #Datos, Entrada
Cols = Len(Entrada) - Len(Application.Substitute(Entrada, ",", ""))
If Cols > 0 Then
ReDim Dato(Cols)
Dato(0) = InStr(Entrada, ",")
For Pos = 1 To Cols - 1
Dato(Pos) = InStr(Dato(Pos - 1) + 1, Entrada, ",")
Next
Range(Celda1).Offset(Fila) = Left(Entrada, Dato(0) - 1)
For Col = 1 To Cols
If Col = Cols Then Range(Celda1).Offset(Fila, Col) = Mid(Entrada, Dato(Col - 1) + 1) _
Else Range(Celda1).Offset(Fila, Col) = Mid(Entrada, Dato(Col - 1) + 1, Dato(Col) - Dato(Col - 1) - 1)
Next
Else: Range(Celda1).Offset(Fila) = Entrada
End If
Fila = Fila + 1
Loop
Close #Datos
End Sub
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida