Directory structuur in VBA Userform

Status
Niet open voor verdere reacties.

QueenMan

Gebruiker
Lid geworden
22 nov 2007
Berichten
21
Hallo,

Is er iemand die weet hoe ik de windows directory structuur in een VBA userform kan krijgen?

Wat ik hiermee wil bereiken is dat wanneer het document gesaved wordt er gekozen kan worden in welke map op de PC deze zal worden opgeslagen.
 
Dit hoef je zelf niet te bouwen.

Gebruik de getsaveasfilename methode.

Wigi
 
Wigi,

Bedankt voor je snelle antwoord, maar deze mogelijkheid kende ik al.
Het probleem hiermee is dat de bestandnaam automatisch gegenereerd wordt aan de hand van data die wordt ingevuld in een userform. Deze bestandsnaam mag echter niet gewijzigd worden.

Het zou dus alleen mogelijk mogen zijn op een directory te selecteren en niet de bestandsnaam te overschrijven of en andere bestandsnaam te selecteren.

Is dit mogelijk met getsaveasfilename?
 
Is de hoofddirectory een vaste?
Dan zou je de namen van de subdirectories op kunnen vragen (kijk even in de help van vba bij dir) en in een lijst kunnen plaatsen waaruit je de gebruiker laat kiezen.
De gekozen naam gebruik je dan in je macro om het pad samen te stellen waar je wilt saven.


Aanvulling:
De routine in de help bevat foutjes (Excel2007 talen NL en EN door elkaar)
Hieronder de aangepaste en iets uitgebreide versie, die de directorynamen toont in een messagebox.

Code:
Sub DirNamen()

'
' Display the names in C:\ that represent directories.
MyPath = "c:\"    ' Set the path.
MyName = Dir(MyPath, vbDirectory)    ' Retrieve the first entry.
Do While MyName <> ""    ' Start the loop.
    ' Ignore the current directory and the encompassing directory.
    If MyName <> "." And MyName <> ".." Then
        ' Use bitwise comparison to make sure MyName is a directory.
        If (GetAttr(MyPath & MyName) And vbDirectory) = vbDirectory Then
            Debug.Print MyName    ' Display entry only if it
            DirNames = DirNames & vbCrLf & MyName
        End If    ' it represents a directory.
    End If
    MyName = Dir    ' Get next entry.
Loop
MsgBox DirNames
End Sub
 
Laatst bewerkt:
Jan en Wigi,

Bedankt voor jullie hulp. Hier kan ik verder mee.

:thumb::thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan