Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

391
Vistas
¿Hay alguna forma de verificar si una conexión en Excel es válida antes de actualizarla?

Antecedentes rápidos: casi no tengo experiencia con VBA. Empecé a aprender esto hace dos semanas y he progresado rápidamente, pero me falta mucho conocimiento. No sé lo suficiente para saber lo que no sé, a falta de una palabra mejor. Mis disculpas por adelantado si esta es una pregunta que tiene una solución muy simple. He estado revisando la documentación de VBA de Microsoft sin suerte durante varios días.

El problema: tengo una sola conexión en una hoja de cálculo principal a una hoja de cálculo en SharePoint que extrae datos de las entradas de los operadores en sus teléfonos celulares. La forma actual en que mi código está configurado, actualizará esa conexión antes de ejecutar los cálculos para garantizar que se tengan en cuenta los datos nuevos.

Sin embargo, dado que la ubicación del documento conectado (o incluso el nombre) puede cambiar en el futuro debido a que es un documento compartido, quería encontrar una manera de probar que la conexión era válida; es decir, que el archivo con el nombre correcto existía donde se suponía que debía estar.

Actualmente, si el nombre del archivo o la ubicación no coinciden, Excel arroja un error y mi código dejará de ejecutarse. Idealmente me gustaría tener algo similar a esto:

 If connectionIsValid Then Refresh the connection Else MsgBox "Could not refresh connection", vbInformation *Continue with code instead of throwing an error* End If

He intentado cosas como:

 If ActiveWorkbook.Connections(1).OLEDBConnection.IsConnected Then Run Code End If

Pero después de leer la documentación, me di cuenta de que lo anterior está relacionado con que la propiedad KeepConnection sea verdadera.

y:

 On Error GoTo ErrorHandler *Refresh the sheet* *Continue code* Error Handler: *Don't refresh the sheet* *Continue code*

Cualquier ayuda o incluso un puntero en la dirección correcta es muy apreciada. Gracias por tu tiempo.

about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

No estoy seguro de qué está mal con su segunda sugerencia: usar un controlador de errores.

 Function checkConnection() On Error GoTo errorHandler ActiveWorkbook.Connections.Item(1).Refresh Exit Function errorHandler: MsgBox "Could not refresh connection. " & Err.Description End Function

Acabo de agregar el comando Exit allí; de lo contrario, ejecutará el código en la etiqueta errorHandler cada vez, incluso si no hay un error.

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda