Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Grafik in Kopfzeile per VBA

Grafik in Kopfzeile per VBA
06.02.2008 12:41:00
Thomas
Hallo zusammen,
ich habe, wie könnte es anders sein, ein kleines Excel-Problem mit VBA.
Ich möchte mittels VBA eine Grafik, die ich in einem Tabellenblatt vorliegen habe, als Grafik in die Kopfzeile einer neuen Tabelle in der gleichen Arbeitsmappe einfügen.
Hier ist der Code mit dem ich das versuche:
Dim Container As Object
Set Container = Worksheets("Datencontainer")
Container.Shapes(2).Select
Container.Shapes(2).Copy
ActiveSheet.PageSetup.CenterHeader = "&G"
Nur weiss ich an dieser Stelle nicht weiter :-(
Tippe mal, das es wohl auch nicht der richtige Ansatz ist. Allerdings hab ich keine bessere Idee.
Wäre schön wenn mir jemand helfen könnte
Gruß
Thomas

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Grafik in Kopfzeile per VBA
06.02.2008 16:47:00
anton
Hallo Thomas,
vllt hilft dir das hier:

Auszug aus OH:
LeftHeaderPicture-Eigenschaft
Gibt ein Graphic-Objekt zurück, das die Grafik für den linken Abschnitt der Kopfzeile darstellt. _
Wird dazu verwendet, Attribute zur Grafik festzulegen.
Ausdruck.LeftHeaderPicture
Ausdruck   Erforderlich. Ein Ausdruck, der ein PageSetup-Objekt zurückgibt.
Anmerkung
Die LeftHeaderPicture-Eigenschaft ist schreibgeschützt, aber die für sie festgelegten  _
Eigenschaften sind nicht alle schreibgeschützt.
Beispiel
In dem folgenden Beispiel wird eine Grafik mit der Bezeichnung Sample.jpg von Laufwerk C:\
in den linken Abschnitt der Kopfzeile hinzugefügt. In diesem Beispiel wird angenommen, dass
eine Datei mit der Bezeichnung Sample.jpg auf Laufwerk C:\ vorhanden ist.
Sub InsertPicture()
With ActiveSheet.PageSetup.LeftHeaderPicture
.FileName = "C:\Sample.jpg"
.Height = 275.25
.Width = 463.5
.Brightness = 0.36
.ColorType = msoPictureGrayscale
.Contrast = 0.39
.CropBottom = -14.4
.CropLeft = -28.8
.CropRight = -14.4
.CropTop = 21.6
End With
' Enable the image to show up in the left header.
ActiveSheet.PageSetup.LeftHeader = "&G"
End Sub


mfg Anton

Anzeige
AW: Grafik in Kopfzeile per VBA
06.02.2008 17:08:32
Thomas
Danke Anton für den Vorschlag aber es hilft leider nicht.
Es geht ja darum, dass die anzuzeigende Grafik in einer Tabelle des Arbeitsblattes vorliegt und ich diese dann in die Kopfzeile eines neu generierten Arbeitsblattes einfügen möchte.
Vermutlich habe ich nur die Möglichkeit die Bilddatei von der Platte nachzuladen und nicht schon in einem Tabellenblatt bereitzuhalten.
Aber trotzdem nochmal vielen dank.
Thomas
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Grafik in Kopfzeile per VBA einfügen


Schritt-für-Schritt-Anleitung

Um eine Grafik aus einem Tabellenblatt in die Kopfzeile eines neuen Arbeitsblatts einzufügen, kannst Du den folgenden VBA-Code verwenden. Dieser Code nimmt an, dass sich die Grafik bereits in Deinem Arbeitsblatt befindet.

  1. Öffne den Visual Basic for Applications (VBA) Editor in Excel mit ALT + F11.
  2. Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject (DeineArbeitsmappe)" > "Einfügen" > "Modul".
  3. Kopiere und füge den folgenden Code in das Modul ein:
Sub InsertHeaderPicture()
    Dim Container As Worksheet
    Dim NewSheet As Worksheet

    ' Setze das Arbeitsblatt, in dem die Grafik liegt
    Set Container = Worksheets("Datencontainer")

    ' Erstelle ein neues Arbeitsblatt
    Set NewSheet = Worksheets.Add

    ' Kopiere die Grafik
    Container.Shapes(2).Copy

    ' Füge die Grafik in die Kopfzeile des neuen Arbeitsblatts ein
    With NewSheet.PageSetup
        .CenterHeader = "&G"
        .CenterHeaderPicture.Filename = "C:\Temp\HeaderImage.jpg" ' Hier den Pfad zur Grafik anpassen
        .CenterHeaderPicture.Height = 50
        .CenterHeaderPicture.Width = 100
    End With
End Sub
  1. Schließe den VBA-Editor und führe das Makro aus (z.B. über ALT + F8).

Häufige Fehler und Lösungen

  • Fehler: Grafik wird nicht angezeigt.

    • Stelle sicher, dass der Pfad zur Grafik korrekt ist. Du kannst die Grafik auch direkt aus dem Arbeitsblatt kopieren, wie im Beispiel gezeigt.
  • Fehler: "Typen sind nicht kompatibel".

    • Überprüfe, ob die Grafik tatsächlich im angegebenen Arbeitsblatt vorhanden ist und ob Du die richtige Shape-Nummer verwendest.

Alternative Methoden

Falls Du keine VBA-Lösungen verwenden möchtest, kannst Du die Grafik manuell in die Kopfzeile einfügen:

  1. Gehe zu "Seitenlayout".
  2. Wähle "Kopfzeile".
  3. Klicke auf das Bild-Symbol, um eine Grafik auszuwählen.

Diese Methode ist einfacher, erfordert jedoch manuelle Arbeit und ist nicht automatisierbar wie mit VBA.


Praktische Beispiele

Ein häufiges Szenario könnte sein, ein Unternehmenslogo in die Kopfzeile eines Berichts einzufügen. Wenn Du das Logo bereits in einem Arbeitsblatt hast, nutze den oben beschriebenen VBA-Code, um es automatisch in die Kopfzeile einzufügen.


Tipps für Profis

  • Benutze Application.ActiveWindow.View = xlPageLayoutView, um die Kopfzeile direkt im Layout-Modus zu sehen, während Du die Grafiken einfügst.
  • Experimentiere mit den Einstellungen Brightness, Contrast und Crop, um das Aussehen der Grafik in der Kopfzeile zu optimieren.
  • Dokumentiere Deinen VBA-Code gut, um die Wartbarkeit zu erhöhen, besonders wenn Du mit mehreren Grafiken arbeitest.

FAQ: Häufige Fragen

1. Kann ich mehrere Grafiken in die Kopfzeile einfügen? Ja, Du kannst mehrere Kopfzeilenabschnitte verwenden (links, zentriert, rechts), um verschiedene Grafiken einzufügen.

2. Funktioniert dieser Code in allen Excel-Versionen? Der bereitgestellte Code sollte in Excel 2007 und späteren Versionen funktionieren.

3. Wie kann ich die Größe der Grafik in der Kopfzeile anpassen? Du kannst die .Height und .Width Eigenschaften im VBA-Code anpassen, um die Größe der Grafik zu ändern.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige