Rensa celler med makro (VBA) i Excel
I dagens makrotips skall vi titta på hur vi kan rensa ett formulär automatiskt med hjälp av ett makro. Mer precist ska vi rensa celler med makro. Vi utgår från ett formulär där vi skall skriva in det ledande laget i en serie. För det ledande laget skall anges hemmaarena och antal satta och insläppta mål.
Om ett nytt lag blir ledande lag så är uppgifterna om hemmaarena, antal matcher och mål något som måste bytas ut. Av det skälet vill vi fånga att innehållet i cellen C3 har ändrats.
Här kan du ladda ner Excelfilen
Vi rekommenderar dessa Excelkurser:
www.infocell.se – lärarledda kvalitetskurser i Excel
www.officekurs.se – oslagbar e-kurser i Excel & Office-paketet
Worksheet och Change i kodfönstret
Detta gör vi genom att öppna kodfönstret med ALT + F11. Vi dubbelklickar sedan på Blad1 i projektfönstret, som visas till vänster i bilden nedan. Vi får då se koden för arket till höger i bilden nedan, men det står inget eller kanske bara ”Option Explicit”. Vi måste därför ange vilken händelse vi vill bevaka med kod. Det gör vi genom att i rullgardinen i mitten av bilden välja Worksheet”. Därefter väljer vi händelse Change i rullgardinen till höger.
Excel har nu skapat två så kallade metoder för arket. Vi suddar bort den ena så att vi bara har det kvar som visas i bilden ovan.
Nu är det dags att skriva kod, men eftersom vi bevakar förändringar av arket och eftersom vi själva vill göra förändringar så skulle vi kunna hamna i en evig cirkel som gör att koden upprepar sig själv om och om igen. Därför lägger vi först in en bevakning att det bara är cellen C3 vi vill göra kod för:
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Row = 3 And Target.Column = 3 Then End If End Sub
Det är alltså bara vid förändring av rad 3 och kolumn 3 som vi vill göra något. Det vi vill göra är att radera innehållet i cellerna C4 – C7. Detta kan skrivas:
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Row = 3 And Target.Column = 3 Then Blad1.Cells(4, 3) = "" Blad1.Cells(5, 3) = "" Blad1.Cells(6, 3) = "" Blad1.Cells(7, 3) = "" End If End Sub
Koden granskar nu varje gång vi ändrar något i arket. Om ändringen skett i C3 så rensas cellerna C4:C7.
OBS! Glöm inte spara filen som en .xlsm-fil, dvs makroaktiverad fil, annars förlorar du din kod. Lycka till med att rensa celler med makro 🙂
Kolla även in vår tvådagarskurs Excel VBA & makro i Stockholm City