Link naar SharePoint folder met specifieke users in Excel VBA code

Status
Niet open voor verdere reacties.

samabert

Gebruiker
Lid geworden
27 mrt 2010
Berichten
308
Hallo iedereen,

Sinds kort moeten wij op een PC inloggen met onze eigen login om de SharePoint folders te kunnen raadplegen.

Via de volgende code wordt de link gelegd naar een SharePoint folder voor het openen van een Userform in Excel met informatie uit die folder.
Vanop een PC waarop is ingelogd met de usernaam " LucMa " zoals deze in de code staat is er geen probleem.
Wanneer je vanop een andere PC waarop met een andere user, zoals in de voorbeeld code " MarcBe " is ingelogd lukt dit niet omdat in de code niet de juiste usernaam staat. Wijzig ik de usernaam in de code, dan lukt dit weer, maar niet meer voor de user " LucMa "

Mijn vraag:
Kan dit aangepast worden zodanig dat de code kijkt naar 5 andere users. M.a.w. wie ook van de vijf andere via hun login, toch de folder kunnen openen met info uit die folder.

Ik hoop dat ik duidelijk ben met mijn uitleg.

Alvast bedankt.
Marc

Code:
   Private Sub Userform_initialize()

    Me.StartUpPosition = 0
    Me.Top = Application.Top + 410
    Me.Left = Application.Left + Application.Width - Me.Width - 110
    ListBox1.List = Filter(Split(CreateObject("wscript.shell").exec("cmd /c Dir ""C:\Users\LucMa\SME\BRU_HRS_Int_TEAM - DISPATCH HRS\LOGBOEKEN\Scan\*.pdf"" /b /a-d /o-d ").stdout.readall, vbCrLf), ".")
    'ListBox1.List = Filter(Split(CreateObject("wscript.shell").exec("cmd /c Dir ""C:\Users\MarcBe\SME\BRU_HRS_Int_TEAM - DISPATCH HRS\LOGBOEKEN\Scan\*.pdf"" /b /a-d /o-d ").stdout.readall, vbCrLf), ".")
    ListBox1.ListIndex = 0  ' select first Item in listbox

End Sub
 
Wijzig:
Code:
Filter(Split(CreateObject("wscript.shell").exec("cmd /c Dir ""[COLOR="#FF0000"]C:\Users\LucMa[/COLOR]\SME\BRU_HRS_Int_TEAM - DISPATCH HRS\LOGBOEKEN\Scan\*.pdf"" /b /a-d /o-d ").stdout.readall, vbCrLf), ".")
In:
Code:
Filter(Split(CreateObject("wscript.shell").exec("cmd /c Dir ""[COLOR="#FF0000"]%USERPROFILE%[/COLOR]\SME\BRU_HRS_Int_TEAM - DISPATCH HRS\LOGBOEKEN\Scan\*.pdf"" /b /a-d /o-d ").stdout.readall, vbCrLf), ".")
 
edmoor,

Bedankt voor je antwoord, ik ga het morgen op het werk testen en hou je op de hoogte.

Mvg.
Marc
 
@edmoor,

Ik heb jouw oplossing getest en bij het openen van de Userform krijg ik de pdf bestanden in de lijst te zien, tot zover in orde. Echter vanaf nu als ik bestaande hyperlinks in het document wil openen wordt er elke keer terug gevraagd om de inlog gegevens in te voeren.

Tweede probleem: Ik dacht waarschijnlijk te eenvoudig om de twee volgende acties binnen de Userform op dezelfde wijze op te lossen. Dit werkt niet, het dubbel klikken of de hyperlink creëren werkt niet. Ik krijg ook geen foutmelding te zien.
De veiligheidsvoorzieningen die nu binnen het bedrijf toegepast worden zijn zeer zwaar.

Is er nog een oplossing mogelijk om dit probleem te omzeilen of moet ik het op een andere boeg gooien?

Toch bedankt voor het meedenken.

Mvg.
Marc

Code:
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)

    Filename = "%USERPROFILE%\SME\BRU_HRS_Int_TEAM - DISPATCH HRS\LOGBOEKEN\Scan\" & ListBox1.Value
    ShellExecute 0, "Open", Filename, "", "", vbMaximizedFocus
    ListBox1.ListIndex = -1

End Sub

Code:
Private Sub CommandButton1_Click()

    ActiveSheet.Unprotect Password:="123"

    C00 = "%USERPROFILE%\SME\BRU_HRS_Int_TEAM - DISPATCH HRS\LOGBOEKEN\Scan\"
    For i = 0 To ListBox1.ListCount - 1
        If ListBox1.Selected(i) Then
            ActiveCell.Hyperlinks.Add ActiveCell, C00 & ListBox1.Value, , , ListBox1.Value

            Unload Me
            Exit Sub
        End If
    Next i

    ActiveSheet.Protect Password:="123"
End Sub
 
Je kan die %USERPROFILE% niet in VBA gebruiken.
Gebruik daar dit: Environ("Userprofile")
 
Het wil niet lukken met de geboden oplossing.

Ik krijg volgende compileerfout (verwacht instructie einde).
De eerste code dient om na het openen van de Userform via dubbelklikken de geselecteerde Pdf te kunnen bekijken.
De tweede code dient om daarna van de selectie een hyperlink aan te maken.
Heb geprobeerd om via andere voorbeelden te kunnen achterhalen wat ik fout doe, echter het lukt niet.

Code:
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)

    Filename = Environ("UserProfile") & "\Scans\" & ListBox1.Value
    ShellExecute 0, "Open", Filename, "", "", vbMaximizedFocus
    ListBox1.ListIndex = -1

End Sub

Code:
Private Sub CommandButton1_Click()

    ActiveSheet.Unprotect Password:="123"

    C00 = Environ("UserProfile") & "\Scans\"
    For i = 0 To ListBox1.ListCount - 1
        If ListBox1.Selected(i) Then
            ActiveCell.Hyperlinks.Add ActiveCell, C00 & ListBox1.Value, , , ListBox1.Value

            Unload Me
            Exit Sub
        End If
    Next i

    ActiveSheet.Protect Password:="123"
End Sub
 
Plaats dan je document.
 
@edmoor,

Gisteren had ik geen tijd op het werk om het te testen, daarom ben ik het nu op mijn thuis pc aan het testen zonder SharePoint, waarschijnlijk heb ik daarmee onbewust deze fout gecreëerd.
Nu zie ik door Userprofile te gebruiken de folder waar de gegevens instaan die je bij het openen van de Userform te zien krijgt onder de gebruiker zijn pad moeten staan. M.a.w. ik heb de map scans onder users\gebruikers\scans geplaats en het werk nu.

Daarom moet ik het maandag uitgebreid testen op het werk met de gegevens op SharePoint.
Als het dan nog niet lukt kom terug.

Ondertussen nog bedankt en prettig weekend.
Mvg.
Marc
 
Hallo iedereen,
@ edmoor,

Ik heb vandaag nog eens alles kunnen testen en toe hiertoe spijtig genoeg geen succes met de aangeboden oplossing.

Hierbij een uitgeklede versie van het werkboek. Zoals ik kan zien gaat het over het pad naar PDF bestanden (Scan) dat aangemaakt wordt op één pc, waarbij ingelogd is om toegang te krijgen tot SharePoint folder. Voor de ingelogde persoon op die pc werkt alles correct.
(In bijlage een schematische voorstelling van hoe het werkt).
Lobbook_uitleg.jpg

Je kan vanop een andere pc het werkboek lezen en ook een nota kan je plaatsen, je kan echter de hyperlink die geplaatst is op een andere pc niet openen, pad naar PDF onbekend.
Ergens logisch, want je hebt geen login voor de hyperlink die geplaatst is door iemand anders.
Ik merk ook dat wanneer je een hyperlink plaatst, deze automatisch het pad krijgt via de C:\ en verder het SharePoint adres, dit van de pc waarop je werkt en de naam van de user die is ingelogd. Als je met de cursor over de hyperlink gaat, zie je het volledige pad naar de link.

Dit is de rechtstreekse link naar de folder “Scan” op SharePoint. Bij deze link is de firmanaam gewijzigd:
https://sme.sharepoint.com/sites/BRU_HRS_Int_Team/Freigegebene%20Dokumente/Forms/AllItems.aspx?FolderCTID=0x012000B0F055A218CE64418B2FFCCB164A1855&id=%2Fsites%2FBRU%5FHRS%5FInt%5FTeam%2FFreigegebene%20Dokumente%2FDISPATCH%20HRS%2FLOGBOEKEN%2FScan&viewid=7e25433a%2Dfecb%2D4d44%2D8407%2Dd4529a6506ba&OR=Teams%2DHL&CT=1649152488338&params=eyJBcHBOYW1lIjoiVGVhbXMtRGVza3RvcCIsIkFwcFZlcnNpb24iOiIyNy8yMjAzMDcwMTYxMCJ9

Het gedeelte met %USERPROFILE% om de Userform te openen met de PDF bestanden uit de folder Scan op SharePoint, dit werkt wel.
Het dubbelklikken op een naam uit de Userform en na het plaatsen van de hyperlink, de link openen op een ander pc (andere login) werkt niet.

Is er een andere manier om het pad aan te maken in VBA zodat het “universeel” is? Dat het niet user gebonden is.
Vroeger werkten wij met een gewone VPN en een lokale server en werkte alles en voor alle personen perfect voor vele jaren.

Ik hoop dat mijn uitleg verstaanbaar is en dat er een oplossing voor bestaat, ik heb mij al suf gezocht.

Alvast bedankt
Marc
 

Bijlagen

De link in je document is alleen variabel per gebruiker.
De rechtstreekse link naar de folder “Scan” op SharePoint is nks variabels aan waar VBA iets mee kan.
Dit zal afhankelijk zijn van de iin Sharepoint ingelogde gebruiker en daar heeft VBA uiteraard geen weet van.
 
In ieder geval niet eentje die ik kan verzinnen.
 
Spijtig, in dit geval is vooruitgang eerder achteruitgang.
Toch nog bedankt om mee te denken.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan