• 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.

Getal uit verschillende bestanden optellen

ikheetsjaak

Gebruiker
Lid geworden
22 jun 2007
Berichten
11
Hoi,
Is het mogelijk om in Excel uit verschillende bestanden een getal "staan in dezelfde cel" te halen en deze bijelkaar op te tellen
Het gaat om facturen die in dezelfde map zitten en waar ik het totaal van wil berekenen.
Nog mooier zou zij als ik een nieuwe factuur toevoeg hij deze ook bij het totaal optelt.
Kan zoiets of is dat op deze manier onmogelijk?
 
In Excel is een faktuur een regel (record) met gegevens in een aantal kolommen (velden).
De layout voor een te verzenden faktuur maak je in een werkblad waqarin je de opmaak voor een faktuur regelt en een keuze-optie maakt wlke faktuurgegevens in die opmaak moeten verschijnen.
Fakuren als afzonderlijke bestanden opslaan dateert uit het pré-Excel tijdperk.
 
Dank voor de reacties
Power query is voor mij niet zo snel te begrijpen ik ben maar een amateur
De macro is voor mij denk ik wel genoeg maar werkt nog niet helemaal
Hij haalt alle facturen op na het aanpassen van de extensie "mijn bestanden zijn .xls de laatste x moest weg"
De cel heb ik verandering in J55 omdat daar het totaal staat maar het lijkt alsof hij niets ophaalt of doet ik wat verkeerd?
 
Laatst bewerkt:
Oeps, verander
Code:
cel = "F30"
in
Code:
cel = Range("C3")
 
Als alle werkbladen dezelfde naam hebben kan je perfect de celwaarde uit een gesloten bestand lezen en hoef je niet bestand per bestand te openen.
Bij enkele bestanden zal dit geen verschil maken maar als je enkel honderden facturen hebt staan zal het tijdsverschil meer dan merkbaar zijn.
 
In C3 kan TS het celadres plaatsen waar het factuurbedrag te vinden is, dus J55. Ik had het niet hard geprogrammeerd omdat ik dat adres niet kende. Die F30 was een restant van mijn testbestand.
 
Dat had natuurlijk C1 moeten zijn. Voor de volledigheid nogmaals het document met aangepaste macro.
 

Bijlagen

Hier dan eentje die de totalen uit gesloten bestanden haalt.
Code:
Sub ophalen()
    Dim sPad As String, _
        sBestand As String, _
        sWerkblad As String, _
        sCelVerw As String
 
    sPad = ThisWorkbook.Path & "\"
    sBestand = Dir(sPad & "*.xls")
    sWerkblad = "Blad1"
    sCelVerw = "J55"
    Range("A10") = vbNullString

    Do While sBestand <> ""
        Range("A10").Value = Range("A10").Value + ExecuteExcel4Macro("'" & sPad & "[" & sBestand & "]" & _
                            sWerkblad & "'!" & Range(sCelVerw).Address(True, True, xlR1C1))
        sBestand = Dir()
    Loop
End Sub
Voorwaarde is zoals ik al eerder zei dat de naam van het factuurblad in alle bestanden hetzelfde moet zijn.
Range("A10") is de cel waar het totaal komt. Dit kan je wijzigen naar eigen keuze.
 
Laatst bewerkt:
  • Leuk
Waarderingen: HSV
Beide methoden vergeleken, met 100 factuurbestanden.
Resultaat AHulpje 17 seconden.
Resultaat Warme bakkertje 0,17 seconden.
Chapeau Warme bakkertje, 100 keer zo snel!
P.S. Getest met .xlsx bestanden.
 

Bijlagen

Het is ondertussen meer dan drie jaar geleden dat ik nog een licentie had van Office (gepensioneerd ondertussen). Ik kan dus niet met zekerheid stellen dat het volgende werkt.
Test het volgende:
Open twee bestanden.
Sla bestand 1 op als bestand1.xls
Sla bestand 2 op als bestand2.xls

Vul de vakken A1, A2 en A3 in bestand2.xls
Klik op de cel A1 in bestand1.xls en typ '='.
Klik dan op de cel A1 in bestand2.xls, dan 'Enter'

Sla dan bestand2.xls op en sluit het.

Kopieer dan de cel A1 naar A2 en A3 in bestand1.xls. Met een beetje geluk tonen beide cellen de inhoud van bestand2.xls
Vroeger werkte dit.
Bij het openen van bestand1.xls werden toentertijd zelfs de gegevens van bestand2.xls geüpdated, mocht het zijn dat dit laatste bestand in tussentijd werd gewijzigd.
Ik hoor wel of deze methode nog werkt...
Alvast succes!
 
Terug
Bovenaan Onderaan