813 Aufrufe
Gefragt in Tabellenkalkulation von
Hallo, ich bin fast am verzweifeln. Ich habe glaube ich das Ende vom Internet erreicht, ohne eine Antwort zu finden.

Ich bekomme aus unserer Software eine Datentabelle die jeweils immer neue Inhalte hat, je nachdem, aus welchem Projekt und welcher Filterung die Liste erzeugt wird.

In dem Tabellenblatt "Daten" sind die Informationen zum Projekt, zum Vorgang (Ticket) und in den Spalten AT-AY sind die URL's zu den Bildern, die zu dem Vorgang (Ticket) gehören. Max. 6 Stück.

Nun habe ich ein neues Tabellenblatt "Protokoll" erstellt und alle relevanten Daten aus der Tabelle Daten schön formatiert über Formeln hineingeholt.

So, jetzt mein Anliegen: Ich möchte wenn es Bilder gibt, diese in den Spalten unter meinen Inhalten als Bilder darstellen.

Beispiel in Zeile 5 des Protokolls sind in 6 Spalten Inhalte aus dem Datenblatt (A05 = eine laufende Nr., B05 = Raumbezeichnung, C05 = ausführende Firma, D05 = Problem, E05 = Frist, F05 = todo Anweisung

Nun soll in die Zeile 6 aus dem Tabellenblatt Daten aus der Spalte AT02 die URL als Bild dargestellt werden = A06.

In B06 soll nun die URL aus dem Tabellenblatt Daten aus der Spalte AU02 als Bild eingefügt werden usw.

Wenn es kein Bild gibt, soll es leer bleiben.

Ich habe einiges gefunden und ausprobiert, leider funktioniert es immer nur dann, wenn die Daten vorhanden sind. Meine Vorlage ist aber "leer" und füllt sich erst nach Aufruf aus der Software.

Hat da jemand eine Idee?

Ich sage schon jetzt erst mal ganz lieben Dank an alle, die sich jetzt den Kopf zerbrechen.

14 Antworten

0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)

Hallo Christiane,

Ich habe einiges gefunden und ausprobiert, leider funktioniert es immer nur dann, wenn die Daten vorhanden sind. Meine Vorlage ist aber "leer" und füllt sich erst nach Aufruf aus der Software.

Wie soll ich das verstehen? Natürlich kannst du nur dann ein Bild einfügen, wenn die Daten vorhanden sind (also die URL bekannt ist und das Bild auch tatsächlich vorhanden ist). Willst du die Bilder per Makro einfügen? Hast du schon ein Makro? Oder wie stellst du dir das vor?

Gruß

M.O.

0 Punkte
Beantwortet von

Hallo, erst mal danke für die schnelle Antwort.

Ja, die Vorlage ist leer, da sich diese befüllt, wenn ich sie aus der Software aufrufe. Nach dem Aufruf stehen in den Feldern im Tabellenblatt "Daten" die url's in den angegebenen Datenfeldern.

Wir haben ein Programm, in dem wir unsere ganzen Gewerke, Einheiten, Vorgänge zu den Einheiten (in anderen Programmen werden diese Tickets genannt) pflegen (Wir sind ein Bauträger). 

Um ein Protokoll zu erstellen, gehe ich in das Programm, wähle die Vorgänge aus, zu denen ich ein Protokoll erstellen möchte, und kann dann über einen Excel-Export die Daten in Excel exportieren. Das funktioniert aber nur mit speziellen Excel-Vorlagen , in denen die Felder in der Tabelle leer sind, da diese über die Anbindung an die SQL-Datenbank gefüllt werden. Wir können alle Excel-Vorlagen bearbeiten und als neue Vorlage hinterlegen. Als Standardvorlage ist dann die von dem Softwarehaus vorgegeben, es muss ein Makro ausgeführt werden, welches alle vorhandenen Daten löscht und erst dann kann ich diese als Vorlage abspeichern und wieder neu aufrufen sonst funktioniert es nicht. 

- Ich hoffe du verstehst überhaupt was ich meine, ist schwer in ein paar Worte zu fassen - 

Ich habe momentan dieses Makro

Function InsertPicFromURL(URL As String) As String
With ActiveSheet.Pictures.Insert(URL)
.Top = Application.Caller.Top + 1
.Left = Application.Caller.Left + 1
.Height = Application.Caller.Height - 2
End With
InsertPicFromURL = ""
End Function

(über Google gefunden :-) )

In der leeren Vorlage stehen Vor und nach dem Aufruf in meinen Feldern, in denen die Formel ist  "#Wert!" (Beispiel =InsertPicFromURL(Daten!$AT$2)). Wenn ich die Formel lösche und noch mal neu eingebe, ist das Bild drin. Ich muss aber jedes Feld für sich löschen und neu eingeben, mit dem Ziehen passt das nicht, dann fügt er auch Bilder ein, wenn keine drin sind.

Also auch noch nicht die richtige Lösung.

Nun steh ich echt auf dem Schlauch und habe überhaupt keine Ahnung, was ich machen könnte. 

Wenn es angebracht ist, könnte ich ja mal die Vorlage (ohne Daten) und die aufgerufene Datei schicken, damit ihr sehen könnt, was ich meine. (Wären alles Dummy Daten, Datenschutz gerettet)

Gruß Christiane

0 Punkte
Beantwortet von beverly_ Experte (3.3k Punkte)

Hi Christiane,

hast du es mal versucht, wenn du noch die Codezeile Application.Volatile zu Beginn der Function ergänzt? Eventuell hilft auch, wenn du F9 (Neuberechnung) drückst.

Bis später, Karin

0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)

Hallo Christiane,

um den Fehlerwert zu unterdrücken, könntest du z.B. mit WENNFEHLER arbeiten:

=WENNFEHLER(InsertPicFromURL(Daten!$AT$2);"")

Ansonsten drücke mal wie von Karin vorgeschlagen F9.
Da über die Function ja ein Bild in die Zelle eingefügt wird, wird dieses Bild beim herunterziehen der Formel mit in die neue Zelle kopiert.
Gruß
M.O.
0 Punkte
Beantwortet von
Hallo Karin, hallo M.O,

ich habe deinen Vorschlag Karin mal ausprobiert, bekomme ich eine Fehlermeldung.

Das funktioniert also nicht.

M.O. Die Wennfehler hatte ich drin, dachte das es daran liegt, dass sich die Felder nicht füllen, habe ich rausgenommen und tut sich nix.

F9 ist bei solchen Dingen immer meine Lieblingstaste, auch das funktioniert leider nicht.

Gruß Christiane
0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)

Hallo Christiane,

füge mal den den folgenden Code in das VBA-Projekt des Arbeitsblattes ein, in dem die Bilder eingefügt werden sollen:

Private Sub Worksheet_Activate()
ActiveSheet.Calculate
End Sub

Damit wird das Blatt neu berechnet, wenn es aktiviert wird. Also nach dem Einlesen der Daten einfach mal kurz in das Datenblatt wechseln und wieder zurück. Schau mal ob das funktioniert.

Gruß

M.O.

0 Punkte
Beantwortet von

Guten Morgen M.O.,

danke für den Code, leider gibt er mir einen Kompilierungsfehler zurück. Das war es leider auch noch nicht.

LG Christiane

0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)
Hallo Christiane,

welchen Fehler zeigt er denn an?

Gruß

M.O.
0 Punkte
Beantwortet von

Hallo M.O. :-) ich hab mal weiter gegoogelt und diesen Code gefunden und eingegeben.

Private Sub Worksheet_Activate() 
 ActiveSheet.Calculate 
End Sub 

Private Sub Worksheet_Change(ByVal Target As Range) 
 ActiveSheet.Calculate 
End Sub  

Wenn ich nun das Protokoll aufrufe, sind tatsächlich die Bilder drin. JUHU.

Allerdings muss die automatische Berechnung ausgeschaltet werden. (Hab ich ausprobiert. Ist die automatische Berechnung angeklickt, bleiben die Felder wieder leer)

Ich entwickle hier im Unternehmen für meine Kollegen und Kolleginnen. Wenn so eine Vorlage fertig ist, habe ich eigentlich nichts mehr damit zu tun. 

Wenn du nun vielleicht eine Idee hast, wie das ganze funktionieren könnte, wenn die Exceleinstellungen bleiben können wie sie sind, wäre ich dir super Dankbar.

"Compilerfehler im ausgeblendeten Modul: Tabelle1"

Das ist die Fehlermeldung, die aufgepoppt ist, nachdem ich deinen Code eingegeben hatte.

Lieben Gruß und einen schönen Tag Christiane

0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)
Hallo Christiane,

was steht denn in der ausgeblendeten Tabelle1? Stehen dort die Daten?  Normalerweise sollte das mit Calculate auch dann funktionieren, wenn die automatische Berechnung eingeschaltet ist. Notfalls kann man aber die automatische Berechnung auch im Code ein- und wieder ausschalten.

Werden die Daten über ein Makro in die Datei eingelesen? Dann könnte man ja auch dort den Calculate-Befehl für das Arbeitsblatt mit den Bildern einbauen.

Gruß

M.O.
...