VBA Filecheck op Sharepoint

Status
Niet open voor verdere reacties.

MauriceSmit

Gebruiker
Lid geworden
1 jul 2008
Berichten
168
Beste fellow-vba'ers

Ik wil in een model dat ik aan het ontwikkelen ben een check bouwen waarbij hij op een sharepoint teamroom controleerd of er een nieuwe versie beschikbaar is. Nu heb ik de volgende code gevonden op het wereldwijde web:
Code:
Option Explicit

Private Declare Function URLDownloadToFile Lib "urlmon" Alias _
                                           "URLDownloadToFileA" ( _
                                           ByVal pCaller As Long, ByVal szURL As String, _
                                           ByVal szFileName As String, _
                                           ByVal dwReserved As Long, _
                                           ByVal lpfnCB As Long) As Long

Sub DownloadFileFromWeb()

    Const strUrl As String = "http://teams/Dept/Shared Documents/Reports/Pivot_Source_Data/filename.csv"
    Dim strSavePath As String
    Dim returnValue As Long
    
    strSavePath = "C:\test.csv"
    returnValue = URLDownloadToFile(0, strUrl, strSavePath, 0, 0)
End Sub

Deze code heb ik getest en blijkt bij ons helaas niet te werken, omdat ik denk dat wij via een https werken en niet via een http; maar hier kan ik ook geheel naast zitten.

Heeft toevallig 1 van jullie ervaring met het 'online' controleren voor updates (op een sharepoint omgeving) vanuit vba?

Thz
 
Volgens mij valt deze onder de categorie lastig :cool:

Echter loop ik nog flink stuk op dit deel code. De voorgaande functie krijg ik inderdaad werkend als ik excact de goede bestandsnaam in de aanroep ervan zeg.

Waar het nu echter om gaat is dat ik het 'laatste' bestand van een teamroom (https locatie) moet halen. Nu kan ik bijvoorbeeld met de onderstaande code allerlei bestanden halen uit lokale drives; maar ik moet er echter een hebben die juist kijkt naar een "https://teamroom.com/test/"... Ik hoop dat iemand ervaring heeft met het zoeken naar bestanden op het netwerk/in sharepoint :(.

Code:
Function GetLatestFileName() As String

Dim FSO As Object
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Dim Fl As Object
    strFolder = Application.Range("Link_Teamroom")

    strfile = Dir(strFolder & "/*.xl*", vbNormal)
    Do While strfile <> ""
        If strfile <> "." And strfile <> ".." Then
            Set Fl = FSO.GetFile(strFolder & "\" & strfile)
            MsgBox "File name is: " & strfile
            MsgBox "Date created is: " & Fl.DateCreated
            MsgBox "Date last modified is: " & Fl.DateLastModified
            Set Fl = Nothing
        End If
        strfile = Dir()
    Loop
    Set FSO = Nothing

End Function
 
Het is me dan toch eindelijk gelukt via een work-around. Ik post hem even, mochten er meer mensen hier interesse in hebben.

Wat ik gedaan heb is het volgende:
Op een tabblad heb ik data ingevoegd vanaf het web; in MS Excel, is deze optie te vinden in je Ribbon onder 'Data' --> 'Get external data' --> 'From Web'. Deze optie haalt een tabel (of tekst) op vanaf een willekeurige internet pagina.

Ik heb met behulp van de instructies de tabel opgehaald, welke op de sharepoint site te vinden was, en hierdoor ontstaat er een lijstje met bestandsnamen en 'last date modified' gegevens. Hier was ik na op zoek; deze datum vergelijk ik met de datum van het model; en zodra het model hierin ouder is dan wat er online staat; krijgt de gebruiker een melding dat er een nieuwe versie beschikbaar is.

Mocht je deze zaken in VBA willen afhandelen; is het raadzaam eerst een check te doen of er een internet verbinding is (en evt. een domein check) voordat je de webdata refreshed, gezien te time-out erg lang duurt.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan