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

Automatisch bijwerken op achtergrond

  • Onderwerp starter Onderwerp starter denez
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

denez

Gebruiker
Lid geworden
14 aug 2013
Berichten
31
Beste lezer,

Is het mogelijk om in een Excel-bestand de cellen automatisch te laten bijwerken zonder dat het bronbestand geopend hoeft te worden?

Voorbeeld:

Ik heb een template gemaakt waarin ik de kostprijs van een artikel bereken. Ik heb hiervoor een bronbestand aangemaakt waarin in tabblad 1 de machinetarieven staan die worden gebruikt.
In mijn template laat ik d.m.v. een zoekfunctie het juiste tarief van een machine ophalen uit dit bronbestand. In ditzelfde bronbestand heb ik op tabblad 2 een prijsoverzicht gemaakt waarin ik de marge kan zien. Hierin haal ik de kostprijs op uit het template en met de verkoopprijs ernaast kan ik zien hoeveel marge ik heb.

Het zou mooi zijn dat als ik een machinetarief wijzig, ik direct kan zien wat dit met de marge doet, zonder dat ik al m'n calculaties van alle artikelen hoef te openen om het bij te werken.

Ik heb al e.e.a. opgezocht (o.a. hier https://exceloffthegrid.com/getting-values-from-a-closed-excel-workbook/), dus ik ben bang dat ik te gretig ben zo. Maar is hier een soort work-around voor te verzinnen?

Alvast bedankt voor de moeite.

Groet,
Dennis
 
Een bestand waaruit je iets wilt lezen moet altijd eerst geopend zijn.
Dat hoeft niet handmatig maar kan ook met een stukje VBA in de ThisWorkbook sectie.
 
Is jouw prijscalculatie zo ingewikkeld dat deze niet in het bronbestand kan plaatsvinden?
 
Denez,

Als ik het goed begrijp heb je per artikel een bestand(met een calculatie).
Plaats eens een voorbeeld van de calculatie.
 
Laatst bewerkt:
Ook mij lijkt het praktischer de machinetarieven in een apart werkblad(eventueel verborgen) van hetzelfde Excelbestand te zetten.
 
Excuus voor mijn late reactie.
Zie bijlage voor een voorbeeld van een stuklijstcalculatie.

Aangezien we nogal veel stuklijsten hebben vrees ik dat het bestand erg onoverzichtelijk wordt als we elke stuklijstcalculatie als nieuw werkblad wordt toegevoegd.
Uiteraard is het meest praktische als ik de bronbestanden en calculaties allemaal in één bestand heb.

De calculaties zijn helemaal niet ingewikkeld, maar het idee was dat als er tarieven wijzigen, we dit in een bronbestand aanpassen en dat dit dan automatisch wordt doorgerekend in alle afzonderlijke calculaties, zodat je niet handmatig tig stuklijsten moet doorlopen en wijzigen.
 

Bijlagen

Er van uitgaande dat de prijscalculaties in dezelfde map staan als het Bronbestand.
druk Alt+F11 selecteer links Thisworkbook en kopieer/plak beide codes in het venster.
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Workbooks("Bronbestanden.xlsx").Close SaveChanges:=True
End Sub

Code:
Private Sub Workbook_Open()

Workbooks.Open ThisWorkbook.Path & "\Bronbestanden.xlsx"
End Sub

Daarna het bestand opslaan als xlsm of xlsb (bestand met macro's)
 
Goedemorgen Albert,
Bedankt voor je reactie. Het klopt dat de prijscalculaties en het bronbestand in dezelfde map staan.
Moet ik de codes plakken in de stuklijstcalculatie? In dat geval krijg ik bij het sluiten van het bestand de foutmelding 'Fout 9 tijdens uitvoering: Het subscript valt buiten het bereik'.
Bij foutopsporing arceert hij de tweede regel van de eerste code.

Wat zou deze code doen?
 
De calculaties zijn helemaal niet ingewikkeld, maar het idee was dat als er tarieven wijzigen, we dit in een bronbestand aanpassen en dat dit dan automatisch wordt doorgerekend in alle afzonderlijke calculaties, zodat je niet handmatig tig stuklijsten moet doorlopen en wijzigen.
Daarvoor heeft MS AddIns uitgevonden.

Zou het niet verstandig zijn eerst eens wat grondiger kennis te nemen van Excel alvorens dit 'probleem' aan te pakken ?
 
Code moet inderdaad in Prijscalculatie.
Foutmelding komt doordat het bestand Bronbestanden niet geopend is.
Wijzig de code in:
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
 On Error Resume Next                                       [COLOR="#008000"]'als het bestand niet meer openstaat volgende regel overslaan[/COLOR]
 Workbooks("Bronbestanden.xlsx").Close SaveChanges:=True   [COLOR="#008000"] 'sluit het bestand Bronbestanden en wijzigingen opslaan[/COLOR]
End Sub
of
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim wb As Workbook
For Each wb In Workbooks
    If wb.Name = "Bronbestanden.xlsx" Then Workbooks("Bronbestanden.xlsx").Close SaveChanges:=True
Next
End Sub
Wat zou deze code doen?
citaat van snb:VBA is een taal die je moet leren met een grammatica- en een woordenboek.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan