Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1968to1972
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

Transparenz von Bildern in Abhängigkeit von Zellwert

Transparenz von Bildern in Abhängigkeit von Zellwert
05.03.2024 11:33:05
Thomas Eu.
Hallo!

Ich suche nach einer Möglichkeit, Bilder in Abhängigkeit eines Zellwertes ein- und auszublenden.

Die Bilder sollen dabei alle übereinander liegen und wenn ich z.B. Bild A und B sehen möchte, aber C nicht, dann gibt es eben die dann gebe ich bei A und B ein "ja" in eine bestimmte Zelle und bei C eben ein "Nein".

Eine Möglichkeit ist sicherlich die Transparenz per Visual Basic für jedes Bild zu setzen. Da bekomme ich aber die Programmierung nicht hin. Bin aber auch für alternative Möglichkeiten offen.

In dem Beispiel sollte er das Gesicht und die Brille im Rahmen anzeigen. Setze ich einen Wert auf "Nein", sollte er dem entsprechend genau das Bild nicht anzeigen, oder auf Transparent setzen.

https://www.herber.de/bbs/user/167550.xlsx

Hat jemand eine Idee, oder den passenden VisualBasic Code?

Grüße
Thomas

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Transparenz von Bildern in Abhängigkeit von Zellwert
05.03.2024 11:58:21
MCO
Hi!
Ins modul des Sheets

Private Sub Worksheet_Change(ByVal Target As Range)


Dim ber As Range
Set ber = Application.Intersect(Range("B6:B8"), Target)
If Not ber Is Nothing Then Shapes(Target.Offset(, -1)).Visible = Target.Value = "ja"
End Sub


Gruß, MCO
AW: Transparenz von Bildern in Abhängigkeit von Zellwert
05.03.2024 12:07:11
daniel
Hi
Transparenz hilft dir im konkreten Beispiel nicht viel, da die Bilder sich nicht überdecken, oder in dem Bereich liegen, der aus der transparenten Farbe besteht (das siehst du daran, dass du im Bild Rahmen die Rahmenlinien der Zellen sehen kannst, dh dieser Bereich ist sowieso Transparent.

du brauchst hier einfaches Ein- und Ausblenden, dafür ist die .Visible-Eigenschaft des Shapes zuständig.

du kannst beispielsweise diesen Code verwenden.
der Code funktioniert, wenn ab Zelle A6 in Spalte A die Namen der Bilder stehen und in Spalte B daneben "ja" für sichtbar jeder andere Text für unsichtbar.
das Makro ermittelt die Größe des Zellbereichs automatisch, so dass du den Code nicht ändern musst, wenn du weitere Bilder hinzufügst.

Private Sub Worksheet_Change(ByVal Target As Range)

Dim rng As Range
Dim Zelle As Range
Set rng = Range("A6").CurrentRegion 'relevanter Zellbereich

If Not Intersect(Target, rng.Columns(2)) Is Nothing Then
For Each Zelle In Intersect(Target, rng.Columns(2)).Cells
ActiveSheet.Shapes(Zelle.Offset(0, -1)).Visible = (Zelle.Value = "ja")
Next
End If
End Sub


Gruß Daniel
Anzeige
AW: Transparenz von Bildern in Abhängigkeit von Zellwert
11.03.2024 08:16:20
Thomas Eu.
Hallo MCO,

was müsste ich an deiner Version ändern, damit sich die Grafiken bei jeder Änderung des Formelwertes automatisch ändern, ohne auf einen Inputbereich zu achten (die kommen von ganz vielen Stellen in der Datei).

Ich hab den Beitrag einfach mal wieder als ungelöst eingestellt, damit der letzte Teil der Frage noch auffällt.

Grüße
Thomas
AW: Transparenz von Bildern in Abhängigkeit von Zellwert
05.03.2024 12:24:34
Thomas Eu.
Hallo Ihr beiden!

Erstmal vielen Dank für eure angebotene Hilfe.

Leider sind beide Beispiele schon klar über meinem VBA-Limit. Ich bekomme die Makros nicht ans laufen/eingefügt.

Könnte jemand meine Beispieldatei anpassen?

Grüße
Thomas
Anzeige
AW: Transparenz von Bildern in Abhängigkeit von Zellwert
05.03.2024 12:41:40
daniel
kopiere die Codes und füge sie ins Modul "Tabelle1" deiner Beispieldatei ein, dann sollte es funktionieren
mehr ist es nicht.
Gruß Daniel
AW: Beispielmappe
05.03.2024 13:06:52
Thomas Eu.
Besten Dank ebenfalls an dich. Funktioniert identisch.

Genau wie bei Daniel, aber die gleiche Frage::

Die Felder Funktionieren nur, wenn ich diese selber beschreibe.

Die Felder sollten aber eine Formel enthalten (grundsätzlich irgend eine, gegebenenfalls auch sehr komplex und lang, welche 50 verschiede Dinge abprüft), welche am Ende ein Ja/Nein ausgibt. Je nach Ausgabe der Formel, sollte die Grafik gezeigt, oder nicht gezeigt werden.

Aktuell muss ich das Feld mit der Formel immer noch einmal manuell auswählen und bestätigen. Erst danach reagiert das Bild auf den Eintrag der Zelle.

Kann man das auch automatisieren?

Grüße
Thomas
Anzeige
AW: Beispielmappe
05.03.2024 14:04:05
MCO
Hi!

Im Grunde ist das schon fertig.
Der Code arbeitet jetzt nur, wenn in B6:B8 was geändert wird. Wenn da eine Formel drin steht, ändert sich zwar das Ergebnis, aber nicht der Inhalt der Zelle (die Formel).
Also musst du den Bereich auf Änderung prüfen, der auch tatsächlich zur Änderung des Formelergebnisses Führt.

Du Kannst du ja auch Namenbereiche vergeben.
Markiere alle Zellen, die zur Eingabe notwendig sind (STRG+anklicken) und schreibe dann oben links die Benennung rein. Anpassen ggf über den Namensmanager.

Beispielsweise heißen deine Eingabezellen "Inputbereich"
Den Formelbereich leg ich als Range "Formelbereich" fest

Private Sub Worksheet_Change(ByVal Target As Range)


Dim ber As Range
Dim Formelbereich As Range

If Target.Count > 1 Then Exit Sub 'zur Sicherheit, nicht mehr als 1 Zelle auf einmal ändern
Set Formelbereich = Range("B6:B8")
Set ber = Application.Intersect(Range("Inputbereich"), Target)

If Not ber Is Nothing Then
For Each Zelle In Formelbereich
Shapes(Zelle.Offset(, -1)).Visible = Zelle.Value = "ja"
Next
End If
End Sub


Dann läufts.

Gruß, MCO
Anzeige
AW: Beispielmappe
05.03.2024 15:41:41
Thomas Eu.
Ich hab jetzt mal die Lösung von Daniel genommen (die ist noch kürzer und funktioniert noch einfacher.

Aber an euch beide herzlichen Dank!"

Grüße
Thomas
AW: Beispielmappe
07.03.2024 10:14:43
Thomas Eu.
Hallo MCO,

was müsste ich an deiner Version ändern, damit sich die Grafiken bei jeder Änderung des Formelwertes automatisch ändern, ohne auf einen Inputbereich zu achten (die kommen von ganz vielen Stellen in der Datei).

Grüße
Thomas
AW: Beispielmappe
06.03.2024 06:19:27
MCO
Moin!

Ja, kürzer isses.
Allerdings wird auch jedesmal die Neubewertung ausgeführt, bei jeder Berechung. In meiner Version wird nur überprüft, wenn relevante Berechnung durchgeführt wird.
Wenn deine Tabelle eh nix anderes an Berechnung enthält als nur die Werte für die Anzeigefelder, dann ist das auch in Ordnung.

Gruß, MCO
Anzeige
AW: Beispielmappe
06.03.2024 08:07:44
Daniel
Das funktioniert aber nur, wenn die für die Berechnung verwendeten Eingabezellen auf dem selben Tabellenblatt liegen wie die Formeln selbst. Referenzieren die Formeln jedoch auch auf Zellen auf anderen Blättern, müsstest du dort ebenfalls ein Change-Event anlegen.

Wenn's wegen permanenter Neuberechnung ein Problem gibt, könnte man mein Makro noch so erweitern, dass nur die Shapes verändert werden, bei denen es erforderlich ist.
Das Abfragen einer Eigenschaft erzeugt immer weniger Aufwand als das Verändern, so dass mit dieser Erweiterung es kein Problem sehr sein sollte, wenn auf dem Blatt noch andere Berechnungen durchgeführt werden:

if Shape.Visible > Wunschwert Then Shape.Visible = Wunschwert
Anzeige
AW: Transparenz von Bildern in Abhängigkeit von Zellwert
05.03.2024 13:00:52
Thomas Eu.
Ha! Cool! Funktioniert! Danke!

Aber, jetzt noch eine Sache:

Die Felder Funktionieren nur, wenn ich diese selber beschreibe.

Die Felder sollten aber eine Formel enthalten (grundsätzlich irgend eine, gegebenenfalls auch sehr komplex und lang, welche 50 verschiede Dinge abprüft), welche am Ende ein Ja/Nein ausgibt. Je nach Ausgabe der Formel, sollte die Grafik gezeigt, oder nicht gezeigt werden.

Aktuell muss ich das Feld mit der Formel immer noch einmal manuell auswählen und bestätigen. Erst danach reagiert das Bild auf den Eintrag der Zelle.

Kann man das auch automatisieren?

Grüße
Thomas

Anzeige
AW: Transparenz von Bildern in Abhängigkeit von Zellwert
05.03.2024 14:12:44
daniel
Hi
wenn die Zellen in Spalte B eine Formel enthalten und somit berechnet wird, ob ein Bild sichtbar ist, dann probiere mal diesen Code im Modul Tabelle1 (den anderen löschen)

Private Sub Worksheet_Calculate()
Dim Zelle As Range
For Each Zelle In Range("A6").CurrentRegion.Columns(2).Cells
ActiveSheet.Shapes(Zelle.Offset(0, -1)).Visible = (Zelle.Value = "ja")
Next
End Sub

das Calculate-Makro wird ausgeführt, wenn eine Formel im Tabellenblatt neu berechnet wird.

Gruß Daniel
AW: Transparenz von Bildern in Abhängigkeit von Zellwert
05.03.2024 15:42:45
Thomas Eu.
Perfekt. Kompakte kurze und voll funktionierende Lösung!

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige