Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Met VBA map "Mijn documenten" zoeken

584 views
Skip to first unread message

Loek

unread,
Apr 24, 2010, 7:14:01 AM4/24/10
to
Hallo,

Ik download iedere week .csv bestand dat standaard in de map "Documents"
wordt opgeslagen.
Dit lees ik dan in een ander bestand in en daar zijn geen problemen mee.
Nu willen wij dit inlees bestand op andere computers gaan gebruiken, maar
deze hebben allemaal een verschillende directory structuur. B.v "C:\ Mijn
documenten; "H:\ Users\Loek\Documents\ etc..
Nu ben ik opzoek naar een manier, in VBA, om het bestand dat het .csv
bestand inleest direct te laten zoeken in "Mijn documenten" van de des
betreffende computer.
Ik heb het e.a. met FileSearch geprobeerd maar dan wordt er op de hele Drive
gezocht en dat kan wel even duren.
Ook met de functie Dir kom ik niet verder daar het Path iedere keer anders
is.
Is het mogelijk om het path van "Mijn documenten" te bepalen.
Wie kan mij op weg helpen?

Alvast bedankt.


emil

unread,
Apr 24, 2010, 9:11:07 AM4/24/10
to
met
Application.DefaultFilePath
(= de standaard werkmapnaam).

emil

"Loek" <Lo...@discussions.microsoft.com> schreef in bericht
news:224D02AE-64CB-46F9...@microsoft.com...

Loek

unread,
Apr 24, 2010, 10:26:01 AM4/24/10
to
Emil,
Bedankt voor de reactie.
Maar het probleem bij mij is dat "C:\ Users\Loek\Documents\ niet mijn
Application.DefaultFilePath is. Deze heb ik veranderd en dat zou op de andere
computers ook zo kunnen zijn.
Ik zou dus willen dat ongeacht de computer het path naar "Mijn documenten"
gevonden wordt.
--
Loek


"emil" schreef:

> .
>

Wigi

unread,
Apr 24, 2010, 9:26:01 PM4/24/10
to
MsgBox Environ("USERPROFILE") & "\My Documents"

of

MsgBox Environ("USERPROFILE") & "\Mijn Documenten"


--
<a
href="http://users.skynet.be/fa436118/wim/opdrachten.htm">http:/www.wimgielis.be</a>: Excel (VBA code + example files), sports and music.

jan

unread,
Apr 25, 2010, 6:40:44 AM4/25/10
to
Loek,

Gevonden op Internet en enigszins aangepast:

Option Explicit

Private Declare Function SHGetSpecialFolderLocation Lib "Shell32.dll" ( _
ByVal hwndOwner As Long, _
ByVal nFolder As Long, _
pidl As ITEMIDLIST) _
As Long

Private Declare Function SHGetPathFromIDListA Lib "Shell32.dll" ( _
ByVal pidl As Long, _
ByVal pszPath As String) _
As Long

Private Type SHITEMID
cb As Long
abID As Byte
End Type

Private Type ITEMIDLIST
mkid As SHITEMID
End Type

Public Const CSIDL_COMMON_DOCUMENTS = 5
Private Const MAX_PATH As Integer = 260

Public Function fGetSpecialFolder(CSIDL As Long) As String
Dim sPath As String
Dim IDL As ITEMIDLIST
'
' Retrieve info about system folders
' such as the "Recent Documents" folder.
' Info is stored in the IDL structure.
'
fGetSpecialFolder = ""
If SHGetSpecialFolderLocation(0, _
CSIDL, IDL) = 0 Then
'
' Get the path from the ID list, and return the folder.
'
sPath = Space$(MAX_PATH)
If SHGetPathFromIDListA(ByVal IDL.mkid.cb, ByVal sPath) Then
fGetSpecialFolder = Left$(sPath, InStr(sPath, vbNullChar) - 1) _
& ""
End If
End If
End Function


'Met onderstaande code kun je de folder van Mijn Documenten oproepen ook als
deze is gewijzigd.

Sub test()
MsgBox fGetSpecialFolder(CSIDL_COMMON_DOCUMENTS)
End Sub

Vermoedelijk werkt dit onder Windows Vista en Windows 7 ook nog, hoewel
daar, voorzover ik heb begrepen, een nieuwe benadering is gekozen voor een
en ander.

Jan


Loek

unread,
Apr 25, 2010, 7:54:02 AM4/25/10
to
Wigi bedankt voor je reactie.

Hier was ik naar opzoek en het werkt perfect.

"Wigi" schreef:

jan

unread,
Apr 25, 2010, 12:41:43 PM4/25/10
to
Loek,

Als het pad naar Mijn Documenten is verplaatst, bijvoorbeeld naar H:\Data,
dan kom je er met deze oplossing niet.
Environ("USERPROFILE") zal namelijk altijd naar "C:\Documents en
Settings\NaamInlogger verwijzen. Tenzij de betreffende omgevingsvariabele is
gewijzigd.
Standaard staat daar inderdaad Mijn Documenten (of MyDocuments) in maar deze
kan verplaatst zijn en zelfs van naam veranderd.
Vandaar dat ik een andere mogelijkheid heb gegeven die wel naar Mijn
Documenten verwijst, ook al is het pad naar Mijn Documenten gewijzigd
(Verplaatst).

Maar goed als dit voor jou (op jullie netwerk) wel werkt is het natuurlijk
een stuk eenvoudiger.

Jan

"Loek" <Lo...@discussions.microsoft.com> schreef in bericht

news:2A96C939-B657-4ECD...@microsoft.com...

0 new messages