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

bestandnaam uit window explorer naar EXCEL

Status
Niet open voor verdere reacties.

Humadgen

Gebruiker
Lid geworden
16 aug 2006
Berichten
251
Hallo

Ik weet niet zeker of dit het juiste forum deel is, dus als iemand denkt dat hij een beter forum hiervoor weet, laat het dan weten, dan verplaats ik mijn vraag daarheen.

In Windows Explorer, heb ik een folder met een paar 1000 foto's die allemaal een bepaalde naam hebben.

In de namen volgorde zit geen logica, het is bijvoorbeeld :
fhflslfdlas.jpg
dsoeywoh.jpg
hfoehonl.jpg
etc.

Ik wil ieder .jpg bestand een andere naam geven. De huidige namen hebben wel een betekenis, waaraan ik kan herkennen wat er op de foto staat,
Om bestanden te "re-namen", heb ik al een oplossing, maar het probleem waar ik een oplossing voor zoek is, hoe ik de huidige x duizend .jpg bestandsnamen kan wegzetten in EXCEL.

Naam voor naam aanklikken en dan copy - paste naar EXCEL is een beetje onbegonnen werk.

Dus weet iemand hoe ik alle
.jpg bestands namen in EXCEL kan krijgen ( of desnoods WORD )

Thanks
Humadgen.
 
Wat is de volledige padnaam van de folder met foto's ?
 
Plak dit achter een knop:

Code:
    Dim f As Object, fso As Object, flder As Object
    Dim folder As String
    Dim wb As Workbook, ws As Worksheet
    Set wb = ActiveWorkbook
    Set ws = ActiveSheet
    Set fso = CreateObject("Scripting.FileSystemObject")
    With Application.FileDialog(msoFileDialogFolderPicker)
        .Show
        If .SelectedItems.Count = 0 Then
            MsgBox "Op annuleren geklikt"
            End
        End If
        folder = .SelectedItems(1)
    End With
    For Each f In fso.GetFolder(folder).Files
        ws.Range("A" & ws.Rows.Count).End(xlUp).Offset(1, 0) = f.Name
    Next
    Columns("A:A").Columns.AutoFit
 
Laatst bewerkt:
Hoi SNB
de folder is D:\fotos\test

Hoi Edmoor
Ik heb de code als Macro : extract sub () weggezet en ik krijg inderdaad een download van de folder in column A. Waarvoor mijn dank.
Maar ik loop toch nog tegen iets aan.

In Explorer heb ik een volgorde van jpg's die ge-alfabetiseerd worden, door eerst jpg's die beginnen met :
[ dan met
_ dan met
getallen en vervolgens met
letters.

In EXCEL is de volgorde eerst
getallen dan
letters dan
[ en ten slotte
_


Is daar iets aan te doen? Weet nog niet of me dat kan gaan opbreken
Ik wou het re-namen doen via een opdrachtprompt in MS-DOS, maar als heb je wellicht ook VBA code hebt die de namen ( die column A uit je VBA code oplevert, kan omzetten naar namen die ik bijvoorbeeld in column B erbij zet?) dan zou dat helemaal prettig zijn,

Grtnx
Humadgen
 
Code:
Sub ChangeNameInFolder()

    Dim i As Long
    Const fDir = "D:\fotos\test\"
    With Sheets("Blad1")
        For i = 2 To .Range("A" & .Rows.Count).End(xlUp).Row
            On Error Resume Next
            Name fDir & .Range("A" & i).Value As fDir & .Range("B" & i).Value
        Next i
    End With
    On Error GoTo 0

End Sub
 
Laatst bewerkt:
Warme bakkertje


Code:
Sub ChangeNameInFolder()

    Dim i As Long
    Const fDir = "D:\fotos\test\"
    With Sheets("Blad1")
        For i = 2 To .Range("A" & .Rows.Count).End(xlUp).Row
            On Error Resume Next
            Name fDir & .Range("A" & i).Value As fDir & .Range("B" & i).Value
        Next i
    End With
    On Error GoTo 0

End Sub

Ik heb je code geprobeerd. Wat moet jou code doen? want er gebeurd niets.
Ik heb er nog even een : in je code gezet, maar er gebeurd dan nog steeds niets.

Grtnx
Humadgen
 
Laatst bewerkt:
Je hebt het toch wel uitgevoerd op een gevulde sheet? ;)
 
Heb je in kolom B ook de extensie vermeld i.e. '.jpg' of iets dergelijks, overeenkomend met kolom A ?
Is const fDir juist ?
 
Laatst bewerkt:
Hallo edmoor en Warme Bakkertje

De code van edmoor haalt de .jpg bestanden perfect binnen in column A.
en inderdaad met de waardes in column B (die ik er dan zelf bij moet zetten) worden de bestanden weer helemaal perfect met de nieuwe namen teruggezet.

Ik had inderdaad geen .jpg extensie gebruikt bij column B

Super bedankt.:thumb:
Grtnx
Humadgen

ps. ik snap alleen je vraag: Is const fDir juist ? niet
tenzij je bedoelde : dat ik er een aanpassing heb gemaakt in jou code:
Const fDir = "D\fotos\test\"
naar
Const fDir = "D:\fotos\test\"

============

Toch nog een vraagje daarover:
Nu staat het Padnaam gedefinieerd in de VBA code.

Is er een mogelijkheid om het padnaam in een soort "INPUT box" te laten bepalen, zodat ongeacht op welke computer ik iemand deze naam omzetting wil laten maken, hij/zij deze op dat moment kan kopieren uit exploreren kan plakken in de INPUT box?
 
Laatst bewerkt:
Ik heb het verder geautomatiseerd zodat fouten en extra handelingen vermeden worden.
1. Haal alle bestanden van geselecteerde dir in kolom A met macro Edmoor waarbij het pad v/d geselecteerde dir in cel A1 geplaatst wordt
2. In kolom C wordt automatisch de juiste extensie geplaatst om typefouten te vermijden.
3. In kolom B typ je nu de nieuwe naam zonder de extensie.
4. Vervang oude naam door nieuwe naam met extensie uit kolom C met macro uit mijn vorige post gebruikmakend v/h pad in cel A1.
Kan ook gemaakt worden zodat de extensie automatisch toegevoegd wordt bij het hernoemen zonder eerst in kolom C te plaatsen.
Moest je geïnteresseerd zijn laat je maar iets weten.
 
Laatst bewerkt:
alle jpg bestanden in D:\fotos\test in kolom A

Code:
Sub M_snb()
  sn=split(createobject("wscript.shell").exec("cmd /c dir D:\fotos\test\*.jpg /b").stdout.readall,vbcrlf)
  cells(1).resize(ubound(sn)+1)=application.transpose(sn)
end sub

Nadat nieuwe namen in kolom B zijn toegevoegd:

Code:
Sub M_snb()
  sn=cells(1).currentregion

  for j=1 to ubound(sn)
    name "D:\fotos\test\" & sn(j,1) as "D:\fotos\test\" & replace(sn(j,2),".jpg","") & ".jpg"
  next
end sub

Het werken met een array werkt veel sneller dan het per cel lezen uit het werkblad.
 
Laatst bewerkt:
@ snb
Nadeel van wscript.shell is dan wel dat deze niet overweg kan met lange bestandsnamen.
Dat van die arrays had ik ook al aangepast in mijn nieuw ontwerp.
 
Laatst bewerkt:
Heb me misschien verkeerd uitgedrukt, namen met spatie klinkt beter.
Je zal dan altijd op zoek moeten naar de DosShortName.
Probeer dan maar eens een dir uit te lezen zoals "G:\Mijn documenten\Helpmij\"
Dat zal je niet lukken, maar "G:\mijndo~1\Helpmij\" zal dan wel lukken.
 
Laatst bewerkt:
Hallo edmoor - snb - warme bakkertje - jolivanes.
Bedankt voor het meedenken, ik ben de verschillende opties aan het uitproberen, al moet ik zeggen dat het lastig is om de discussie tussen snb en warmebakkertje helemaal te begrijpen. (als jullie er samen maar uitkomen, want jullie bijdrages op deze site zijn altijd zeer waardevol.):thumb:

@ warme bakkertje
In je bericht van 9:24 gisteren zegje:
"Ik heb het verder geautomatiseerd zodat fouten en extra handelingen vermeden worden."

Maar ik zie daarna geen code, die ik zou kunnen gebruiken. Ben je vergeten die erbij te zetten, of zie ik iets over het hoofd?
Bedankt
Humadgen
 
Laatst bewerkt:
Omdat er ook andere oplossingen aangeboden werden had ik erbij vermeld "Indien je geïnteresseerd bent" daar ik ook niet weet welke piste jij zelf wil bewandelen.
Dus herlees nu Post#11 en kijk wat jij daar zelf van vindt of welke aanpassingen je er zou bij willen oid.
Hoe meer informatie hoe gerichter er kan geholpen worden.
 
Laatst bewerkt:
@WB

Dat doe je zo:
Code:
Sub M_snb()
  sn=split(createobject("wscript.shell").exec("cmd /c dir [COLOR="#FF0000"]""[/COLOR]D:\fotos nieuw\test\*.jpg[COLOR="#FF0000"]""[/COLOR] /b").stdout.readall,vbcrlf)
  cells(1).resize(ubound(sn)+1)=application.transpose(sn)
end sub
 
Laatst bewerkt:
@ Warme bakkertje

In post #9 geef ik aan dat ik de combinatie van edmoor's code ( stap 1) en jou code (stap 2) heb gebruikt en die werkte op zich heel goed.

Ik gaf toen aan dat ik met 2 dingetjes bleef zitten: Jou eerdere vraag:
1.
Is const fDir juist ? niet
tenzij je bedoelde : dat ik er een aanpassing heb gemaakt in jou code:
Const fDir = "D\fotos\test\"
naar
Const fDir = "D:\fotos\test\"



hoewel die volgens mij niet meer echt relevant is als het werkt. Maar was benieuwd waarom je daaraan twijfelde.
en
2.
Is er een mogelijkheid om het padnaam in een soort "INPUT box" te laten bepalen, zodat ongeacht op welke computer ik iemand deze naam omzetting wil laten maken, hij/zij deze op dat moment kan kopieren uit exploreren kan plakken in de INPUT box?

Ik dacht dat je in je post 11 een antwoord ging geven op vraag 2.
Maar omdat ik de aanvullende code niet zag heb ik net post #16 erbij gezet.

Ondertussen heb ik ook geprobeerd wat snb en jolivanes hebben bedacht, maar jou opmerking richting snb maakte me een beetje voorzichtig om die weg te bewandelen.
en het programma wat jolivanes heeft gemaakt ziet er top uit, maar de code is daar zo omslachtig (begrijp me niet verkeerd jolivanes dat is mijn tekortkoming) dat ik niet precies overzie wat er gebeurd, en dat vind ik altijd belangrijk. anders leer ik er niets van.

Ik waardeer altijd al die knappe koppen die met de verschillende oplossingen komen. Maar ben met de oplossing edmoor - wb erg tevreden, en helemaal als als het mogelijk is om het padnaam in te voeren.


dus terugkomende op post #11
1. Haal alle bestanden van geselecteerde dir in kolom A met macro Edmoor (dat doet de macro van Edmoor ) waarbij het pad v/d geselecteerde dir in cel A1 geplaatst wordt ( die moet ik er dan zelf inzetten -> no problem )
2. In kolom C wordt automatisch de juiste extensie geplaatst om typefouten te vermijden. ( dat stukje code kan ik zelf nog nog wel bedenken tenzij je dat al in je verbeterde versia al hebt zitten)
3. In kolom B typ je nu de nieuwe naam zonder de extensie. ( Dat is geen probleem, die heb ik)
4. Vervang oude naam door nieuwe naam met extensie uit kolom C met macro uit mijn vorige post gebruikmakend v/h pad in cel A1. ( dit stukje code is dan denk ik wat in je verbeterde versie zit??? )
Kan ook gemaakt worden zodat de extensie automatisch toegevoegd wordt bij het hernoemen zonder eerst in kolom C te plaatsen. ( dit is, denk ik niet meer nodig want het bovengenoemde deel werkt)
Moest je geïnteresseerd zijn laat je maar iets weten.


Again

bedankt voor de geboden hulp
Humadgen
 
Laatst bewerkt:
Ondertussen heb ik ook geprobeerd wat snb en jolivanes hebben bedacht, maar jou opmerking richting snb maakte me een beetje voorzichtig om die weg te bewandelen.
Dan kun je beter even wachten op de reaktie van WB op mijn laatste opmerking.....
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan