vba excel om lijst met bestanden te krijgen

Pagina: 1
Acties:

Onderwerpen

Vraag


Acties:
  • 0 Henk 'm!

  • erikkallenberg
  • Registratie: November 2009
  • Laatst online: 15-01-2022
Mijn vraag
Ik wil graag de bestandnamen van deze map C:\Users\gebruiker\Downloads\
onder elkaar hebben staan in Excel. Dit is een formule die ik dagelijks wil laten uitvoeren.


Wat ik al gevonden of geprobeerd heb
Omdat er 1000+ bestanden in die map staan, duurt dit nogal lang. Is er een code om dit proces in een paar seconden te laten plaatsvinden? Ik gebruik nu onderstaande code:

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Sub Example1()
Dim objFSO As Object
Dim objFolder As Object
Dim objFile As Object
Dim i As Integer

'Create an instance of the FileSystemObject
Set objFSO = CreateObject("Scripting.FileSystemObject")
'Get the folder object
Set objFolder = objFSO.GetFolder("C:\Users\gebruiker\Downloads\")
i = 1
'loops through each file in the directory and prints their names and path
For Each objFile In objFolder.Files
'print file name
Cells(i + 1, 1) = objFile.Name
'print file path
Cells(i + 1, 2) = objFile.Path
i = i + 1
Next objFile
End Sub

Beste antwoord (via erikkallenberg op 11-04-2020 23:45)


  • Outerspace
  • Registratie: Februari 2002
  • Nu online

Outerspace

Moderator General Chat / Wonen & Mobiliteit

AFX Ghey Edition by HlpDsK

Waarom zou je dit met VBA willen doen? Je kan ook gewoon een batchfile of Powershell maken die je automatisch start, waarin een dir output naar een csv wordt weggeschreven. Of denk ik te makkelijk/moeilijk?

[ Voor 4% gewijzigd door Outerspace op 11-04-2020 23:35 ]

Zoekt nieuwe collega's (jr/sr engineers, servicedeskmedewerkers of managers in de Randstad)

Alle reacties


Acties:
  • Beste antwoord
  • 0 Henk 'm!

  • Outerspace
  • Registratie: Februari 2002
  • Nu online

Outerspace

Moderator General Chat / Wonen & Mobiliteit

AFX Ghey Edition by HlpDsK

Waarom zou je dit met VBA willen doen? Je kan ook gewoon een batchfile of Powershell maken die je automatisch start, waarin een dir output naar een csv wordt weggeschreven. Of denk ik te makkelijk/moeilijk?

[ Voor 4% gewijzigd door Outerspace op 11-04-2020 23:35 ]

Zoekt nieuwe collega's (jr/sr engineers, servicedeskmedewerkers of managers in de Randstad)


Acties:
  • 0 Henk 'm!

  • erikkallenberg
  • Registratie: November 2009
  • Laatst online: 15-01-2022
ik ben niet bekend met powershell of batchfiles.

Ben het aan het uitzoeken, maar jou optie lijkt inderdaad snel & simpel. Thnx

[ Voor 46% gewijzigd door erikkallenberg op 11-04-2020 23:45 ]


Acties:
  • 0 Henk 'm!

  • Room42
  • Registratie: September 2001
  • Niet online
@erikkallenberg Zet je code even tussen [code=vb] en [/code]-tags voor de leesbaarheid.

Verder, wat voor output wil je hebben? Met batch is het super simpel om een lijst met paden te krijgen:
cd "C:\Users\gebruiker\Downloads\"
dir /b /s > allebestanden.txt
notepad allebestanden.txt


Met PowerShell is het ook makkelijker om de losse gegevens, zoals de directory etc. te extraheren. Maar wat wil je bereiken?

"Technological advancements don't feel fun anymore because of the motivations behind so many of them." Bron


Acties:
  • 0 Henk 'm!

  • erikkallenberg
  • Registratie: November 2009
  • Laatst online: 15-01-2022
Ik kom er toch nog niet uit.

Ik wil een excel bestand automatisch laten openen dat in de downloads map staat. Ik wil het bestand met de laatste datum.

De link naar het bestand is c:\users\%username%\downloads\naam van het bestand

De naam van het bestand veranderd elke dag. Het begint altijd met streklijst_8982_
gevolgd door de datum & PO of PA

'streklijst_8982_20200413_PO' bijv.

Vraag
Hoe kan ik c:\users\%username%\downloads\streklijst_8982_variabel
automatisch openen met een bat-file of macro?

Acties:
  • 0 Henk 'm!

  • Freeaqingme
  • Registratie: April 2006
  • Laatst online: 13:21
Wat heb je al geprobeerd, en wat werkt daar niet aan?

No trees were harmed in creating this message. However, a large number of electrons were terribly inconvenienced.


Acties:
  • 0 Henk 'm!

  • erikkallenberg
  • Registratie: November 2009
  • Laatst online: 15-01-2022
Via een bat-file een csv bestand aanmaken met daarin een lijst met de namen van alle bestanden.
Daarna met een macro dit bestand openen en zoeken in de lijst met namen naar het streklijst-bestand. Dit werkte wel maar duurde erg lang, doordat er 1000en bestanden in de downloadsmap staan. Ik vond dit toch wat omslachtig. Daarom zoek ik nu al een tijdje een nieuwe methode om alleen de bestanden te krijgen die met streklijst beginnen, maar dat lukt met niet.

Wellicht weet iemand nog een andere manier, hoe ik dit probleem makkelijker op kan lossen.

Acties:
  • 0 Henk 'm!

  • FlowSnake
  • Registratie: Maart 2017
  • Laatst online: 27-09 06:27
Het internet staat vol met deze vraag, zoek op google eens;
vba open variable filename

Hier een voorbeeld
https://www.mrexcel.com/b...h-a-variable-name.481229/


Kwestie van een vba die verwijst naar een en ander, en in die path een concat maken met de variabele als de datum.

Acties:
  • 0 Henk 'm!

  • erikkallenberg
  • Registratie: November 2009
  • Laatst online: 15-01-2022
Bedankt voor de reactie.

Is het ook mogelijk om het bestand die het laatst is aangemaakt te openen?

De ene keer moet het bestand dat eindigd op Po geopend worden, en de andere keer het bestand dat eindigd op Pa

Wanneer ik een code heb om het bestand die als laatst is aangemaakt te openen gaat het altijd goed.

Acties:
  • 0 Henk 'm!

  • ydderf
  • Registratie: December 2017
  • Laatst online: 11:49
Voor je vba script in Excel zou je aan het begin de volgende regel kunnen toevoegen
code:
1
Application.ScreenUpdating = False

En aan het einde weer op true zetten

Soms gaat het niet zoals het moet, maar moet het maar zoals het gaat


Acties:
  • 0 Henk 'm!

  • g0tanks
  • Registratie: Oktober 2008
  • Laatst online: 01:36

g0tanks

Moderator CSA
erikkallenberg schreef op woensdag 22 april 2020 @ 20:56:
Is het ook mogelijk om het bestand die het laatst is aangemaakt te openen?
Dat kan, maar eigen inzet blijft een vereiste. Probeer maar eens te zoeken op 'vba open last saved file'.
ydderf schreef op woensdag 22 april 2020 @ 21:05:
Voor je vba script in Excel zou je aan het begin de volgende regel kunnen toevoegen
code:
1
Application.ScreenUpdating = False

En aan het einde weer op true zetten
Wel handig om dan te vertellen wat deze code doet. Deze setting zorgt er voor dat de Excel zichtbaar wordt geüpdatet elke keer dat er een berekening is. Door het pas helemaal op het eind aan te zetten scheelt dat tijdens de berekening inspanning van je computer en wordt je origineel code mogelijk sneller.

Ultrawide gaming setup: AMD Ryzen 7 2700X | NVIDIA GeForce RTX 2080 | Dell Alienware AW3418DW

Pagina: 1