Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1716to1720
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Vergabe einer variablen Kopfzeile mit Makro

Vergabe einer variablen Kopfzeile mit Makro
16.10.2019 15:44:48
Tobias
Hallo,
ich möchte einem Tabellenblatt im Zuge eines insgesamt umfangreicheren Makros eine (Druck-)Kopfzeile verpassen, die sich aus den (variablen) Eingaben dreier Zellen (B1, B2, B3) und (wiederkehrenden) Text-Elementen zusammensetzt. Wenn ich diesen Namen vorher außerhalb des Makros in einer Zelle B5 auslese, bekomme ich das so hin:
Sub Beispiel ()
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = Range("B5")
.RightHeader = ""
End With
End Sub
Davor ist aber noch ein Zwischenschritt erforderlich, in der Zelle B4 steht folgende Formel: ="Beispiel "&(B1)&" – "&(B2)&" – neu ab "&(B3)
Im Makro lese ich dann (natürlich vor dem Befehl mit der Kopfzeile) die Zelle B4 als reinen Text wie folgt in Zelle B5 aus:
Sub Beispiel ()
Range("B4").Select
Selection.Copy
Range("B5").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub
Eigentlich will ich aber ohne die Umwege einer Formel (B4) und einer Zwischenzelle (B5) alles über das Makro regeln und dort die Eingaben in den drei Zellen B1, B2 und B3 mit dem Standard-Text verbinden. Mein leider erfolgloser („Fehler beim kompilieren, Syntaxfehler“) Versuch:
Sub Beispiel ()
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = "Beispiel "Range("B1")" – "Range("B2")" – neu ab "Range("B3"))
.RightHeader = ""
End With
End Sub
Die Kopfzeile soll dann am Ende z.B. lauten: „Beispiel Gebäude 1 – 102 – neu ab 2019-02“
In die drei B-Zellen wurde also vom Benutzer vorher eingegeben:
B1: Gebäude 1
B2: 102
B3: 2019-02
Danke, Tobias
Noch eine Zusatzfrage bzgl. der Zelle B4: wenn ich die Formel
="Beispiel "&(B1)&" – "&(B2)&" – neu ab "&(B3)
im Text/Formel-Bearbeitungsfeld textlich etwas ändere, wandelt sich sofort der ausgegebene Text („Beispiel – – neu ab “) in die Formel selbst (als Text) um, also mit Gleichheitszeichen, Anführungszeichen etc. und ist damit unbrauchbar. Das lässt mich etwas verzweifeln ... Was mache ich hier falsch?

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Vergabe einer variablen Kopfzeile mit Makro
16.10.2019 16:32:55
Daniel
Hi
spricht was dagegen, die Formel, welche den Text erzeugt, in der Zeile 1 zu platzieren und dann die Zeile 1 als wiederholungszeile zu definieren, so dass sie auf jedem Druckblatt mit ausgegeben wird?
damit würdest du das ganze ohne Makro hinbekommen.
Gruß Daniel
AW: Vergabe einer variablen Kopfzeile mit Makro
16.10.2019 16:42:08
Tobias
Hallo Daniel,
Du meinst, also gar nicht die Kopfzeilenfunktion (ausschließlich) für den Druck zu verwenden, sondern eine „gefakte“ Kopfzeile in Form eines Zelleninhalts in der ersten Zeile? In dem Falle wäre mir die bisherige Lösung lieber ... die erste Zeile soll weiterhin eine sortier-/filterbbare Überschriftszeile bleiben und die Kopfzeile nur beim Druck ausgegeben werden ...
Danke, Tobias
Anzeige
AW: Vergabe einer variablen Kopfzeile mit Makro
17.10.2019 13:02:57
Daniel
war ja nur so ne Idee, wie man die Probleme auch ohne VBA lösen kann.
btw die Zeile 1 kann man auch so verschwinden lassen:
1. nach oben scrollen so dass Zeile 2 oder 3 die erste Sichtbare Zeile ist
2. Fenster fixieren.
Die Tabelle sollte dann naürlich erst in Zeile 3 mit der Überschrift beginnen.
Gruß Daniel
AW: Vergabe einer variablen Kopfzeile mit Makro
17.10.2019 16:07:26
Tobias
Hm, ich weiß ... hier driften meine Ansprüche und meine Fähigkeiten besonders stark auseinander :-/
AW: Vergabe einer variablen Kopfzeile mit Makro
17.10.2019 08:37:32
Pierre
Hallo Tobias,
so klappts:
Sub Kopfzeile()
ActiveSheet.PageSetup.CenterHeader = """Beispiel" & ActiveSheet.Range("B1").Value & " - " &  _
ActiveSheet.Range("B2").Value & " - " & " neu ab " & ActiveSheet.Range("B3").Value & """"
'ActiveSheet.PrintOut
End Sub
Das Left bzw. RightHeader kannst du weg lassen, wenn dort eh nichts stehen soll.
Grundsätzlich war das Problem, dass du nur ein Anführungszeichen vorne stehen hattest. Warum da 3 stehen müssen, frag mich nicht.
Das PrintOut habe ich auskommentiert, sollte gewünscht sein, dass beim Ausführen des Makros ohne Kontrolle die Seite sofort gedruckt wird, kannst du das ' ja weg nehmen.
Gruß Pierre
Anzeige
AW: Vergabe einer variablen Kopfzeile mit Makro
17.10.2019 16:05:22
Tobias
Hallo Pierre,
erstmal super + Danke! Es klappt fast, nur eine Sache bekomme ich nicht weg:
1) Zuerst habe ich vergessen zu schreiben, dass sich die drei B-Zellen auf einem anderen Tabellenblatt (Tabelle2) befinden und nicht auf dem, das die Kopfzeile bekommen soll (Tabelle3) ... das habe ich aber so hinbekommen:
Sub Kopfzeile()
Sheets("Tabelle3").PageSetup.CenterHeader = """Beispiel " & Sheets("Tabelle2").Range("B1"). _
Value & " - " & Sheets("Tabelle2").Range("B2").Value & " - " & " neu ab " & Sheets("Tabelle2").Range("B3").Value & """"
'ActiveSheet.PrintOut
End Sub

2) Nun wird aber die Kopfzeile MIT Anführungszeichen vorne und hinten ausgegeben (auch bei ActiveSheet) und man könnte ja schon vermuten, dass man einfach je eins weglässt ... das funktioniert zwar beim hinteren aber wenn ich vorne eins wegnehme kommt: Fehler beim Komplilieren - Erwartet: Anweisungsende
Vielleicht bezog sich darauf aber bereits Deine Bemerkung mit den Anführungszeichen?
Noch irgendeine Idee?
Grüße, Tobias
Anzeige
AW: Vergabe einer variablen Kopfzeile mit Makro
18.10.2019 10:06:07
Pierre
Hallo Tobias,
ich hatte es so verstanden, dass du die Kopfzeile mit Anführungszeichen drucken willst.
Gut, mit den Sheets, das hast du selbst geschafft.
Ohne Anführungszeichen folgendes:
1. Nimm vor Beispiel 2 AnfZeichen weg, da darf nur eines stehen.
2. Am Ende das '& """"' auch komplett löschen.
Du warst mit deinem ersten Code gar nicht weit weg, es fehlte nur hinter 'Beispiel' noch ein ".
Gruß Pierre
AW: Vergabe einer variablen Kopfzeile mit Makro
18.10.2019 13:54:24
Tobias
Hallo Pierre, klappt nun vollkommen! Besten Dank, Tobias

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige