• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Vba-code aanpassen ivm overgang naar Sharepoint

Status
Niet open voor verdere reacties.

Conseclusie

Gebruiker
Lid geworden
14 feb 2012
Berichten
358
Hallo,

Mijn organisatie heeft besloten alle bestanden over te zetten van de netwerkschijven naar Sharepoint.:(
Daardoor lopen een flink aantal .xlsb en .xlsm bestanden in de soep, zo blijkt...
Ik ben ervan overtuigd dat dit met een eenvoudige aanpassing in de VBA-code is te doen, maar het wil me niet lukken.
Een concreet voorbeeld wat ik als startpunt gebruik:
Code:
Sub HelpMij()
strPath = ThisWorkbook.Path & "/"
StrFile = Dir(strPath)
Do While StrFile <> ""
    MsgBox StrFile
    StrFile = Dir   'Get next entry.
Loop
End Sub

ThisWorkbook.Path & "/" = "https://mijnorg.sharepoint.com/sites/SP-15388/"
Ik had al via een ander draadje begrepen dat ik dit moest aanpassen in: "\\mijnorg.sharepoint.com\sites\SP-15388"
Dat is eenvoudig te doen via:
Code:
Sub HelpMij()
strPath = ThisWorkbook.Path & "/"
strPath = Replace(strPath, "/", "\")
strPath = Replace(strPath, "https:\\", "\\")
StrFile = Dir(strPath)
Do While StrFile <> ""
    MsgBox StrFile
    StrFile = Dir   'Get next entry.
Loop
End Sub

Maar nog steeds krijg ik dan (bij StrFile = Dir(strPath)) een foutmelding om m'n oren:
"Fout 52: Ongeldige bestandsnaam of ongeldig bestandsnummer"
Heeft iemand enig idee hoe ik het juiste pad kan vinden??
 
Code:
Sub M_snbj()
  c00= "\\mijnorg.sharepoint.com\sites\SP-15388\"
  c01=Dir(c00 & "*.*")

  Do While c01 <> ""
    MsgBox c00 & c01
    c01 = Dir
  Loop
End Sub
 
Laatst bewerkt:
Dank voor de zeer snelle reactie, SNB.
Ik blijf helaas precies dezelfde fout krijgen. (na kleine correctie: c01 = Dir(c00 & "*.*) aangepast in c01 = Dir(c00 & "*.*")
Zou het misschien kunnen dat ThisWorkbook.Path niet de juiste output geeft (die bruikbaar is voor Dir)? Of een alias retourneert ofzo?
 
Kun je niet beter afzien van Thisworkbook.path en eerst eens testen met een vast pad ?
 
Wat is de string van ThisWorkbook.Path ?
 
Het enige wat ik nog kan bedenken is dat je in het hulpscherm 'opslaan als' deze lokatie als FTP-lokatie toevoegt.
 
Probeer het eens zonder de slashes om te zetten naar backslashes.
Ik gebruik ook Sharepoint, waarbij het gewoon werkt wanneer je het originele pad gebruikt.
 
Laatst bewerkt:
Volgens mij heb ik elk denkbaar pad geprobeerd; met slashes, met backslashes, met https:, zonder https: en alle mogelijke combinaties.
Ik had juist ThisWorkbook.Path gebruikt in de hoop dat deze de juiste spelling direct zou geven, maar helaas dus...
Het zal wel iets heel kleins zijn, maar heb nog steeds geen idee.
 
Ik heb in het verleden ook wel eens problemen gehad met het Dir-statement in combinatie met sharepoint. Altijd kwam dan toen error 52 als ik vanaf een lokaal bestand met Dir een bestand of folder wilde checken op sharepoint. Als je echter daarvoor al eens, na het opstarten van de computer, een willekeurig Excel-bestand op sharepoint had geopend, dan kwam de foutmelding niet. Open dus eerst eens een Excel-bestand op sharepoint en kijk dan of de foutmelding nog steeds optreedt. Toen moest ik dat bestand speciek openen met Internet Explorer. Ik weet niet of dat ondertussen ook werkt met anders browsers.
 
Als je de mappen synchroniseert met je verkenner, dus aan een netwerkschijf koppelt, heb je wat meer mogelijkheden om folders/bestanden op te vragen.
Dit doe je vanaf sharepoint. Daarna kun je de folders/bestanden ophalen met een filesystemobject.
 
De Dir functie dateert van ver voordat Sharepoint was uitgevonden en kent dus geen https locaties. Inderdaad kan je dan beter de sharepoint map koppelen aan een driveletter en dan kan je er gewoon mee blijven werken. Helaas moet deze driveletter dan wel ingesteld zijn bij alle gebruikers van jouw code.
 
Klopt en dat is heel foutgevoelig. Iemand met alle rechten voor een map heeft een ander pad dan iemand met minder rechten voor die map!
De code zal dus niet bij iedereen werken.
 
Allen dank voor het meedenken.
Door Jan Karel's antwoord heb ik besloten het maar even te laten rusten...., ik word anders helemaal gek van dat k***** Sharepoint.
Overiges is het gebruik van Dir niet heilig voor me,......als ik op een andere manier een overzicht kan verkrijgen van alle aanwezige bestanden in de map; ook prima.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan