Avatar billede fajens Mester
02. februar 2023 - 10:29 Der er 6 kommentarer og
1 løsning

Ændring af celle kør macro fejl

Hej
Har denne macro som skal køre når celle F12 arket "tilbud" ændres, og så kopiere indholdet til F12 i arket "ordre", men den melder fejl når den skal selecte celle F12 i arket "ordre"

Hvorfor laver den fejl og kan det løses?
Se kode herunder.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("F12")) Is Nothing Then
Call kopi_format
'MsgBox "Ændret F12"
End If

End Sub

Sub kopi_format()
'
' kopi_format Makro
'

'
    Application.ScreenUpdating = False
    Sheets("tilbud").Select
    Range("F12").Select
    Selection.Copy
    Sheets("ordre").Select
    Range("F12").Select ' Går i stå her
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
    Sheets("tilbud").Select
    Range("F12").Select
    Application.CutCopyMode = False
    Application.ScreenUpdating = True
End Sub
Avatar billede fajens Mester
02. februar 2023 - 10:42 #1
Hej
Har fundet problemet.
Den kaldte macro må ikke ligge på arket, skal ligge ude i projektmappen,
så virker det.
Avatar billede Dan Elgaard Ekspert
02. februar 2023 - 16:31 #2
If Not Intersect(Target, Range("F12")) Is Nothing Then... o.s.v.

Så kan man da vist heller ikke gøre det mere kompliceret :-)

If Target.Address = "$F$12" Then Call kopi_format

En enkelt simple linje kan gøre det :-)
Avatar billede Dan Elgaard Ekspert
02. februar 2023 - 16:36 #3
Nu jeg kigger efter, så behøver du slet ikke nogen "Sub" makro:

If Target.Address = "$F$12" Then Sheet("Ordre").Range("F12").Value = Target.Value

That's it :-)
Avatar billede fajens Mester
02. februar 2023 - 17:14 #4
Hej Dan
Tak for god input, jeg havde allerede slanket mit modul til:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("$F$12")) Is Nothing Then Call kopi_format
end sub

Så det ligner dit svar #2
Dit svar #3 kan jeg ikke bruge da den ikke tager evt. formateringer af teksten med, det er derfor jeg har kald af macro.
En lille fejl i #3 sheet skal være sheets.

Men tak for input
Avatar billede Dan Elgaard Ekspert
03. februar 2023 - 10:43 #5
Så må det være sådan her:

If Target.Address = "$F$12" Then Target.Copy Destination:=Sheets("Ordre").Range("F12")
Avatar billede fajens Mester
03. februar 2023 - 11:55 #6
Tak for det. Den virker fint og tager formateringen med over.

Så det er bestemt bedre end kald af macro.
Avatar billede fajens Mester
06. februar 2023 - 23:27 #7
Jeg har en en flettet celle på 5 kolonner og 3 rækker.

Kan der laves noget som vil virke på flettede celler?
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