VBA Zoek in mapstructuur op gedeelte van foldernaam

Status
Niet open voor verdere reacties.

checkmaster

Gebruiker
Lid geworden
29 mei 2011
Berichten
5
Hi !

Visual Basic.
In een folder met diverse subfolders wil ik op zoek naar een specifieke folder/ subfolder op basis van een gedeelte van deze folder/ subfolder.
Bv. de hoofdfolder is 'C:\Productie\Projecten 2011' vervolgens heeft deze map diverse subfolders.
Nu wil ik controleren of de folder 'PXXX - Klantnaam - Referentie' hierin voorkomt waarbij geldt dat ik slechts het (unieke) projectnummer intik i.p.v de complete foldernaam.
Als ik de complete foldernaam weet zou ik namelijk 'Getfolder' kunnen gebruiken.

M.b.v. de 'Dir' functie heb ik dit gedeeltelijk, voor één subfolder, reeds voor elkaar en onder een 'change- label' gezet, telkens als de waarde van dit veld wijzigt wordt de hele mapstructuur afgezocht en gaat er een belletje rinkelen wanneer ze gevonden is.
Nadeel is dat deze manier wat tijd kost als de mapstructuur toeneemt, laat staan wanneer ik het voor elkaar krijg dit voor alle subfolders te doen.
Wildcards in FileSystemObject schijnt niet te kunnen.
Alle folder en subfolders in een array met een 'If Not' lijkt me de oplossing alleen weet ik nog niet hoe daar te komen.

Anyone ?
 
Laatst bewerkt:
Je kunt met een Instr opdracht zoeken in een tekstreeks. Je zoekt dus een string op in de bestandsnamen die je met DIR ophaalt.
 
Dank je Michel voor je reactie.

Goed idee om Instr te gebruiken, ik ben bekend met deze functie echter heb ze hier niet voor gebruikt.
Wat ik nu doe is iedere map op een bepaalde tekenreeks " - " controleren om vervolgens het projectnummer uit de map te filteren, vervolgens wordt het gevonden projectnummer vergeleken met het nummer dat de gebuiker in de textbox heeft geklopt.
Ik verwacht dat met Instr aardig wat meer snelheid kan worden verkregen.
Klopt het dat de mapstructuur van boven naar beneden wordt doorzocht, in dat geval, kun je ook zeggen hoe ik vanaf de onderkant van de mapstructuur omhoog kan kijken i.p.v. van boven naar beneden.
De macro zal voornamelijk voor recente projecten worden gebruikt waarbij deze aan de onderkant van de mapstructuur liggen.

Waar ik ook nog heel erg naar opzoek ben is een goede manier om submappen te doorzoeken, de reden is dat er map is, 'Projecten 2011' waar zich alle projectenmappen in bevinden maar dat voor bepaalde klanten hierin weer een klantspecifieke map is aangemaakt, bv. '2011 Klantnaam'.

Tot slot, kan het een voordeel zijn binnen een functie een array te maken met daarin de mappen en submappen om vervolgens daaruit te lezen en te vergelijken ?
Geeft dat snelheidswinst ?

Vriendelijke groet,
Christiaan
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan