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é

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,
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.
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
Um ein Bild in Excel anzuzeigen, wenn eine bestimmte Zelle gefüllt ist, kannst du ein VBA-Makro nutzen. Hier ist eine Schritt-für-Schritt-Anleitung:
ALT + F11
, um den VBA-Editor zu öffnen.Einfügen
> Modul
.Kopiere den folgenden Code in das Modul:
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
PfeilName
an deine Bedürfnisse an.Fehler beim Kompilieren: Dies kann passieren, wenn bereits ein Worksheet_Calculate
existiert. Stelle sicher, dass keine doppelten Prozeduren vorhanden sind.
Bild wird nicht angezeigt: Überprüfe, ob der Name des Bildes (Shape) korrekt ist. Du kannst den Namen sehen, wenn du das Bild auswählst.
Formelkonflikte: Wenn in der Zelle eine Formel steht, die den Wert nicht ändert, könnte das Worksheet_Change
-Ereignis nicht ausgelöst werden. In diesem Fall verwende das Worksheet_Calculate
-Ereignis.
Falls du kein VBA nutzen möchtest, kannst du auch die bedingte Formatierung verwenden, um die Zelle transparent zu füllen, wenn sie nicht gefüllt ist. Das Bild bleibt jedoch immer sichtbar. Eine andere Möglichkeit ist, die Zellen zu verlinken und über einfache Excel-Funktionen zu arbeiten.
Hier sind einige Beispiele, wie du Bilder in Excel anzeigen kannst:
Bild einfügen, wenn Zelle gefüllt ist:
Transparentes Bild:
Fill.Transparency
-Eigenschaft anwendest.Beispiel für eine Formel:
Verwende benannte Bereiche: Anstatt Zelladressen direkt zu verwenden, kannst du benannte Bereiche in deinem VBA-Code verwenden, um die Wartung zu erleichtern.
Performance optimieren: Verwende das Worksheet_Calculate
-Ereignis nur, wenn es notwendig ist, da es jedes Mal ausgelöst wird, wenn eine Berechnung im Arbeitsblatt erfolgt.
Fehlerbehandlung: Füge Fehlerbehandlungsroutinen in deinen Code ein, um unerwartete Probleme zu umgehen.
1. Wie kann ich das Bild transparent machen?
Du kannst die Fill.Transparency
-Eigenschaft im VBA verwenden, um das Bild transparent zu machen.
2. Funktioniert das in allen Excel-Versionen?
Ja, der VBA-Code sollte in den meisten modernen Excel-Versionen funktionieren, einschließlich Excel 2010 und höher.
3. Was ist, wenn ich mehrere Bilder anzeigen möchte?
Du kannst den Code erweitern, indem du zusätzliche Bedingungen für andere Zellen und Bilder hinzufügst.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen