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

Wenn Zelle gefüllt dann Bild einfügen/ transparent

Wenn Zelle gefüllt dann Bild einfügen/ transparent
01.07.2016 09:16:54
Rene
Hallo zusammen,
ich benötige ein Makro, der ein Bild oder Grafik sichtbar macht nur wenn 2 Kriterien erfüllt sind.
Anbei auch mal ein Screenshot
wenn B7 und J7 gefüllt sind soll er den Pfeil (gelber Kreis) sichtbar machen.
Ich danke schon im Voraus :)
lg
René
Userbild

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wenn Zelle gefüllt...
01.07.2016 09:47:54
Rene
Gute Idee,
leider der falsche Pfeil und ich habe dann später noch bestimmte Bilder die auch per Makro eingeführt werden soll, zb. Anbei das Screenshot( der Pfeil ist ein Bild)
Userbild

AW: Wenn Zelle gefüllt...
01.07.2016 09:58:22
Bernd
Hi,
nun gut, aber mit einem Bild kann ich auch nichts anfangen, besser ist eine Beispieldatei,
lasse deshalb mal auf offen.
lg Bernd

Anzeige
AW: Wenn Zelle gefüllt...
01.07.2016 10:06:48
Rene
Hi,
leider ist die Orginaldatei zu groß, ich hab es versucht nachzubauen, wie in meiner Datei, bloss mit anderen Bildern.
https://www.herber.de/bbs/user/106670.xlsx
Ich hoffe es hilft dir :)
Wenn du noch etwas benötigst, sag Bescheid :)
lg

AW: Wenn Zelle gefüllt...
01.07.2016 10:44:50
Michael
Hi zusammen,
das geht z.B. so (Code unter "Tabelle1" kopieren):
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row  2 Then Exit Sub
If Target.Column = 2 Then
If Target  "" And Target.Offset(, 4)  "" Then
Shapes("Pfeil nach rechts 1").Visible = msoCTrue
Else
Shapes("Pfeil nach rechts 1").Visible = msoFalse
End If
Else
If Target.Column = 6 Then
If Target  "" And Target.Offset(, -4)  "" Then
Shapes("Pfeil nach rechts 1").Visible = msoCTrue
Else
Shapes("Pfeil nach rechts 1").Visible = msoFalse
End If
End If
End If
End Sub
Schöne Grüße,
Michael

Anzeige
AW: Wenn Zelle gefüllt...
01.07.2016 11:12:09
Rene
Hi Michael,
funktioniert perfekt im BSP-Datei bloss nicht so ganz in der richtigen, wie ist das mit verbundenen Spalten muss ich sie mit berücksichtigen.
Saplte B bis F ist verbunden
Spalte J bis N ist verbunden
Ab Zeile 7 bis 8 sind verbunen
Der pfeil liegt in Spalte H
Michael wie muss ich dann dein Code anpassen?
lg
und vielen Dank

AW: Wenn Zelle gefüllt...
01.07.2016 11:31:40
Rene
Michael,
ich habe dir mal den Reiter als Orginaldatei reingesetzt.
https://www.herber.de/bbs/user/106673.xlsx
Das ist die Orginaldatei.

Anzeige
dann so
01.07.2016 13:37:34
Michael

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Const Z1 = "$B$7", Z2 = "$J$7"
Const PfeilName = "Pfeil nach rechts 4"
If Target(1).Address = Z1 Or Target(1).Address = Z2 Then
If Range(Z1)  "" And Range(Z2)  "" Then
Shapes(PfeilName).Visible = msoTrue
Else
Shapes(PfeilName).Visible = msoFalse
End If
End If
End Sub
Bei Z1 und Z2 gibst Du die Adresse der linken, oberen Zelle des verknüpften Bereichs ein, PfeilName ist der Name Deiner Grafik: wenn Du die anklickst, erscheint der Name links neben der Bearbeitungsleiste im Namensbereich: leider ist er so lange, daß er nicht ganz sichtbar ist, das macht aber nix: und wenn Du da reinklickst, ist der komplette Name markiert und Du kannst ihn mit Strg+c in die Zwischenablage und von da in den VB-Editor kopieren.
Schöne Grüße,
Michael

Anzeige
AW: dann so
01.07.2016 14:01:42
Rene
Michael,
ich danke dir :) der Code ist perfekt aber ein kleines Problem habe ich :D in der Zelle steht eine Formel :( nun ist da so ein Konflikt.
Diese Formel:
=WENN(UND(Plan!$B$32"";Plan!$B$38"");VERKETTEN(Plan!$M$38;" Teile");WENN(UND(Plan!B32""; Plan!B33="");VERKETTEN(Plan!M32;" Teile";"");""))
kann ich das umgehen :D?
lg Rene
Sorry das ich vor den Wochenende, solche Probleme verursache.

AW: dann so
01.07.2016 14:35:58
Michael
Hi,
in welcher Zelle und welcher Konflikt?
Kann sein, daß das Worksheet_Change durch Wertänderungen bei FORMELN nicht ausgelöst wird; dann nimmst Du ersatzweise das _Calculate-Ereignis.
LG,
Michael

Anzeige
AW: dann so
01.07.2016 15:14:45
Rene
Hi Michael,
danke für die schnelle RM.
Genau das Problem Formel funtkioniert nicht wenn die Formel enthalten ist, habe dies jetzt angepasst aber dadurch sagt er mit "Fehler beim Kompilieren"
Anbei der Screenshot.
Userbild

AW: dann so
01.07.2016 16:14:14
Michael
... oder einer Prozedur mit demselben Namen:
das deutet darauf hin, daß bereits ein WS_Calculate existiert.
Nee: Calculate kennt kein Target: dann sieht das so aus:
Private Sub Worksheet_Calculate()
Const Z1 = "$B$7", Z2 = "$J$7"
Const PfeilName = "Pfeil nach rechts 4"
If Range(Z1)  "" And Range(Z2)  "" Then
Shapes(PfeilName).Visible = msoTrue
Else
Shapes(PfeilName).Visible = msoFalse
End If
End Sub

eigentlich sogar einfacher, aber dafür wird es IMMER aufgerufen, wenn Du was änderst, d.h. es bremst das System aus.
Naja, man kann nicht alles haben. Aus Performancegründen würde ich dann doch das Beispiel von Bernd wählen - alles andere ist optischer Schnickschnack um den Preis von vergeudeter Rechenleistung...
Schöne Grüße,
Michael

Anzeige
AW: dann so
01.07.2016 16:17:16
Rene
Hi Michael,
ich danke dir :)
werde dein BSP. nehmen und wünsche dir ein schönes Wochenende.
lg

ok, Dir auch, LG Michael owT
01.07.2016 16:22:03
Michael

377 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige