• 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.

Directorynaam en bestandsnaam importeren

Status
Niet open voor verdere reacties.

jarsky

Gebruiker
Lid geworden
19 feb 2009
Berichten
36
Hallo,

ik wil het volgende voor elkaar krijgen wat me tot nu toe niet lukt.
ik wil in een excel sheet zeg in kolom A beginnend in Rij 2 de namen importeren van bestanden, in dit geval foto's met .jpg extensie, met een multiselect.

De bestandsnaam lukt wel, echter ik wil voor de bestandsnaam ook de directory hebben staan zodat hier een een hyperlink van kan worden gemaakt.
Dus in de cell zou dus compleet moeten komen staan bijv: D:\Foto\Abe\001.jpg

Ik laat nu via onderstaand macro mijn bestandsnamen ophalen en deze vervolgens in de sheet weg te schrijven (met dank aan Rudy in een eerder bericht op dit forum")

Sub ToonBestanden()

Const ROW_START = 1
Const COL_START = 1

Dim fdFilePicker As FileDialog
Dim oFSO As Object
Dim oSheet As Worksheet
Dim vntSelectedItem As Variant
Dim iRow As Integer

On Error GoTo ErrH

Set fdFilePicker = Application.FileDialog(msoFileDialogFilePicker)

With fdFilePicker
.Filters.Clear
.Title = "Selecteer bestanden"
.Filters.Add "Alle bestanden (*.*)", "*.*"
.AllowMultiSelect = True

'Toon de filepicker
If .Show Then

'Creëer FileSystemObject
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oSheet = ThisWorkbook.Sheets(1)

'Loop door de geselecteerde bestanden
For Each vntSelectedItem In .SelectedItems

If oSheet.Cells(ROW_START, COL_START) = vbNullString Then
oSheet.Cells(ROW_START, COL_START) = "Bestandsnaam"

oSheet.Cells(ROW_START + 1, COL_START) = oFSO.GetBasename(vntSelectedItem)
Else
iRow = oSheet.Cells(ROW_START, COL_START).End(xlDown).Row + 1
oSheet.Cells(iRow, COL_START) = oFSO.GetBasename(vntSelectedItem)
End If
Next vntSelectedItem

oSheet.Columns(COL_START).AutoFit
End If

End With

CleanUp:
'Opruim-acties
Set oFSO = Nothing
Exit Sub
ErrH:
MsgBox Err.Description & vbCr & "(Err.Number: " & Err.Number & ")", vbExclamation
Resume CleanUp
End Sub


Voor deze bestandsnaam moet dus ook alleen nog de gehele directory komen te staan.

Wie o wie kan mij helpen.
 
Met
Code:
=INFO("directory")
krijg je naam van de map waarin je je Excel-bestand hebt opgeslagen.
 
Met
Code:
=INFO("directory")
krijg je naam van de map waarin je je Excel-bestand hebt opgeslagen.

Dit is niet wat ik bedoel. Het gaat er om dat ik het pad van andere bestanden, als tekst in een cel invoeg dus cell 1,1 moet de waarde krijgen het pad D:\Foto\Abe\ ....jpg
En dit moet dan als batch kunnen dus alle bestandsnamen inclusief directory pad die in deze map staan moeten opeenvolgend worden ingevoegd dus cell(1,1), Cell(1,2) etc.

Gr Jan
 
Zie voorbeeld bestand

Beste,

In het voorbeeld zoek je wat jij denk ik bedoeld.

Groet HWV
 

Bijlagen

complete directory structuur

Geachte heren dames,

Weet iemand of het mogelijk is om bovengenoemde oplossing (bestanden in een bepaalde directory weergeven in excel) toe te passen op alle submappen in een bepaalde geselecteerde directory.
Ik heb weinig tot geen ervaring met VBA, kan iemand me helpen?

Maarten
 
@maartenvanorsouw Deze topic is dusdanig gedateert dat deze met rust gelaten mag worden. Topic gaat op slot en wordt overgedragen aan de afdeling BNw(Betere Naslagwerken)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan