• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

hoe kan je cellen uit onbepaald aantal werkmappen in 1 directorie optellen?

Status
Niet open voor verdere reacties.

de knar

Nieuwe gebruiker
Lid geworden
21 sep 2010
Berichten
4
Is er een formule te bedenken die je
binnen een directorie (vb. c:/overview/)
van een onbekend aantal alle afzonderlijke werkmappen
per sheet (1/werkmap) met een bepaalde naam (bv. Aantallen)
alle cellen (bv. A1) kan laten optellen.
Het zou mij heeeeel :rolleyes:erg helpen iemand dat al voor elkaar heeft gekregen of mij kan uitleggen, hoe dat dan zou moeten.
 
toch nog even wat meer info. want ik ben een beetje bang dat dit waarschijnlijk marcowerk wordt en programmeren daar ben ik niet zo in thuis.
Ik heb straks een heleboel identieke werkmappen die ik via de post binnenkrijg.
De bedoeling is dat ik van een specifiek sheet die zich in alle werkmappen bevindt, in een nieuw sheet een overzicht kan maken.

bv.
cel A1 bevat de som van alle cellen A1 uit de gelijknamige tabbladen van alle afzonderlijke werkmappen in 1 directorie
cel A2 bevat de som van alle cellen A2 uit de gelijknamige tabbladen van alle afzonderlijke werkmappen in 1 directorie
etc
 
Over hoeveel cellen spreken we en over hoeveel bestanden (misschien een ruwe schatting) ?
 
Hoi bakkertje::p
de bewuste sheet kan 100 tot 300 regels met data bevatten. Deze data staat allemaal in 1 kolom.
(ik krijg 9 werkmappen met afwijkende sheets die allen in aparte mappen op de schijf worden opgeslagen)
De schatting is dat ik per jaar per werkmap 100 tot 900 van deze werkmappen binnen krijg.
Die mappen worden als volgt opgeslagen <<willekeurigenaam>>_00001.xls, <<willekeurigenaam>>_00002.xls etc.
Layout en opbouw van deze werkmappen is gelijk.
Vandaar dat ik er niet zo happig op ben om alle data handmatig te moeten verwerken.
 
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
 
gelukt!

Bovenstaande macro doet precies dat wat ik wilde.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan