Zellinhalt in Kopfzeile
#1
Hallo,

ich möchte einen Zellinhalt in die Mitte der Kopfzeile des Gesamten Dokuments also aller aktiver Tabellenblätter schreiben lassen (.CenterHeader =)

Grundsätzlich komme ich soweit das ich ein Modul erstellen muss, für das Tabellenblatt und dann Bezug auf die Zelle nehmen muss.


Ich habe diese Quelle von Bernd junker gefunden:

Private Sub Worksheet_Activate()
    With ActiveSheet.PageSetup
            .LeftHeader = Range("A1")
            .CenterHeader = Range("B1")
            .RightHeader = Range("C1")
    End With
End Sub

in dem Makro Fehlt mir aber der Bezug auf die Tabelle in der der Wert steht. 

Für mich wäre es super zu lernen wenn ein paar worte dabei stehen könnten: was der Befehl gerade macht, da die Erklärungen selbst in dem Buch was ich mir zugelegt habe etwas undurchsichtig sind.
Vielen Dank für eure Hilfe.
Top
#2
Hallo co-moi,

nimm einfach
.LeftHeader = Worksheets("hier steht der Name").Range("A1")


Gruß,
Lutz
Top
#3
Ok also versteh ich das richtig Bernd Junker schreibt das Makro auf ein worksheet und sagt dann von dem machst du das bitte.

@Lutz der Befehl kommt dann in das Modul unter allen Tabellenblättern mit bezug auf das worksheet("xy"),

kleine Frage "" sind immer wichtig? oder bedeuten "" nur schreib hier den begriff rein den ich brauche

Danke!
Top
#4
Hallo co-moi,

das von Dir vorgegebene Makro kommt in das Blatt:

Private Sub Worksheet_Activate()
    With ActiveSheet.PageSetup
            .LeftHeader = Range("A1")
            .CenterHeader = Range("B1")
            .RightHeader = Range("C1")
    End With
End Sub


Es ist ein Worksheet_Activate, wird also immer ausgeführt, wenn das Blatt aktiviert wird (ob das sinnvoll ist, überlasse ich jetzt Dir).

With ActiveSheet.PageSetup
            .LeftHeader = Range("A1")
greift auf die Zelle A1 zu (solange nicht anders definiert Zelle A1 des aktiven Blattes (das Du ja gerade aktiviert hast)).
Mit .LeftHeader = Worksheets("hier steht der Name").Range("A1") kannst Du in die Kopfzeile des aktiven Blatts den Inhalt der Zelle A1 eines anderen Blatts schreiben.
Willst Du die Daten aus Tabelle15 holen, steht da .LeftHeader = Worksheets("Tabelle15").Range("A1").

Gruß,
Lutz


P.S.: Wenn Dein Buch nix taugt, suche mal nach online-Tutorien (z.B. https://www.online-excel.de). Da bekommst Du die grundlegendsten Grundlagen und darauf kannst Du aufbauen.
Top
#5
Moin!
Nutze das Workbook_Sheetactivate(byval Sh as Worksheet) in DieseArbeitsmappe!
Fehler nicht ausgeschlossen, sitze gerade nicht am Rechner.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Top
#6
Code:
Sub M_snb()
    ActiveSheet.PageSetup.CenterHeader = "&P von &N Pages" & [A1]
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Top
#7
So nach einigen Youtube-Tutorials wird VBA immer logischer.

Nochmal Danke für eure Geduld und Unterstützung!

Was bedeutet wenn ich das Tabellenblatt "aktiviere" heißt das anklicken einblenden oder was bedeutet aktivieren?
Top
#8
Hallöchen,

aktivieren ist im Prinzip wie einzeln anklicken und dadurch zur Ansicht und Bearbeitung in den "Vordergrund" holen.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#9
(24.09.2019, 08:19)Lutz Fricke schrieb: P.S.: Wenn Dein Buch nix taugt, suche mal nach online-Tutorien (z.B. https://www.online-excel.de). Da bekommst Du die grundlegendsten Grundlagen und darauf kannst Du aufbauen.

Vielen Dank für diesen Input!
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste