Estou trabalhando em um código VBA para obter dados de uma lista do SharePoint e atualizá-los diretamente do meu arquivo Excel.
Meu código está realmente funcionando, e aqui está:
Option Explicit
Dim HomeSh As Worksheet
Sub ImportList()
Set HomeSh = Sheets("Feuil2")
Dim SpSite As String
SpSite = "https://mybestwebsiste"
Dim Guid As String
Guid = "{51748b98}"
On Error Resume Next
HomeSh.ListObjects(1).Unlist
On Error GoTo 0
HomeSh.Range("A1:X10000").Clear
Dim SiteSrc(0 To 1) As Variant
SiteSrc(0) = SpSite & "/_vti_bin"
SiteSrc(1) = Guid
HomeSh.ListObjects.Add xlSrcExternal, SiteSrc, True, xlYes, HomeSh.Range("A1")
Set HomeSh = Nothing
End Sub
Sub UpdateSPList()
Dim theList As Object
Set HomeSh = Sheets("Feuil2")
Set theList = HomeSh.ListObjects(1)
theList.UpdateChanges xlListConflictDialog
Set theList = Nothing
End Sub
Quando eu chequei para integrar em outro arquivo/macro, algo não funciona bem: O editor não espera a conexão ser atualizada e vai. O problema é: Eu preciso desses dados atualizados para ter uma boa execução do meu código.
Eu estava procurando na internet alguns exemplos de código para esperar a conexão ser atualizada, e não encontrei a solução certa. Aqui está o que eu tentei:
1 :
Aplicação.CalcularAtéAsyncQueriesConcluir
-2 :
HomeSh.ListObjects.Add xlSrcExternal, SiteSrc, True, xlYes, HomeSh.Range("A1")
DoEvents
Deveriam ser essas linhas que me deram alguns problemas?
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Vi que uma expressão como essa deveria ajudar, mas não sei como integrá-la no meu código.
While http.readyState <> 4
DoEvents
Obrigado pela ajuda !