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

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

Statt der Landesflaggen lassen sich ebenso die Flaggen der Bundesländer, Stadtwappen oder Firmenlogos verwenden. Versuch selbst mal etwas Ähnliches.

Advertisements

Autor: Gerhard Pundt

Auf meiner Site https://clevercalcul.wordpress.com geht es um die Tabellenkalkulation mit Excel. Es wird über Funktionen, Diagramme, Basiswissen u.a.m. geschrieben.

2 Kommentare zu „Bilder dynamisch in Berichte einfügen“

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s