Tengo una hoja de cálculo con una tabla de datos externa proveniente de SQL Server con una consulta que devuelve datos específicos de cada usuario. He puesto instrucciones en este archivo para permitir que se descargue una vez y luego desvincularlo.
Desafortunadamente, un usuario no lo hizo, agregó un montón de datos, los "guardó" y perdió su trabajo.
¿Hay alguna forma de recuperar los datos?
Respuesta1
Lo siento, no tienes suerte. Dado que marcó "Eliminar datos del rango de fechas externo antes de guardar el libro de trabajo", los datos agregados nunca se guardaron y no hay ningún lugar desde donde recuperar los datos del usuario.
Para evitar este tipo de accidente en el futuro, cambiaría el libro a macro habilitado (.xlsm), si aún no lo está, y agregaría una verificación en el evento BeforeSave para ver si la tabla se ha desvinculado.
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim sMsg As String
' Assuming the data table is the first table on the first worksheet
With Worksheets(1).ListObjects(1)
If .SourceType <> xlSrcRange Then
sMsg = "Any changes you've made to the table won't be saved unless you unlink from the database!" _
& vbCrLf & vbCrLf & "Do you want to unlink?"
If MsgBox(sMsg, vbExclamation + vbYesNo) = vbYes Then
.Unlink
End If
End If
End With
End Sub