Nou…. “redelijk eenvoudig” kan je alvast vergeten. Je zal om te beginnen met macro’s in de weer moeten, die informatie voor je kunnen ophalen. Voordat je iets met een formule kan doen, moet je eerst een aantal parameters benoemen en de gegevens ophalen. Vragen die minimaal in je macro moet oplossen zijn de volgende:
· Waar staan die bestanden?
· Zijn er überhaupt bestanden van klant X?
· Welke bestanden zijn er mbt klant X?
· Hoe heten die bestanden ?
Als je al die gegevens hebt, kan je formules maken. Ik heb het wel eens gedaan voor een kilometerdeclaratie-formulier, maar het is een lijdensweg….
Hier een voorbeeldje:
Macro haalt gegevens op uit de map c:\kilometer declaraties daarin staat per maand een bestandje met verreden kilometers. Totaal is genoemd in cel G42, daar gaat het dus eigenlijk om.
Er wordt gekeken of er bestanden zijn, en hoe die heten. Vervolgens worden de bestandsnamen gekopieerd naar kolom AE (dat hoeft niet, maar is wel handig als controle, dan zie je tenminste terug waar de gegevens vandaan komen), en de waarden uit betreffende bestandjes (in dit geval het aantal verreden kilometers) in cel G42 worden gekopieerd in kolom AD.
MACRO (in het ThisWorkbook tabje)
Private Sub Workbook_Open() ‘dit uitvoeren als werkboek opent
'Sheets("Voorzijde").Select
With ActiveWorkbook
.UpdateRemoteReferences = True 'set menu optie externe verwijzingen bijwerken
.SaveLinkValues = True 'set menu optie externe koppelingswaarden opslaan
End With
Application.ThisWorkbook.UpdateLinks = xlUpdateLinksAlways
Dim fileList() As String
Dim fName As String
Dim fPath As String
Dim I As Integer
fPath = "c:\Kilometer declaraties\"
fName = Dir(fPath & "*.xls")
While fName <> ""
I = I + 1
ReDim Preserve fileList(1 To I)
fileList(I) = fName
fName = Dir()
Wend
If I = 0 Then
MsgBox "Er zijn geen bestanden gevonden in de map c:\kilometer declaraties"
Exit Sub
End If
For I = 1 To UBound(fileList)
Range("AD" & I).Value = fileList(I)
Myxlname = "='" + fPath + "[" + fileList(I) + "]" + "Voorzijde'"
ActiveWorkbook.Names.Add Name:="MyValue", RefersTo:=Myxlname + "!$G$42"
Range("AE" & I).Value = Range("AA6")
Next
End Sub
'UITLEG: deze macro vraagt de bestandnamen op van alle bestanden in de folder c:\kilometer declaraties\ in kolom AD
'vervolgens worden de waarden uit cel G42 (het aantal verreden kilometers) uit de betreffende bestanden opgeroepen in kolom AE
'deze waarden worden gebruikt in de optelling voor het aantal kilometers.
Resultaat: 2 kolommen met gegevens. Eén kolom met bestandsnamen, en één kolom met waarden. Op die waarden kan je vervolgens iedere willekeurige formule loslaten.