Avatar billede Klaus W Ekspert
15. september 2022 - 08:37 Der er 12 kommentarer og
1 løsning

kør makro når celle ændres excel

Hej, jeg ved dette spørgsmål har været oppe oge vende i forummet før.
Men jeg kan simpelthen ikke få en macro til at køre når jeg ændre tallet i en celle. Cellen indholder en formel. Jeg bruger denne VBA-kode og lægger den i arket hvor cellen der ændres ligger.
På forhånd tak
Klaus W

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("a9")) Is Nothing Then
Call border1
End If
End Sub
Avatar billede store-morten Ekspert
15. september 2022 - 09:00 #1
Står formlen i A9?

Så kan det ikke lade sig gøre.
Avatar billede Jan K Ekspert
15. september 2022 - 09:11 #2
Hvis du ændrer A9 ved at ændre en anden celle, så formlen genberegner, så ret Range i

If Intersect(Target, Range("a9")) Is Nothing Then

til den celle, du taster i.
Avatar billede Klaus W Ekspert
15. september 2022 - 09:32 #3
Hej store-morten
Ja det gør den men den kan laves på en anden måde, tallet kommer fra et andet faneblad men samme celle

KW
Avatar billede Klaus W Ekspert
15. september 2022 - 09:33 #4
Hej Jan K

det er celle A9 i fanebaldet "Prisliste"

KW
Avatar billede store-morten Ekspert
15. september 2022 - 09:43 #5
Så du ændre på fanebaldet "Prisliste" celle A9.

Så prøv at lægge koden der.
Avatar billede store-morten Ekspert
15. september 2022 - 09:45 #6
Nu ved vi ikke hvad: Call border1
Så det kan evt. blive nødvendig at skifte faneblad før den køres.
Avatar billede jens48 Ekspert
15. september 2022 - 09:53 #7
En lille, men vigtig detalje: det mangler et "Not" i

If Intersect(Target, Range("a9")) Is Nothing Then

Skal være

If Not Intersect(Target, Range("a9")) Is Nothing Then
Avatar billede Klaus W Ekspert
15. september 2022 - 09:54 #8
Det tror jeg også, i fanebaldet "Prisliste" celle A9 står der ingen ting, og der er her jeg sætter tal ind manuelt. Når jeg gør dette vil jeg gerne køre macroen herunder. Som jeg har lagt i fanebladet "Bestilling".

Sub border1()

Range(Cells(Range(Range("i6").Text).Row, Range(Range("i6").Text).Column), _
Cells(Range(Range("i7").Text).Row, Range(Range("i7").Text).Column)).Borders.LineStyle = xlContinuous


End Sub
Avatar billede store-morten Ekspert
15. september 2022 - 10:07 #9
Prøv at lægge denne på fanebaldet "Prisliste":
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A9")) Is Nothing Then
    Sheets("Bestilling").Select
    Call border1
End If
End Sub
Avatar billede Klaus W Ekspert
15. september 2022 - 10:08 #10
Jeg har vba koden og cellen til
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$k$8" Then
        Call border1
    End If
End Sub

Og så har jeg ændret
Macroen der skal køre til

Sub border1()

Sheets("Bestilling").Select

Range(Cells(Range(Range("i6").Text).Row, Range(Range("i6").Text).Column), _
Cells(Range(Range("i7").Text).Row, Range(Range("i7").Text).Column)).Borders.LineStyle = xlContinuous
End Sub

Men det går stadig ikke

KW
Avatar billede Klaus W Ekspert
15. september 2022 - 10:15 #11
Hej store-morten den fungere jeg takker goddag.

KW
Avatar billede store-morten Ekspert
15. september 2022 - 11:17 #12
Det var godt :-)
#10 forstod jeg ikke.

Velbekomme og goddag

Morten
Avatar billede Klaus W Ekspert
15. september 2022 - 11:54 #13
Det var nok heller ikke så meget at forstå :-) lidt klundtet forklaret KW
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
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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