Bilder dynamisch in Berichte einfügen

Größere Unternehmen haben oft Niederlassungen in anderen Staaten. Das monatliche Berichtswesen aus diesen Niederlassungen folgt in der Regel einer einheitlichen Vorgabe.

Angenommen, du hast die Aufgabe, die monatlichen Meldungen aus den Niederlassungen in die erwünschte Berichtsform zu bringen. Wie wäre es, das Berichtsdesign mit der jeweiligen Nationalflagge ein wenig aufzufrischen?

Excel bietet dazu mehrere Möglichkeiten, von denen ich dir eine reine Excel- und eine VBA-Variante zeigen will.

1. Die Excel-Variante

Diese Informationen sollen u.a. im Kopf des Berichtes zu finden sein:

Berichtkopf1

Der Berichtskopf enthält in C5 den Ort der Niederlassung. Diese kannst du über ein DropDown-Menü auswählen.

Dahinter verbirgt sich die mit der Datenüberprüfung zugelassene Liste “Niederlassung”, die du aus dem Bereich A2:A6 im Blatt “Listen” definiert hast.

Aus dem Bereich B2:B6 hast du die Liste “Länder” erstellt.

bericht1

Abbildungen der Nationalflaggen sind übrigens auf “http://nationalflaggen.de/flaggen-europa.html” zu finden.

Die jeweilige Nationalflagge soll, wie in der Abbildung zu sehen, über der Zelle G5 liegen.

Definiere zunächst einen Namen im Menü Formeln. Der Name soll “Flagge” lauten. Unter bezieht sich auf schreibst du:

=INDIREKT(“Listen!C”&VERGLEICH(Tabelle1!$C$7;Länder;0)+1)

Gehe jetzt im Blatt “Listen” auf die Zelle C2, nicht auf das Bild. Mit Strg + C kopierst du. Gehe jetzt im Blatt “Tabellen1 auf die Zelle G5, rufe in der Zwischenablage Einfügen auf, wähle “Als Bild” und “Verknüpfte Grafik einfügen”. Jetzt liegt das Bild, im Beispiel die dänische Nationalflagge, über G5. Klicke die Flagge an und schreibe in die Bearbeitungszeile “=Flagge”. Das Bild wird jetzt entsprechend dem in C7 ausgewählten Land eingefügt.

Suche eine andere Niederlassung und es wird eine andere Flagge angezeigt.

2. Die VBA-Variante

Das Drop Down-Feld “Niederlassung” und den darauf aufbauenede Ausweis des zugehörigen Landes richte ich analog der obigen Excel-Variante ein. Das Bild soll jedoch über ein Makro eingebelendet und ggf. wieder ausgeblendet werden können.

Berichtkopf1 1

Zuerst deklariere ich die notwendigen Variablen.

“picBild” steht für das einzufügende Bild.

“rngZelle” steht für die Zelle, über die das Bild in das Arbeitsblatt eingefügt werden soll.

“strLand” ist die Variable für das Land.

Und schließlich “strDatei” bezeichnet die Datei mit der jeweiligen Landesflagge.

Den Variablen weise ich Werte zu.

“strLand” bezieht sich auf den Wert in C7.

“strDatei” entsteht aus der Verkettung von strLand und der Dateiextension “.png” für die Bilddatei.

“rngZelle” wird durch das Vorsetzen von “Set” referenziert. “rngZelle” ist G5, darüber soll das Bild eingefügt werden. Schließlich referenziere ich noch “picBild” und weise an, dass die Bilddatei (Pfad&strDatei) eingefügt wird.

Mit “On Error GoTo Fehler” baue ich eine sogenannte Sprungmarke ein. Was sich hinter “Fehler” verbirgt, steht weiter unten im Code. Du erhältst eine Mitteilung per MsgBox, dass das gesuchte Bild nicht gefunden wurde (wenn es tatsächlich nicht vorhanden ist).

Mit .Top und .Left wird die Ausrichtung des Bildes über “rngZelle” bestimmt.

Schließlich wird mit .Name ein kurzer Name vergeben, der im Makro zum Bild löschen gebraucht wird.

Sub BildEinfügen()
Dim picBild As Picture
Dim rngZelle As Range
Dim strLand As String
Dim strDatei As String
strLand=Range(“C7”).Value
strDatei=strLand&”.png”
Set rngZelle=Worksheets(Tabelle1″).Range(“G5”)
On Error GoTo Fehler
Set picBild=Worksheets(“Tabelle1”).Pictures.Insert(“C:\VBA\Bilder\”&strDatei)
picBild.Top=rngZelle.Top
picBild.Left=rngZelle.Left
picBild.Name=”Flagge”
Exit Sub
Fehler:MsgBox (“Das Bild konnte nicht gefunden werden”!)
End Sub

Die Pfadangabe musst du natürlich für dich anpassen.

Willst du das Bild wieder löschen, verwende dieses Makro:

Sub BildLöschen()
Worksheets(“Tabelle1”).Shapes(“Flagge”).Delete
End Sub

Ein Shape ist ein Objekt, das ein Objekt in der Zeichnungsebene, wie beispielksweise eine AutoForm, eine Freihandform, ein OLE-Objekt oder ein Bild, darstellt
cc06a2809c6a43f792843b5816b6b777
Statt der Landesflaggen lassen sich ebenso die Flaggen der Bundesländer, Stadtwappen oder Firmenlogos verwenden. Versuch selbst mal etwas Ähnliches.

Ergänzung am 09.09.2017: Auf Wunsch einiger Leser habe ich für die Excel-Variante eine genauere Anleitung für Excel 2016 geschrieben, die du hier findest:

Bei früheren Excel-Versionen verfahre ähnlich, vor allem bei “Inhalte einfügen”. Wähle dort eventuell eine Verknüpfung.


Entdecke mehr von Clevercalcul

Subscribe to get the latest posts sent to your email.

5 Gedanken zu „Bilder dynamisch in Berichte einfügen“

  1. Hallo Gerhard,
    ich habe versucht das Beispiel anhand der Excel-Variante nachzubauen – bin daran aber gescheitert.
    Eine Beispieldatei wäre hilfreich. Screenshots ebenso. Wie sich das Land mit der Niederlassung mitändert, ist mir auch nicht bewusst.
    Sobald ich das Bild auf die Liste verlinke, kommt die Fehlermeldung: Das Bild ist zu groß und wird abgeschnitten.

    Das ganze immer aus dem Text rauszulesen, ist leider etwas mühsam.
    Vielleicht möchtest du die Anleitung ja noch überarbeiten oder mein Feedback für künftige Projekte mit einbauen.

    Grüße
    Sebastian

    1. Hallo Sebastian,

      vielen Dank für deine Hinweise. Die dazugehörige Datei habe ich in Excel 2007 erstellt, bin aber nun auf Excel 2016 umgestiegen, die Datei ist leider nicht auf meinem Laptop.

      Ich gebe dir recht, es ist schwierig, das Ganze nach meiner Beschreibung zu erstellen.

      Land und Niederlassung: Du hast in einem Blatt “Listen” die Listen “Niederlassung” und “Länder” angelegt. Wählst du jetzt z.B. die Niederlassung Kulmbach, so wird mit dieser Formel, die du im Blatt Tabelle1 in die Zelle C7 schreibst, im Blatt Listen das Land gesucht:

      =BEREICH.VERSCHIEBEN(Listen!A2;VERGLEICH(Tabelle1!C5;Niederlassung;0);1)

      Das Hauptproblem aber sind die Bilder für die Flaggen, das habe ich selbst gemerkt. Insofern ist die VBA-Variante sicherer und auch leichter umzusetzen.

      Ich werde die Datei heraussuchen und dem Beitrag beifügen. Den Beitrag muss ich dann auch noch etwas ergänzen.

      Grüße
      Gerhard

    2. Hallo Sebastian,

      ich habe eine Datei erstellt, allerdings in Excel 2016 und hoffe, dass ich dir damit weiter geholfen habe. Du findest sie als Ergänzung im Beitrag.

      Grüße
      Gerhard

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Entdecke mehr von Clevercalcul

Jetzt abonnieren, um weiterzulesen und auf das gesamte Archiv zuzugreifen.

Weiterlesen

WordPress Cookie Plugin von Real Cookie Banner