1e aanzet?
Hoi, (de knar = Gweetje)
Ik heb van een ICT collega wel een marco gekregen die de totalen zou moeten kunnen optellen.
Deze macro werkt helaas nog niet naar behoren. Ik blijf hangen op de volgende regel: "waarde = hoeveelheden(2).Cells(teller, 5)".
macro:
Sub totalen_verzamelen()
Dim hoeveelheid(5000) 'Het maximale aantal rijen/records
Const max_regels = 5000
filenaam = ActiveWorkbook.Name 'Bestandsnaam in variable voor beter leesbaarheid
If InStr(1, filenaam, "Totaal", vbTextCompare) Then
filepart = Left(filenaam, Len(filenaam) - 10)
Else
filepart = Mid(filenaam, 1, Len(filenaam) - 4) 'Laatste 4 tekens weghalen zodat .xls er niet meer achter staat
filepart = Left(filepart, InStrRev(filepart, "_"))
ActiveWorkbook.SaveAs Filename:=opslagmap & filepart & "Totaal.xls"
End If
Application.ScreenUpdating = False 'updaten van het scherm uitzetten, voorkomt knipperen en vertraging
voorheen = Application.Calculation 'Huidige stand van autocalc opslaan
Application.Calculation = xlCalculationManual 'autocalc uitzetten
deelopdracht = Dir(opslagmap & filepart & "*.xls") 'alle bestanden die met dezelfde tekst beginnen opvragen
Do While deelopdracht <> ""
If InStr(LCase(deelopdracht), "totaal.xls") Then 'het totaal-bestand zelf natuurlijk overslaan
Else
Workbooks.Open Filename:=opslagmap & deelopdracht 'bestand openen
For teller = 25 To max_regels 'alle waardes die een getal voorstellen uitlezen en in de array optellen
waarde = hoeveelheden(2).Cells(teller, 5)
If IsNumeric(waarde) Then
hoeveelheid(teller) = hoeveelheid(teller) + waarde
End If
Next teller
Workbooks(deelopdracht).Close SaveChanges:=False 'bestand weer sluiten
End If
deelopdracht = Dir 'volgende bestandsnaam opvragen
Loop
For teller = 25 To 5000 'alle regels waar een waarde voor gevonden is in de totaalsheet plaatsen
If (hoeveelheid(teller) > 0) Then Cells(teller, 5) = hoeveelheid(teller)
Next teller
Application.ScreenUpdating = True 'scherm mag weer worden bijgewerkt
Application.Calculation = voorheen 'autocalc weer in de stand van voor het aanpassen zetten
End Sub