Zoeken…


Hoe een macro op te nemen

De eenvoudigste manier om een macro op te nemen, is de knop linksonder in Excel: Begin met opnemen Marco-knop

Wanneer u hierop klikt, krijgt u een pop-up waarin u wordt gevraagd de Macro een naam te geven en te beslissen of u een sneltoets wilt gebruiken. Ook wordt gevraagd waar de macro moet worden opgeslagen en om een beschrijving. U kunt elke gewenste naam kiezen, geen spaties toegestaan.

Pop-up om Macro op te nemen

Als u een snelkoppeling aan uw macro wilt toewijzen voor snel gebruik, kiest u een letter die u onthoudt, zodat u de macro snel en gemakkelijk steeds opnieuw kunt gebruiken.

U kunt de macro opslaan in 'Deze werkmap', 'Nieuwe werkmap' of 'Persoonlijke macrowerkmap'. Als u wilt dat de macro die u gaat opnemen alleen beschikbaar is in de huidige werkmap, kiest u 'Deze werkmap'. Als u het wilt opslaan in een geheel nieuwe werkmap, kiest u "Nieuwe werkmap". En als u wilt dat de macro beschikbaar is voor elke werkmap die u opent, kiest u 'Persoonlijke macrowerkmap'.

Nadat je deze pop-up hebt ingevuld, klik je op "Ok".

Voer vervolgens de acties uit die u wilt herhalen met de macro. Als u klaar bent, klikt u op dezelfde knop om de opname te stoppen. Het ziet er nu zo uit:

Stop met opnemen van macro

Nu kunt u naar het tabblad Ontwikkelaars gaan en Visual Basic openen. (of gebruik Alt + F11)

U hebt nu een nieuwe module in de map Modules. Nieuwe modules

De nieuwste module bevat de macro die u zojuist hebt opgenomen. Dubbelklik erop om het te openen.

Ik heb een eenvoudige kopie en plak:

Sub Macro1()
'
' Macro1 Macro
'

'
    Selection.Copy
    Range("A12").Select
    ActiveSheet.Paste
End Sub

Als je niet wilt dat het altijd in "A12" plakt, kun je Relatieve verwijzingen gebruiken door het vakje "Relatieve verwijzingen gebruiken" op het tabblad Ontwikkelaars aan te vinken: Relatieve verwijzingen

Door dezelfde stappen te volgen als eerder, wordt de Macro nu in dit:

Sub Macro2()
'
' Macro2 Macro
'

'
    Selection.Copy
    ActiveCell.Offset(11, 0).Range("A1").Select
    ActiveSheet.Paste
End Sub

De waarde van "A1" wordt nog steeds naar een cel 11 rijen lager gekopieerd, maar nu kunt u dezelfde macro met elke startcel uitvoeren en de waarde van die cel wordt naar de cel 11 rijen lager gekopieerd.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow