Type1Cruizer
Nieuwe gebruiker
- Lid geworden
- 24 jul 2012
- Berichten
- 1
Beste Mensen,
Ben nieuw op dit forum maar zit met een probleem waarvan ik het antwoord hier niet heb kunnen vinden. Ik werk als vakantie werker op de administratie van een bedrijf. Ik ben bezig met het herstructureren en het makkelijker maken in het gebruik van de begrotingsbestanden die met Excel zijn gemaakt. Het gaat hier om 1 hoofdbestand met meerdere bronbestanden. In het hoofdbestand zitten meerdere koppelingen naar deze bronbestanden. Wanneer de begrotingsbestanden gekopieerd wordt naar een nieuw jaar, wordt in de bestandsnaam het jaartal verandert in het nieuwe begrotingsjaar. So far so good maar alle koppelingen in het hoofdbestand moeten dan ook gewijzigd worden naar het nieuwe boekingsjaar. Ctrl-f en dan vervangen is geen optie omdat elk bestand dan opnieuw geselecteerd moet worden, te veel werk… Daarom ben ik wat gaan snuffelen en kwam op twee dingen uit; doormiddel van de formule INDIRECT of doormiddel van een macro. Met de INDIRECT formule kreeg ik niet het gewenste resultaat omdat alle bestanden hiervoor elke keer geopend moet zijn, te veel bestanden dus te veel werk… dus heb ik een macro gemaakt. Deze macro werkt de koppelingen bij wanneer het jaartal in het pad van de verwijzing wijzigt. De macro haalt gegevens op uit een bepaalde cel waarin het volgende staat:
=("'w:\Budget\Budget "&$A$1&"\Budgetbestanden\["&A5&" "&B5&" Budget "&$A$1&".xls]FTE'!$E$54")
A1= Hier staat het desbetreffende jaartal in.
A5= Dit is het grootboeknummer, worden meerdere nummers gebruikt dus moet wijzigen.
B5= Dit is de naam dat bij het desbetreffende grootboeknummer hoort, wijzigt ook elke keer.
E54= Dit is de cel waar uit de gegevens opgehaald moeten worden. De verwijzing zegmaar.
Het wijzigen van dit jaartal gebeurt door dit in een cel aan te geven. Wanneer er dan op een knop wordt gedrukt, die ik ook als macro gemaakt hebt, wordt de andere macrocode in werking gezet en wordt de verwijzing bij gewerkt. Hierdoor zou wanneer alles gekopieerd wordt naar een nieuwe map voor het nieuwe begrotingsjaar alleen het jaartal hoeven te worden veranderd en op de knop worden gedrukt om alles bij te werken.
Nu het probleem, deze macro werkt perfect maar kan maar 1 cel op die manier wijzigen, wanneer ik een reeks in geeft krijgen alle cellen uit de reeks de uitkomst van de eerste cel. De code is de volgende
Sub haalop()
ThisWorkbook.Sheets("Totaaloverzicht").Range("k5").Value = "=" & Range("j5").Value & ""
End Sub
Deze code zou herhaalt moeten worden voor ongeveer 260 cellen in kolom richting, dus voor k5, k6, k7, enz. omdat het mij niet echt handig lijkt om 260 die code te moeten herschrijven vroeg ik mij af of hier niet een mogelijkheid in is? Ik heb zelf geprobeerd met een loop maar dit was geen succes. Nu moet ik ook eerlijk zeggen dat ik van macro’s eigenlijk geen kaas gegeten heb
en het meeste mij toch een beetje abracadabra is. Dus liefst uitleggen in jip en janneke taal.
Voor het verduidelijke heb ik een voorbeeld bestandje hier aangehangen. Hoop dat het duidelijk is wat ik bedoel.
Ben nieuw op dit forum maar zit met een probleem waarvan ik het antwoord hier niet heb kunnen vinden. Ik werk als vakantie werker op de administratie van een bedrijf. Ik ben bezig met het herstructureren en het makkelijker maken in het gebruik van de begrotingsbestanden die met Excel zijn gemaakt. Het gaat hier om 1 hoofdbestand met meerdere bronbestanden. In het hoofdbestand zitten meerdere koppelingen naar deze bronbestanden. Wanneer de begrotingsbestanden gekopieerd wordt naar een nieuw jaar, wordt in de bestandsnaam het jaartal verandert in het nieuwe begrotingsjaar. So far so good maar alle koppelingen in het hoofdbestand moeten dan ook gewijzigd worden naar het nieuwe boekingsjaar. Ctrl-f en dan vervangen is geen optie omdat elk bestand dan opnieuw geselecteerd moet worden, te veel werk… Daarom ben ik wat gaan snuffelen en kwam op twee dingen uit; doormiddel van de formule INDIRECT of doormiddel van een macro. Met de INDIRECT formule kreeg ik niet het gewenste resultaat omdat alle bestanden hiervoor elke keer geopend moet zijn, te veel bestanden dus te veel werk… dus heb ik een macro gemaakt. Deze macro werkt de koppelingen bij wanneer het jaartal in het pad van de verwijzing wijzigt. De macro haalt gegevens op uit een bepaalde cel waarin het volgende staat:
=("'w:\Budget\Budget "&$A$1&"\Budgetbestanden\["&A5&" "&B5&" Budget "&$A$1&".xls]FTE'!$E$54")
A1= Hier staat het desbetreffende jaartal in.
A5= Dit is het grootboeknummer, worden meerdere nummers gebruikt dus moet wijzigen.
B5= Dit is de naam dat bij het desbetreffende grootboeknummer hoort, wijzigt ook elke keer.
E54= Dit is de cel waar uit de gegevens opgehaald moeten worden. De verwijzing zegmaar.
Het wijzigen van dit jaartal gebeurt door dit in een cel aan te geven. Wanneer er dan op een knop wordt gedrukt, die ik ook als macro gemaakt hebt, wordt de andere macrocode in werking gezet en wordt de verwijzing bij gewerkt. Hierdoor zou wanneer alles gekopieerd wordt naar een nieuwe map voor het nieuwe begrotingsjaar alleen het jaartal hoeven te worden veranderd en op de knop worden gedrukt om alles bij te werken.
Nu het probleem, deze macro werkt perfect maar kan maar 1 cel op die manier wijzigen, wanneer ik een reeks in geeft krijgen alle cellen uit de reeks de uitkomst van de eerste cel. De code is de volgende
Sub haalop()
ThisWorkbook.Sheets("Totaaloverzicht").Range("k5").Value = "=" & Range("j5").Value & ""
End Sub
Deze code zou herhaalt moeten worden voor ongeveer 260 cellen in kolom richting, dus voor k5, k6, k7, enz. omdat het mij niet echt handig lijkt om 260 die code te moeten herschrijven vroeg ik mij af of hier niet een mogelijkheid in is? Ik heb zelf geprobeerd met een loop maar dit was geen succes. Nu moet ik ook eerlijk zeggen dat ik van macro’s eigenlijk geen kaas gegeten heb

