Tellen aantal bestanden per maker

grietsenwijma

Gebruiker
Lid geworden
25 jun 2013
Berichten
233
Naar ik verwacht een vraag waar een simpel antwoord op moet zijn, echter mijn kennis schiet tekort.

Wij werken met verschillende gebruikers heel vaak met een excel document dat vanaf een "alleen lezen" moederbestand steeds wordt weg gesaved.
Per jaar worden er tegen de duizend stuks van dit document opgeslagen en aan de situatie aangepast.

Uiteraard krijgen ze per stuk een unieke naam.
Deze naam bevat echter wel altijd 12 karakters op rij die voor alle documenten identiek zijn.
Afhankelijk van de gewoonte van de gebruiker kan die rij karakters het laatste stuk van de naam vormen, maar in de midden komt ook vaak voor.

Wat ik nu zoek is een methode om vast te stellen hoeveel van dat soort documenten op onze server staan en dan gespecificeerd naar de maker er van.

Dus: stel er zijn er in totaal 3000 stuks
Jantje heeft er 500 gemaakt
pietje 300
Klaasje 1300
....enzovoort

Hoe zou ik zoiets aan kunnen pakken?

Alvast dank!
 
Als de maker uit de naam te op te maken is, dan gebruik je toch een zoekmachine?
 
nee helaas, de maker staat niet in de naam, anders zou het inderdaad makkelijk zijn..

Van ieder document kun je natuurlijk wel aan de eigenschappen zien wie het heeft aangemaakt.
Ik weet alleen niet hoe je daar op zou kunnen zoeken en/of filteren.
(een aantal duizenden documenten stuk voor stuk de eigenschappen bekijken ga je ook niet aan beginnen)
 
Afhankelijk van de gewoonte van de gebruiker kan die rij karakters het laatste stuk van de naam vormen, maar in de midden komt ook vaak voor.
Dus dat is geen optie? Als dat deel in een bestand van een maker uniek is?
 
Er ontstaat wat verwarring in de begripsbepaling ben ik bang.
Met de naam bedoel ik de naam van het document.
Wie de maker is kun je uit de naam niet afleiden, dat kan uitsluitend door naar de eigenschappen te kijken.
 
Er wordt "author" genoemd als één van de properties.
Daar zou je dan op moeten kunnen filteren.

Tenzij de author natuurlijk steeds de maker van het moederdocument is.

Ik denk dat dit wel de goeie richting is. (maar ik moet hier wel een poos op zitten broeden voor ik weet of ik er definitief bruikbare chocola van ga kunnen maken)
 
Ja, het zal niet eenvoudig zijn en tijd kosten. Wie bepaalt de naam? > Uiteraard krijgen ze per stuk een unieke naam.

Is de naam van een gebruiker/pc-naam aan de bestandsnaam toe te voegen?
 
Je hebt er voor nu vermoedelijk niet zo veel aan, maar als je een nieuw document op basis van een sjabloon maakt, kun je vanuit dat sjabloon met een macrootje een bestand laten aanmaken/bijhouden wanneer een nieuw document wordt gemaakt. Dus een gebruiker maakt een nieuw document aan vanuit de sjabloon, wat een macro triggert die het logbestand opent, en daarin vervolgens wegschrijft welke gebruiker op welke datum een nieuw bestand heeft aangemaakt. Dan kun je op basis daarvan heel makkelijk zien welke gebruiker welke sjabloons heeft geopend.
 
Probeer het hier eens mee:
 

Bijlagen

  • ExcelAuteurs.xlsm
    23 KB · Weergaven: 2
Ziet er veelbelovend uit!

Ik moet hier eerst thuis mee aan het stoeien om te zien wat dit is.
Ons systeembeheer heeft besloten dat je uitstekend met Excel kunt werken zonder gebruik te maken van macro's

...zoals je ook uitstekend met een boot kunt varen zonder de zeilen te hijsen :)
 
Systeembeheerders hebben zo hun voor- en nadelen...
Maar als je wel een VBScriptje mag uitvoeren probeer deze dan eens.
ExcelAuthor.vbs maakt het bestand ExcelAuthor.csv met filenaam en auteur.
ListFileDetails.vbs maakt het bestand FileDetails.csv met daarin index en naam van de filedetails.
ExcelAuthor.vbs toont filedetail 20.

Plaats ExcelAuthor.vbs in de map waarin je Exceldocumenten staan en dubbelklik er op.
Plaats ListFileDetails.vbs in een map naar keuze en dubbelklik er op.
Sla onderstaande scripts op als ExcelAuthor.vbs resp. ListFileDetails.vbs want VBScript bestanden toevoegen is niet toegestaan.
Code:
Set objFSO   = CreateObject("Scripting.FileSystemObject")
Set objFile  = objFSO.CreateTextFile("ExcelAuthor.csv", True)
Set objShell = CreateObject("Shell.Application")
sFolder      = objFSO.GetParentFolderName(WScript.ScriptFullName)
Set objDir   = objShell.Namespace(sFolder)
For Each strFileName in objDir.Items
    If InStr(LCase(strFileName),".xls") > 0 Then
        objFile.WriteLine(strFileName & ";" & objDir.GetDetailsOf(strFileName, 20))
    end if
Next
WScript.Echo "Zie ExcelAuthor.csv"
Code:
rem List all details of a file (this script)
Set objFSO   = CreateObject("Scripting.FileSystemObject")
Set objFile  = objFSO.CreateTextFile("FileDetails.csv", True)
Set objShell = CreateObject("Shell.Application")
scriptDir    = objFSO.GetParentFolderName(WScript.ScriptFullName)
Set objDir   = objShell.Namespace(scriptDir)
For i = 0 To 151
    objFile.WriteLine(i & ";" & objDir.GetDetailsOf(WScript.ScriptFullName, i))
Next
WScript.Echo "Zie FileDetails.csv"
 
Terug
Bovenaan Onderaan