Avatar billede pedereg Juniormester
11. juli 2017 - 18:01 Der er 13 kommentarer og
1 løsning

Køre makro automatisk når en celle ændre værdi

Jeg mangler en makro, som kalder en anden makro når en bestemt celle ændres.
Har ledt - men ikke fundet noget, jeg kan bruge
Avatar billede jakobdo Ekspert
11. juli 2017 - 18:20 #1
https://support.microsoft.com/en-us/help/213612/how-to-run-a-macro-when-certain-cells-change-in-excel

Kan du ikke lave en kombi af den der og så kalde den funktion / macro du ønsker, hvis de ønskede celler bliver ændret ?
Avatar billede excelent Ekspert
11. juli 2017 - 18:24 #2
Indsæt denne i aktuel arks kodemodul :

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("aktuel celle")) Is Nothing Then Exit Sub
call din_makro
End Sub

men vær opmærksom på at koden ikke reagerer hvis cellen
ændres via en formel i aktuel celle, ej heller ved farveskift
Avatar billede pedereg Juniormester
11. juli 2017 - 19:14 #3
Min makro ser således ud:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("I1")) Is Nothing Then Exit Sub
Call flaps
End Sub

Men den aktiverer ikke makro, når jeg ændrer i I1
Avatar billede store-morten Ekspert
11. juli 2017 - 20:31 #4
Prøv at fjerne: Exit Sub
Avatar billede excelent Ekspert
11. juli 2017 - 20:40 #5
prøv at indsætte følgende kode i et alm. modul og kør den

Sub test()
Application.EnableEvents = True
End Sub
Avatar billede pedereg Juniormester
11. juli 2017 - 20:59 #6
Beklager - men der er desværre ingen af de omtalte forslag som virker :(
Er der en helt anden vej til problemløsningen?
Avatar billede store-morten Ekspert
11. juli 2017 - 21:21 #7
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("I1")) Is Nothing Then
Call flaps
End If
End Sub
Avatar billede store-morten Ekspert
11. juli 2017 - 21:24 #8
Prøv evt. denne test:

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("I1")) Is Nothing Then

MsgBox "Celle " & Target.Address & " er blevet ændret."

End If
End Sub
Avatar billede store-morten Ekspert
11. juli 2017 - 21:33 #9
Der manglede: Not

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("I1")) Is Nothing Then
Call flaps
End If
End Sub
Avatar billede pedereg Juniormester
11. juli 2017 - 21:40 #10
Hej igen
Jeg kan ikke begribe, at noget, som skulle virke så simpelt ikke virker.
Nu har jeg prøvet med et helt nyt ark og rettet koden til dette:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1")) Is Nothing Then
MsgBox "Ændret A1"
End If
End Sub

Virker de på din version af Excel - det virker ikke på min :( ?
Avatar billede store-morten Ekspert
11. juli 2017 - 22:06 #11
Ja, den virker.

Prøv denne test:

Sub test()
MsgBox Application.EnableEvents
End Sub

Som gerne skal give: True
Avatar billede store-morten Ekspert
11. juli 2017 - 22:08 #12
Private Sub Worksheet_Change(ByVal Target As Range)

Skal ligge på det Ark hvor den skal bruges (ikke på: Denne_projektmappe)
Avatar billede pedereg Juniormester
11. juli 2017 - 22:17 #13
TAK - det var placeringen, som var gal - troede ikke det havde nogen betydning
Avatar billede store-morten Ekspert
11. juli 2017 - 22:22 #14
Velbekomme
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester