Evitar que se abra Excel cada vez que se abra un archivo diferente, es decir que lo haga en la misma ventana.

Office 365 me abre Excel en una ventana diferente cada vez que se abre un archivo diferente. Esto no ocurría en Office2007 con el que he trabajado hasta ahora, ya que abría todos los archivos en la misma ventana. Al pasar datos de un archivo a otro, me origina pantallazos, ya que presenta el archivo que se activa, y esto no se evita con ''Application.ScreenUpdating=False".

Creo que existe algún modo de evitar esto.

1 respuesta

Respuesta
1

[Hola

Mira en: Archivo - Opciones -Avanzadas, y en el grupo "General", verifica que la opción "Omitir otras aplicaciones que usen intercambio dinámico de datos (DDE)" esté DESMARCADA.

Comentas

Abraham Valencia

¡Gracias! He probado esa opción y sigo igual. Tiene que haber otra solución. 

He probado esa opción y sigo igual. Tiene que haber otra solución. 

[Hola nuevamente 

Si estás 100% seguro de que está desmarca dicha opción, entonces prueba a:

- Confirma que tienes instaladas todas las actualizaciones del Office

Si aún así sigues con problemas, repara o reinstala el Office.

Comentas

Abraham Valencia

¡Gracias! 

He estado de viaje de ahí mi tardanza en la comunicación.

El Office lo acabo de instalar, se supone que está actualizado y sigue presentándose en ventanas diferentes cada vez que abre otro archivo.

Igual peco de pedir demasiado, pero también estoy bloqueado con la obtención de la resolución de pantalla. Uso la siguiente declaración:

Option Explicit

Declare PtrSafe Function GetSystemMetrics Lib "User32" () LongPtr

Public Const SM_CXSCREEN=0

Public Const SM_CYSCREEN=1

Sub Pantalla ()

Dim vidWidth As Long

Dim vidHeight As Long

vidWidth=GetSysstemMetrics(SM_CXSCREEN)

vidHeight=GetSysstemMetrics(SM_CYSCREEN)

.......

Me informa que el numero de argumentos es incorrecto o la asignación de la propiedad no es válida resaltando 'GetSystemMetrics'

El cambio a Office 365 me está resultando problemático, pero tenemos unos cuantos archivos y tengo que solucionar estos inconvenientes.

Te agradezco toda la ayuda que me puedas prestar.

[Hola nuevamente

A pesar de la instalación reciente no pierdes nada yendo a la opción de "Actualizaciones de Office", quién sabe y falta alguna.

Sobre el otro dilema, o estás declarando dicha función de la API de Windows en algún módulo de clase (clásico, de hoja, de Userform...) en lugar de en un módulo estándar, o quizá tu Office es de 64 bits.

Abraham Valencia

Es posible que sea de 64 bits. Y en ese caso como habría que definirlo para obtener la resolución de pantalla? 

Si confirmas que es de 64 bits, intenta así y comentas:

Public Declare PtrSafe Function GetSystemMetrics Lib "user32.dll" (ByVal index As Long) As Long

Ojo, para confirmar que funciona, úsalo en un módulo estándar.

Abraham Valencia

¡Gracias! Fenómeno, Abraham, la función que me envías !FUNCIONA!. Un millón de gracias.

Por otro lado, sigo sin encontrar "Actualizaciones de Office".

Quisiera pedirte, espero, un último favor: La siguiente Función para determinar si una ruta existe o no, se usaba esto:

Function ExisteRuta(pname) As Boolean
'   Devuelve Verdadero si el nombre de ruta existe
    Dim x As String
    On Error Resume Next
    x = GetAttr(pname) And 0
    If Err = 0 Then ExisteRuta = True _
      Else ExisteRuta = False
End Function

En Excel365 no funciona y lo que es peor, no acierto para encontrar la ayuda a pesar de todo lo que han escrito.

Estoy convencido que será alguna pequeña modificación.

Otra vez gracias de antemano.

Un saludo.

Quisiera pedirte, espero, un último favor: La siguiente Función para determinar si una ruta existe o no, se usaba esto:

Function ExisteRuta(pname) As Boolean
'   Devuelve Verdadero si el nombre de ruta existe
    Dim x As String
    On Error Resume Next
    x = GetAttr(pname) And 0
    If Err = 0 Then ExisteRuta = True _
      Else ExisteRuta = False
End Function

En Excel365 no funciona y lo que es peor, no acierto para encontrar la ayuda a pesar de todo lo que han escrito.

Estoy convencido que será alguna pequeña modificación.

Otra vez gracias de antemano.

Un saludo.

Pues eso debe funcionar, quizá no lo estás usando de forma correcta. Ese código tenlo en un módulo estándar. Luego, en una celda coloca así:

=ExisteRuta("D:\Programas\Todos")

Y no deberías tener problema. Mira bien como colocas la ruta, guíate de lo que he enviado.

Abraham Valencia

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas