/ Forside/ Teknologi / Administrative / MS-Office / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
MS-Office
#NavnPoint
sion 18709
refi 14474
Klaudi 9389
Rosco40 5695
berpox 5456
dk 5398
webnoob 4919
Benjamin... 4870
o.v.n. 4637
10  EXTERMINA.. 4373
Celleindhold i sidehoved???
Fra : Brassovitski
Vist : 3033 gange
100 point
Dato : 21-01-11 08:39

Er det muligt i Excel 2010 at indsætte indholdet af en celle i sidehovedet?
F.eks. har jeg teksten "år 2010" i celle A1 i ark 1, jeg har navngivet cellen "År".
Er det så muligt at indsætte en kode i sidehovedet så teksten/tallet i "År" indsættes i sidehovedet og opdateres når indholdet i "År" ændres??


 
 
Kommentar
Fra : Klaudi


Dato : 21-01-11 13:27
Kommentar
Fra : Brassovitski


Dato : 24-01-11 07:44

Hej Klaudi
Tak for tipppet, men så vidt jeg kan se handler tråden på linket, om at indsætte en celle's indhold i sidehovedet, når der printes. Det jeg efterlyser, er når celleindholdet i en bestemt celle skifter/ændres, skal indholdet indsættes i pladsholderen i sidehovedet på 3 af de 4 ark der indgår i Excel projektmappen.
Noget lignende når man opretter pladsholdere/felter ved brevfletning.
Jeg har 2 celler i ark 4, henholdsvis (A1) et årstal, og (A2) periodeangivelse, som skal indsættes i sidehovedet på ark 1,2 og 3, som overskrift og undertitel.


Kommentar
Fra : Klaudi


Dato : 24-01-11 09:44

Hwa' med denne her?

This article contains a sample Microsoft Visual Basic for Applications macro that references
a cell to the header or footer of a worksheet.

http://support.microsoft.com/kb/273028

Kommentar
Fra : Klaudi


Dato : 24-01-11 10:02

Nå kan se det vist er det samme med udskrivning

Kommentar
Fra : Klaudi


Dato : 24-01-11 10:29

Måske denne!

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
ActiveSheet.PageSetup.LeftFooter = Range("A1").Text
End Sub

The macro is run every time Excel does its normal recalculation—meaning every time the contents of any cell changes or someone presses F9. If you want the contents to be in a different part of the footer, you can change LeftFooter to CenterFooter, or RightFooter.

http://excel.tips.net/Pages/T002522_Putting_Cell_Contents_in_Footers.html

Kommentar
Fra : Brassovitski


Dato : 24-01-11 13:03

Hej Klaudi
Jeg kan ikk erigtig få det til at virke.
Nu har jeg prøvet at indspille en macro, men hvordan får jeg den til at køre automatisk, hver gang celleindholdet i A1 rettes/opdatere?
Citat
Sub CelleA1_til_Header()
'
' CelleA1_til_Header Makro
'

'
Range("A1").Select
ActiveCell.FormulaR1C1 = "2010"
Range("A1").Select
Selection.Copy
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = "2010"
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
.LeftMargin = Application.InchesToPoints(0.7)
.RightMargin = Application.InchesToPoints(0.7)
.TopMargin = Application.InchesToPoints(0.75)
.BottomMargin = Application.InchesToPoints(0.75)
.HeaderMargin = Application.InchesToPoints(0.3)
.FooterMargin = Application.InchesToPoints(0.3)
.Zoom = 100
.PrintErrors = xlPrintErrorsDisplayed
.OddAndEvenPagesHeaderFooter = False
.DifferentFirstPageHeaderFooter = False
.ScaleWithDocHeaderFooter = True
.AlignMarginsHeaderFooter = True
.EvenPage.LeftHeader.Text = ""
.EvenPage.CenterHeader.Text = ""
.EvenPage.RightHeader.Text = ""
.EvenPage.LeftFooter.Text = ""
.EvenPage.CenterFooter.Text = ""
.EvenPage.RightFooter.Text = ""
.FirstPage.LeftHeader.Text = ""
.FirstPage.CenterHeader.Text = ""
.FirstPage.RightHeader.Text = ""
.FirstPage.LeftFooter.Text = ""
.FirstPage.CenterFooter.Text = ""
.FirstPage.RightFooter.Text = ""
End With
Range("A1").Select
Application.CutCopyMode = False
End Sub


Kommentar
Fra : Klaudi


Dato : 24-01-11 19:12

Denne opdaterer Header når arket gemmes

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
ActiveSheet.PageSetup.CenterHeader = Range("a1").Value
End Sub

Kommentar
Fra : Brassovitski


Dato : 28-01-11 08:06

Hej Klaudi
Citat
Denne opdaterer Header når arket gemmes

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
ActiveSheet.PageSetup.CenterHeader = Range("a1").Value
End Sub

Er det muligt du kan finde koden for udfør ved edit af celle A1 (Cellen med det indhold der skal i headeren?

Jeg er ikke lige en super haj til VBA, så hvis du kan beskrive hvordan jeg får scriptet/koden lagt ind, vil det være fint.
Jeg er klar over hvordan jeg åbner VBA'editoren. Men skal der ikke deklareres noget først?
Jeg har fire ark i projektmappen. Det er indholdet i celle A1 i ark 4, som skal indsættes i headeren på ark 1,2 og 3.
Hilsen
Brassovitski

Kommentar
Fra : Brassovitski


Dato : 28-01-11 08:07

Er der ikke en kommando der hedder noget i retning af 'OnChange' - 'OnUpdate' eller lignende?

Kommentar
Fra : Klaudi


Dato : 28-01-11 09:24

Åbn VBA editor ALT-F11, dobbeltklik på ThisWorkbook, klik en gang i WorkBook vinduet og indsæt dette i vinduet...

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
ActiveSheet.PageSetup.CenterHeader = Range("A1").Text
End Sub


Nu skule det ligne dette http://peecee.dk/upload/view/286998

Det opdatere Header hver gang der ændres noget...

Kommentar
Fra : Klaudi


Dato : 28-01-11 11:22

Eller denne

Åbn VBA editor ALT-F11, dobbeltklik på Ark4(Ark4), klik en gang i Ark4(Code) vinduet og indsæt dette i vinduet...

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim WS As Worksheet
For Each WS In ActiveWorkbook.Sheets
WS.PageSetup.CenterHeader = Sheets(4).Range("A1").Value
Next
End Sub


Nu skule det ligne dette http://peecee.dk/upload/view/287002

Det skulle ændre Header når A1 ændres på Ark 4

Kommentar
Fra : Brassovitski


Dato : 31-01-11 11:47

Hej klaudi
Nu har jeg prøvet at følge din vejledning, men der bliver ikke indsat noget i headeren?? Hmmmm!

http://peecee.dk/upload/view/287555
Jeg har indsat et klip af headeren i ark 4(ØUS - Øst uden stikledning).

Bemærk cellen indholdet som skal indsættes i headeren på dette ark ligger i celle A1 i ark 5 (Sammenfatning) Skal dette ikke indsættes i koden foran "a1" ...=Range(Sammenfatning!"A1").Text


Kommentar
Fra : Brassovitski


Dato : 31-01-11 11:49

Gør det det hele lidt lettere, hvis celle A1 i arket Sammenfatning f.eks. navngives Titel01?


Kommentar
Fra : Brassovitski


Dato : 31-01-11 13:07

Halløjsa
Nu virker det næsten:
Koden er OK, bortset fra at den opdaterer hver gang jeg hopper til enten A1 eller A2, er det ikke muligt at den kun opdaterer OnChange, altså kun når der rettes i indholdet af enten A1 eller A2?

http://peecee.dk/upload/view/287564

Så har jeg et lille ønske til formateringen.

CenterHeader vil jeg gerne have formateret til en anden skrift, skriftstørrelse, fed, og kursiv.
RightHeader vil jeg gerne have formateret til en anden skrift, skriftsørrelse, og kursiv.

Kan det lægge ind i koden? PLease

Kommentar
Fra : Brassovitski


Dato : 31-01-11 13:13


Citat
Nu virker det næsten:
Koden er OK, bortset fra at den opdaterer hver gang jeg hopper til enten A1 eller A2, er det ikke muligt at den kun opdaterer OnChange, altså kun når der rettes i indholdet af enten A1 eller A2?


Denne klarede jeg selv ved at ændre Worksheet_SelectionChange til kun Worksheet_Change.

Kode
Private Sub Worksheet_Change(ByVal Target As Range)
Dim WS As Worksheet
For Each WS In ActiveWorkbook.Sheets
WS.PageSetup.CenterHeader = Sheets(5).Range("A1").Value
WS.PageSetup.RightHeader = Sheets(5).Range("A2").Value
Next
End Sub


Kommentar
Fra : Brassovitski


Dato : 31-01-11 14:24

Lige en idé mere
det ville jo være smart, hvis header kun opdateres ved ændring i celle A1 henholdsvis A2. Så makroen ikke kører, hver gang der ændres andet i arket.
Kan man sætte en range på Worksheet_Change kommandoen?


Kommentar
Fra : Klaudi


Dato : 31-01-11 17:09

Jeg har nu siddet og rodet med dette, men kan ikke få det til at virke, der kommer fejl hele tiden!

Måske du kan hitte ud af det

Fonts And Font Sizes

You can insert control codes to customize the font, font attributes (bold, italics, etc), and font size. The control code used in the header string is the ampersand &. The code below will create put the follow formatted text in the header.

Some Bold Courier New Size 10 Text

Worksheets("Sheet2").PageSetup.LeftHeader = _
"Some&B&""Courier New""&10 Bold Courier New Size 10&B&""Arial"" Text"

Note that since the font name must be enclosed in quotes in the header string itself, you must use two double quotes in VBA.

See Formatting Codes For Headers And Footers in the VBA help files for a complete list of control sequences.

http://www.cpearson.com/excel/headfoot.htm

Kommentar
Fra : Brassovitski


Dato : 01-02-11 14:30

Hej Klaudi
Nu har jeg fået det til at virke sådan at centerheader kun opdateres når celle A1 ændres, men jeg kan ikke få koden til at fange en ændring i A2. Kan du hjælpe med en rettelse til nedenfor viste?
Formateringen af tekst i header har jeg ikke fået til at virke endnu.

Kode
Private Sub Worksheet_Change(ByVal Target As Range)
Dim WS As Worksheet
If Target.Address = "$A$1" Then
For Each WS In ActiveWorkbook.Sheets
WS.PageSetup.CenterHeader = Sheets(5).Range("$A$1").Value
Next
Else
If Target.Address = "$a$2" Then
For Each WS In ActiveWorkbook.Sheets
WS.PageSetup.RightHeader = Sheets(5).Range("$A$2").Value
Next
End If
End If
End Sub


Kommentar
Fra : Klaudi


Dato : 01-02-11 16:15

Prøv dette, ændring med fed

Private Sub Worksheet_Change(ByVal Target As Range)
Dim WS As Worksheet
If Target.Address = "$A$1" Then
For Each WS In ActiveWorkbook.Sheets
WS.PageSetup.CenterHeader = Sheets(5).Range("$A$1").Value
Next
Else

If Target.Address = "$A$2" Then
For Each WS In ActiveWorkbook.Sheets
WS.PageSetup.RightHeader = Sheets(5).Range("$A$2").Value
Next
End If
End If

End Sub


Kommentar
Fra : Klaudi


Dato : 07-02-11 16:59

Det ville egentligt være rart at få respons på om det virkede

Kommentar
Fra : Brassovitski


Dato : 07-02-11 22:00

Ja selvfølgelig skal du have response på om det virker, jeg er blot temmelig ophængt med andre presserende opgaver lige nu. Men jeg skal nok vende tilbage, når jeg har afprøvet de forskellige muligheder.

Kommentar
Fra : Klaudi


Dato : 07-02-11 22:03

Ok, det er jo bare meget rart at få at vide om det dur eller ik' dur, og du har jo fået celleindhold i header!?

Kommentar
Fra : Brassovitski


Dato : 08-02-11 15:43

Halløjsa
Nu virker koden, så der kun opdateres når der rettes i celle A1 eller i A2.
Citat
Private Sub Worksheet_Change(ByVal Target As Range)
Dim WS As Worksheet
If Target.Address = "$A$1" Then
For Each WS In ActiveWorkbook.Sheets
WS.PageSetup.CenterHeader = Sheets(5).Range("$A$1").Value
Next
Else
If Target.Address = "$A$2" Then
For Each WS In ActiveWorkbook.Sheets
WS.PageSetup.RightHeader = Sheets(5).Range("$A$2").Value
Next
End If
End If
End Sub


Så er der ´'kun' formateringen tilbage at lege med.


Kommentar
Fra : Klaudi


Dato : 11-02-11 10:31

Citat
Så er der ´'kun' formateringen tilbage at lege med.


Så leg du videre med den!

Kommentar
Fra : Brassovitski


Dato : 24-02-11 10:07

Halløjsa
Nu er det lige før jeg har revet alle hårene af hovedet.
Citat
WS.PageSetup.CenterHeader = Sheets(5).Range("$A$1").Value


Så vidt jeg har forstået henter denne stump kode
Citat
Sheets(5).Range("$A$1").Value

indholdet af celle A1 i ark 5, og bruger det til at indsætte i headeren, så min idé var at koden for formatering skal kombineres med denne, men jeg ved ikke lige hvordan. Jeg har forsøgt utallige kombinationer, for at få formatkoder koblet sammen med koden, men uden held.



Kommentar
Fra : Klaudi


Dato : 24-02-11 14:10

Her er det sat ind i A1

Private Sub Worksheet_Change(ByVal Target As Range)
Dim WS As Worksheet
If Target.Address = "$A$1" Then
For Each WS In ActiveWorkbook.Sheets
WS.PageSetup.CenterHeader = "&I&""Verdana""&20 " & Sheets(5).Range("$A$1").Value
Next
Else

If Target.Address = "$A$2" Then
For Each WS In ActiveWorkbook.Sheets
WS.PageSetup.RightHeader = Sheets(5).Range("$A$2").Value
Next
End If
End If

End Sub

Kommentar
Fra : Klaudi


Dato : 24-02-11 15:37

og når du nu om lidt spørger om farve, så kan jeg ikke få det til at virke da jeg "kun" har 2003 udgaven, det skulle være muligt fra 2007,
f.eks. &KFF0000 er rød (FF 00 00)
sort (000000) osv

Kommentar
Fra : Brassovitski


Dato : 24-02-11 17:52

Hej Klaudi
Jeg har ikke lige prøvet dit sidste forslag af endnu, det gør jeg nok i morgen.
Jeg var for nylig på et Excel kursus, hvor vi legede lidt med Macroer og betinget formatering. Hvis der skal gøres noget med farver kan man i de fleste tilfælde skrive farvens navn, der var blot en enkelt farve der ikke virkede, på denne måde, jeg husker ikke lige hvilken, ellers skal man kunne bruge den hexadecimale kode for farven, som du skriver. Jeg ser lige om jeg får lidt tid til at eksperimentere lidt i morgen.


Kommentar
Fra : Brassovitski


Dato : 25-02-11 08:47

Hej
Jeg har fundet et link til Excel color index.

Citat
http://www.mvps.org/dmcritchie/excel/colors.htm


Min kode ser ud som følger nu og virker. Jeg har heller ikke fået det med farve til at virke.
Jeg er lidt i tvivl om man skal bruge hexkoder eller Excel formen (color 10)?

Citat
Private Sub Worksheet_Change(ByVal Target As Range)
Dim WS As Worksheet
If Target.Address = "$A$1" Then
For Each WS In ActiveWorkbook.Sheets
WS.PageSetup.CenterHeader = "&B&I&""Calibri""&20 " & Sheets(5).Range("$A$1").Value
Next
Else
If Target.Address = "$A$2" Then
For Each WS In ActiveWorkbook.Sheets
WS.PageSetup.RightHeader = "&I&""Verdana""&9 " & Sheets(5).Range("$A$2").Value
Next
End If
End If
End Sub

Macroen lægger indholdet i celle A1 (ark 5) i center header på alle 5 ark, formateret med fed, kursiv, fint Calibri, punkt 20.
Indholdet af celle A2 (ark 5) i right header på alle 5 ark, formateret normal, kursiv, font Verdana, punkt 9.
Så det virker fint nu.
Til Klaudi - Skal jeg holde tråden åben, indtil en af os har fået det med farve til at virke, eller skal jeg lukke den?

Kommentar
Fra : Klaudi


Dato : 25-02-11 09:29

Citat
Skal jeg holde tråden åben

Tjae så ender den vel med at blive annulleret og jeg har ikke mulighed for at teste farve, da det ikke virker i excel 2003


Color formatting code
The code to set color is:
&K[color] where [color] is a 6 digit hexadecimal color value.
http://msdn.microsoft.com/en-us/library/bb225426(v=office.12).aspx

Kommentar
Fra : Brassovitski


Dato : 25-02-11 17:35

Nej da
Spørgsmålet skal da ikke Annulleres, der er da rigtig mange gode hints at hente her.
Jeg kigger lige lidt på det med farver i løbet af næste uge.
God weekend

Kommentar
Fra : Klaudi


Dato : 25-02-11 18:20

Ok, go'weekend

Accepteret svar
Fra : Klaudi

Modtaget 100 point
Dato : 02-04-11 12:56

Nå hvo'n går det med farverne? nu er der jo ik' længe til at ? annulleres!

Kommentar
Fra : Brassovitski


Dato : 03-04-11 15:08

Halløjsa
Har desværre været ret ophængt med arbejde i den sidste tid, så jeg må indrømme, at jeg ikke har fået kigget nærmere på det. pørgsmål annulleres vel ikke automaisk?

Kommentar
Fra : Klaudi


Dato : 03-04-11 15:51

Citat
Spørgsmål annulleres vel ikke automaisk?


Jo



Kommentar
Fra : Brassovitski


Dato : 04-04-11 09:54

Det har jeg da aldrig været udsat for før. Hvor står det i brugerbetingelserne? Jeg kan da heller ikke se nogen udløbsdato på spørgsmålet?


Kommentar
Fra : Brassovitski


Dato : 04-04-11 15:22

YES
Så lykkedes det at få teksten i header formateret til en bestemt farve.

Kode
Private Sub Worksheet_Change(ByVal Target As Range)
Dim WS As Worksheet
If Target.Address = "$A$1" Then
For Each WS In ActiveWorkbook.Sheets
WS.PageSetup.CenterHeader = "&B&I&""Calibri""&20 " [I][B]& "&K993366"[/B][/I] & Sheets(5).Range("$A$1").Value
Next
Else
If Target.Address = "$A$2" Then
For Each WS In ActiveWorkbook.Sheets
WS.PageSetup.RightHeader = "&I&""Verdana""&9 " [I][B]& "&K0000ff"[/B][/I] & Sheets(5).Range("$A$2").Value
Next
End If
End If
End Sub


Så fandt jeg ud af, hvor koden for farve skal sættes ind for at det virker! Bemærk, jeg tror kun det virker i Excel 2007 og opefter (2010).


Kommentar
Fra : Brassovitski


Dato : 04-04-11 15:24

Øv koderne for Bold og Italic skal selvfølgelig ikke ligge i koden, det var noget jeg gjorde for at fremhæve rettelsen, men koder virker åbenbart ikke i en kodeboks her på Kandu, så her er den lige igen.
Kode
Private Sub Worksheet_Change(ByVal Target As Range)
Dim WS As Worksheet
If Target.Address = "$A$1" Then
For Each WS In ActiveWorkbook.Sheets
WS.PageSetup.CenterHeader = "&B&I&""Calibri""&20 " & "&K993366" & Sheets(5).Range("$A$1").Value
Next
Else
If Target.Address = "$A$2" Then
For Each WS In ActiveWorkbook.Sheets
WS.PageSetup.RightHeader = "&I&""Verdana""&9 " & "&K0000ff" & Sheets(5).Range("$A$2").Value
Next
End If
End If
End Sub



Kommentar
Fra : Brassovitski


Dato : 04-04-11 15:25

Der skal ikke være linjeskift efter Range!

Godkendelse af svar
Fra : Brassovitski


Dato : 04-04-11 15:27

Tak for svaret Klaudi.
Lukker lige spørgsmålet, da vi jo nu ved fælles hjælp har løst den stillede opgave.
Tak for hjælpen undervejs.


Kommentar
Fra : Klaudi


Dato : 04-04-11 16:07

Velbekomme

Her lidt "Kom godt i gang"
http://www.kandu.dk/faq.aspx#25

Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408914
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste