Listbox vullen met bestanden uit een folder werkt niet meer.

Status
Niet open voor verdere reacties.
@HSV
Jouw code werkt, de ListBox wordt netjes gevuld en de sortering is ook van nieuw naar oud.
Maar is er een reden dat van het moment ik de knop klik om de Userform te openen, het ongeveer 6 seconden duurt voor de Userform effectief opent?
Bij eerdere codes, dan wel zonder sortering opent de Userform direct.


@snb
Sorry, de fout 400, mijn fout. Ik dien een paswoord te ontgrendelen en terug te vergrendelen om de hyperlink te plaatsen. Dat code werkt correct, ik krijg de map op SharePoint te zien en kan een bestand selecteren.
Ik heb toch nog een vraag:
Als de hyperlink geplaats is krijg je heel het pad van het bestand te zien in de cel, vroeger kregen we alleen de bestandsnaam te zien (is korter en overzichtelijker). Kan dit nog aangepast worden?


Aan jullie beiden: Al een dikke merci voor jullie input:thumb:
 
Misschien een reden voor een snellere machine?

Gekheid natuurlijk, wat is de waarde van Ubound(a) bij jou?
Misschien dat .getfile en .datecreated traag zijn.
Niet dat ik daar iets aan kan doen, maar hier staat het er in een oogwenk.
 
Of probeer deze eens:
 

Bijlagen

  • Samabert.xlsm
    24,8 KB · Weergaven: 25
Dan wordt het:

Code:
Sub M_snb()
  With Application.FileDialog(3)
     .InitialView = 2
     .InitialFileName = "G:\OF\*.pdf"
     If .Show Then ActiveCell.Hyperlinks.Add ActiveCell, .SelectedItems(1),,dir(.SelectedItems(1))
  End With
End Sub

PS. 'Beveiliging' maakt meer kapot dan je lief is.
 
@HSV

Ik heb het nu thuis getest en dan werkt het ook direct.
Vrijdag serieuze problemen gehad met het netwerk en het synchroniseren van bestanden naar SharePoint verliep nog trager als een slakkengang of soms helemaal niet.

De waarde vrijdagmorgen nagezien 304, kan dat? Het zal waarschijnlijk te maken hebben met het synchroniseren naar de SharePoint folders.
Thuis getest en dan krijg ik waarde 7.
Eindelijk antwoord gekregen van de Admin dat .Net Framework 3.5 geïnstalleerd zal worden. Misschien niet direct meer nodig maar ik laat het maar installeren.
 
@edmoor

Bedankt om mee naar een oplossing te zoeken.
Wat ik niet begrijp, waarom wordt de Userform geopend op een ander tabblad? Volgende week ga ik jouw code eens verder uitdiepen. Altijd interessant om bij te leren.
 
@ snb

Ik weet dat je geen voorstander bent van beveiliging, maar hier is het nodig. Dit gaat over een logboek waar iedereen technische zaken mag in noteren, al dan niet met een foto (als PDF) in bijlage. Eens deze notering afgewerkt is, mag die door niemand meer gewijzigd worden. We werken al 4,5 jaar met het bestand zonder problemen, maar sinds de wijziging van lokale server naar SharePoint zijn de problemen begonnen.

De laatste code met Dir(.SelectedItems(1) geeft volgende fout weer:
Bij het Ok klikken om de hyperlink te plaatsen in de cel krijg ik volgende:
“Ongeldige bestandsnaam of ongeldig bestandsnummer”

Ik heb dit thuis op mijn eigen Pc ook getest en het pad aangepast naar : ("C:\Zaak\Pdf\Test")
Nu werkt het wel, maar de weergave van de hyperlink is nog altijd het volledige pad, juist hetzelfde als Dir(.SelectedItems(1) niet is bijgevoegd.

Heeft het soms te maken met dat de werk Pc is een 365 Office 64 bit versie en thuis heb ik 365 Office 32 bit versie?
 
@sam

Je kunt nu zo onderhand ook wel weten hoe je controles kunt inbouwen in de code
De uitschakeling van de beveiliging moet je natuurlijk zelf nog even toevoegen.

Code:
Sub M_snb()
  With Application.FileDialog(3)
     .InitialView = 2
     .InitialFileName = "G:\OF\*.pdf"
     
     If .Show Then 
       msgbox .selecteditems(1)
       msgbox dir(.selecteditems(1))
       ActiveCell.Hyperlinks.Add ActiveCell, .SelectedItems(1),,dir(.SelectedItems(1))
     end if
  End With
End Sub
 
Laatst bewerkt:
De controle selecteditems(1) geeft de messagebox het volledige pad naar de gekozen bestand.
Bij de controle dir(.selecteditems(1)) krijg ik "ongeldige bestandsnaam of ongeldig bestandsnummer"


Met jouw code uit post #39 wordt de hyperlink zonder problemen geplaatst in de actieve cel, maar wel weergegeven als het volledige pad naar het bestand:
https://xx.sharepoint.com/sites/BRU_HRS_Int_Team/Freigegebene Dokumente/DISPATCH /LOGBOEKEN/Scan/140 B.pdf
Als het zou kunnen dat alleen de bestandsnaam verschijnt als hyperlink:
140 B.pdf

Zo werd de hyperlink vroeger via ListBox selctie ook weergeven. Dit werk iets overzichtelijker.

Ik hoop dat het nog aangepast kan worden, want jouw manier van werken zonder ListBox vind ik heel interessant en beter.
 
Test dan deze 2 alternatieven:
Code:
Sub M_snb()
  With Application.FileDialog(3)
     .InitialView = 2
     .InitialFileName = "G:\OF\*.pdf"
     
     If .Show Then 
       MsgBox CreateObject("scripting.filesystemobject").getfile(.SelectedItems(1)).Name
       st=split(.selecteditems(1),"/")
       msgbox st(ubound(st))
       ActiveCell.Hyperlinks.Add ActiveCell, .SelectedItems(1),,st(ubound(st))
     end if
  End With
End Sub
 
Laatst bewerkt:
Eerste alternatief geeft volgende:

Als ik een bestand selecteer en klik OK, krijg ik fout 53, kan het bestand niet vinden.
Op volgende regel:
Code:
MsgBox CreateObject("scripting.filesystemobject").GetFile(.SelectedItems(1)).Name


Tweede alternatief:

Krijg ik een Msgbox met de naam van het bestand ( test.pdf) = OK
Dit werkt, maar de hyperlink in de cel is nog de volledige padnaam en niet alleen de bestandsnaam.
 
Kijk dan eens in de hulpbestanden van Excel wat de argumenten zijn voor hyperlinks add.

Dat kun je beter zelf doen, dan dat ik ik alles voorkauw.
 
Ik ga de hulpbestanden nakijken.

Toch al heel erg bedankt voor jouw hulp. :thumb:

Ik laat de vraag nog even open staan.
 
snb,

Alles werkt, de oplossing lag op een klein plaatsje.
Dit is het geworden:

Code:
 Sub M_snbM()


    With Application.FileDialog(3)

        ActiveSheet.Unprotect Password:="123"

        .InitialView = 2
        .InitialFileName = ("https://sk.sharepoint.com/sites/BRU_HRS_Int_Team/Freigegebene%20Dokumente/DISPATCH%20HRS/LOGBOEKEN/Scan/")
        If .Show Then
            st = Split(.SelectedItems(1), "/")
            ActiveCell.Hyperlinks.Add ActiveCell, .SelectedItems(1), , , st(UBound(st))
        End If
    End With

    ActiveSheet.Protect Password:="123"

End Sub

Nogmaals heel erg bedankt voor deze bijzonder interessante topic. :thumb:
Iedereen die meegedacht heeft ook bedankt voor de inbreng.
 

Bijlagen

  • Test.jpg
    Test.jpg
    34,1 KB · Weergaven: 18
Laatst bewerkt:
Waarom die ( en ) bij intitalfielname ?

Unprotect is overbodig als je de protection beperkt tot de userinterface.
 
( en ) zijn inderdaad niet nodig, niet bij stilgestaan. Dit heb ik gewijzigd.
De beveiliging kan ik niet alleen beperken tot de Userinterface.

We zijn al lange tijd bezig met dit logboek en belangrijk, het doet wat het moet doen.
Ik ben nu al heel blij dat we terug bijlagen kunnen toevoegen zonder dat de beheerder moeilijk doet.
 
snb, ik kom hier op terug en zal het toelichten aan de hand van een uitgeklede versie.
Geef mij enkele dagen.
 
Logbook-today is het blad waar iedereen opmerkingen en bijlagen mag invoegen.

Bij het openen van het logbook de volgende dag wordt de voorgaande dag gekopieerd naar logbook-previous days en de actieve dag is terug leeg.

Logbook -today:
Na het invullen van een rij (vb A4:E6), mag er niemand iets aan deze tekst kunnen wijzigen, gezien het over belangrijke technische zaken gaat.
Via de formule in kolom X en de code Worksheet_change (mij destijds geleverd door HSV) wordt de rij geblokkeerd. Ook in combinatie met blad beveiligen.

Ik hoop dat ik een beetje duidelijk ben hoe het logbook werkt, want ik ben nieuwsgierig hoe je dit anders kan oplossen binnen een userinterface.
Ik heb op de meeste plaatsen het paswoord uitgeschakeld, indien je het toch nog nodig zou hebben, paswoord = 123

Ps. Iedereen is positief i.v.m. de laatste aanpassing van ListBox naar FileDialog om een hyperlink te plaatsen.
 

Bijlagen

  • snb_uitleg.xlsm
    467,1 KB · Weergaven: 23
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan