Avatar billede avalon116 Nybegynder
30. april 2003 - 13:51 Der er 16 kommentarer og
1 løsning

et andet ark

endnu engang i relation til spm:
http://www.eksperten.dk/spm/338876

Hvis jeg vil referere til en celle i et andet ark, hvad skal der så stå i stedet for "Range("B3")"?
Avatar billede kabbak Professor
30. april 2003 - 13:54 #1
Worksheet("ark1").Range("B3")
Avatar billede kabbak Professor
30. april 2003 - 13:56 #2
der manglede lige et s

Worksheets("ark1").Range ("B3")
Avatar billede avalon116 Nybegynder
30. april 2003 - 14:01 #3
jeg kan ikke få det til at du - det må være fordi den i eksemplet kun vil opdatere, når der ændres i det aktuelle ark, eller hvordan?
Avatar billede kabbak Professor
30. april 2003 - 14:05 #4
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rFooter As Range
    Set rFooter = Worksheets("ark1").Range ("B3")
   
    If Not Intersect(Target, rFooter) Is Nothing Then
        With ActiveSheet.PageSetup
            .LeftFooter = .LeftFooter = "&""Arial Black,Fed kursiv""&14" &
rFooter

            .CenterFooter = ""
            .RightFooter = ""
        End With
    End If

Set rFooter = Nothing
End Sub

er det ikke denne makro du har
Avatar billede kabbak Professor
30. april 2003 - 14:09 #5
Hov makroen skal bare ligge i det ark du har range("b3") på

så kan du droppe det med    Set rFooter = Worksheets("ark1").Range ("B3")

og kun bruge Range ("B3")
Avatar billede avalon116 Nybegynder
30. april 2003 - 14:09 #6
jo det er - bortset fra
.LeftFooter = .LeftFooter = "&""Arial Black,Fed kursiv""&14" &
der står ikke ".LeftFooter" to gange i min.

Men hvornår vil ovenstående makro lade sidefoden opdatere sig? Når jeg ændrer værdien i celle B3 i Ark1?
Avatar billede avalon116 Nybegynder
30. april 2003 - 14:10 #7
jamen det er jo det der er udfordringen
jeg vil gerne referere til en celle i et andet ark. Så jeg kun behøver at opdatere denne cellen een gang. Og så skal sidefoden i alle de andre ark ændre sig.
Avatar billede kabbak Professor
30. april 2003 - 14:11 #8
;-)) ja en copy fejl fra min side
Avatar billede kabbak Professor
30. april 2003 - 14:19 #9
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rFooter As Range
Set rFooter = Range("B3")
For Each ws In Worksheets
If ws.Name <> "Data" Then
Worksheets(ws.Name).Select

    If Not Intersect(Target, rFooter) Is Nothing Then
        With ActiveSheet.PageSetup
            .LeftFooter = "&""Arial Black,Fed kursiv""&14" & rFooter
            .CenterFooter = ""
            .RightFooter = ""
        End With
    End If

End If
Next
Set rFooter = Nothing

End Sub

denne skriver til sidsfoden i alle ark

sæt den in i det atk hvor du ændre B3
Avatar billede avalon116 Nybegynder
30. april 2003 - 14:20 #10
problemet er at jeg bruger koden til alle ark på nær forsiden. Det vil sige at jeg skal ind ov ændre i alle ark for at få sidefødderne til at opdatere sig.

Så tænkte jeg at man måske kune nøjes med at ændre på forsiden? Eller at det ikke er når cellen ændrer sig at sidefoden sættes, men ved åbning eller lign?
Avatar billede kabbak Professor
30. april 2003 - 14:23 #11
If ws.Name <> "Data" Then
ret "Data" til navnet på det ark der ikke skal opdateres
Avatar billede kabbak Professor
30. april 2003 - 14:26 #12
Du skal kun rette i det ark hvor du skriver teksten til sidefoden, og der er også under det ark makroen skal ligge
Avatar billede avalon116 Nybegynder
30. april 2003 - 14:32 #13
det virker - meget elegant, og tusind tak
Avatar billede avalon116 Nybegynder
30. april 2003 - 14:44 #14
øh, der er lige en bivirkning:
når man ændrer på en vilkårlig celle i det ark, der indeholder koden, så hopper den til det sidste ark. Det er lidt irriterende
Avatar billede kabbak Professor
30. april 2003 - 14:53 #15
Worksheets("arknavn").Select

Sæt denne ind sidst lige før end sub

ret navnet til det ark den skal stoppe på
Avatar billede kabbak Professor
30. april 2003 - 14:59 #16
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rFooter As Range
Set rFooter = Range("B3")
If Target.Row = 3 And Target.Column = 2 Then ' = B3
For Each ws In Worksheets
If ws.Name <> "Data" Then
Worksheets(ws.Name).Select

    If Not Intersect(Target, rFooter) Is Nothing Then
        With ActiveSheet.PageSetup
            .LeftFooter = "&""Arial Black,Fed kursiv""&14" & rFooter
            .CenterFooter = ""
            .RightFooter = ""
        End With
    End If

End If
Next
Set rFooter = Nothing
Worksheets("ark1").Select
End If
End Sub


Så laver den kun noget hvis du ændrer i B3
Avatar billede avalon116 Nybegynder
30. april 2003 - 15:04 #17
jep den er god, tak for det også
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