Supportnet / Forum / Tabellenkalkulation
Excel Meldung/Popup
Frage
Hallo,
ich möchte Zellen und Schaltflächen eines Tabellenblattes hinsichtlich Ihrer Farbe durchsuchen und, wenn z.b. eine Zelle bzw. Schaltfläche rot eingefärbt ist, ein Popup bzw. eine Meldung genrieren...habt Ihr eine Idee wie....?!
Danke schön im Voraus
Antwort 1 von Saarbauer
Hallo,
geht aus meiner Sicht nur mit VBA
Hier ein kleiner Anhalt
https://supportnet.de/threads/1132096
Gruß
Helmut
geht aus meiner Sicht nur mit VBA
Hier ein kleiner Anhalt
https://supportnet.de/threads/1132096
Gruß
Helmut
Antwort 2 von JoeKe
Moin Matthi,
für Zellen kannst du folgenden Code nutzen:
Option Explicit
Sub zelle_rot()
Dim zelle_rot As Range, i As Integer, strTemp As String
i = 0
For Each zelle_rot In Range("A1:F35")
If zelle_rot.Interior.ColorIndex = 3 Then
i = i + 1
strTemp = strTemp & zelle_rot.Address(False, False) & ", "
End If
Next
If strTemp = "" Then
MsgBox "Es wurden keine rotgefärbte Zelle gefunden."
ElseIf i = 1 Then
MsgBox strTemp & " ist rot!"
ElseIf i > 1 Then
MsgBox strTemp & " sind rot!"
End If
End Sub
In diesem Beispiel wird der Bereich A1:F35 nach roten Zellen durchsucht. Das Ergebnis wird in einer MsgBox ausgegeben.
Gruß
JöKe
für Zellen kannst du folgenden Code nutzen:
Option Explicit
Sub zelle_rot()
Dim zelle_rot As Range, i As Integer, strTemp As String
i = 0
For Each zelle_rot In Range("A1:F35")
If zelle_rot.Interior.ColorIndex = 3 Then
i = i + 1
strTemp = strTemp & zelle_rot.Address(False, False) & ", "
End If
Next
If strTemp = "" Then
MsgBox "Es wurden keine rotgefärbte Zelle gefunden."
ElseIf i = 1 Then
MsgBox strTemp & " ist rot!"
ElseIf i > 1 Then
MsgBox strTemp & " sind rot!"
End If
End Sub
In diesem Beispiel wird der Bereich A1:F35 nach roten Zellen durchsucht. Das Ergebnis wird in einer MsgBox ausgegeben.
Gruß
JöKe
Antwort 3 von JoeKe
Hallo Matthi,
hier der Code zum zweiten Teil deiner Frage:
Sub Schaltflächen_rot()
Dim I As Integer, strWert As String
I = 0
For I = 1 To ActiveSheet.OLEObjects.Count
If ActiveSheet.OLEObjects(I).Object.BackColor = 255 Then
strWert = strWert & ActiveSheet.OLEObjects(I).Name & ", "
End If
Next
If strWert = "" Then
MsgBox "Keine Schaltfläche ist rot!"
Else
MsgBox "Die Schaltfläche(n) " & strWert & " ist/sind rot!"
End If
End Sub
Gruß
JöKe
hier der Code zum zweiten Teil deiner Frage:
Sub Schaltflächen_rot()
Dim I As Integer, strWert As String
I = 0
For I = 1 To ActiveSheet.OLEObjects.Count
If ActiveSheet.OLEObjects(I).Object.BackColor = 255 Then
strWert = strWert & ActiveSheet.OLEObjects(I).Name & ", "
End If
Next
If strWert = "" Then
MsgBox "Keine Schaltfläche ist rot!"
Else
MsgBox "Die Schaltfläche(n) " & strWert & " ist/sind rot!"
End If
End Sub
Gruß
JöKe
Antwort 4 von Matthi
Hallo JöKe,
prima....danke ! Geht das ganze auch für Autoformen,
Kreise...Rechtecke die mit einem Makro versehen sind ?
Nochmal Danke
Gruß
prima....danke ! Geht das ganze auch für Autoformen,
Kreise...Rechtecke die mit einem Makro versehen sind ?
Nochmal Danke
Gruß
Antwort 5 von JoeKe
Moin Matthi,
ja so:
Option Explicit
Sub Schaltflächen_rot()
Dim I As Integer, strWert As String
I = 0
For I = 1 To ActiveSheet.Shapes.Count
If ActiveSheet.Shapes(I).Fill.ForeColor.SchemeColor = 10 Then
strWert = strWert & ActiveSheet.Shapes(I).Name & ", "
End If
Next
If strWert = "" Then
MsgBox "Keine Schaltfläche ist rot!"
Else
MsgBox "Die Schaltfläche(n) " & strWert & " ist/sind rot!"
End If
End Sub
Gruß
JöKe
ja so:
Option Explicit
Sub Schaltflächen_rot()
Dim I As Integer, strWert As String
I = 0
For I = 1 To ActiveSheet.Shapes.Count
If ActiveSheet.Shapes(I).Fill.ForeColor.SchemeColor = 10 Then
strWert = strWert & ActiveSheet.Shapes(I).Name & ", "
End If
Next
If strWert = "" Then
MsgBox "Keine Schaltfläche ist rot!"
Else
MsgBox "Die Schaltfläche(n) " & strWert & " ist/sind rot!"
End If
End Sub
Gruß
JöKe
Antwort 6 von Matthi
Hallo JöKe,
beim ausführen letzterer funktion bekomme ich einen
"Laufzeitfehler -2147024809(80070057) Der angegebene Wer liegt ausserhalb des gültigen Bereichs"
Debug-Verweis aus Zeile If ActiveSheet.Shapes(I).Fill.ForeColor.SchemeColor = 10 Then.
ich probiere und probiere bekomme den aber nicht weg.
beim ausführen letzterer funktion bekomme ich einen
"Laufzeitfehler -2147024809(80070057) Der angegebene Wer liegt ausserhalb des gültigen Bereichs"
Debug-Verweis aus Zeile If ActiveSheet.Shapes(I).Fill.ForeColor.SchemeColor = 10 Then.
ich probiere und probiere bekomme den aber nicht weg.
Antwort 7 von JoeKe
Moin Matthi,
das kann ich leider so nicht nachvollziehen. Kannst du eventuell eine Beispieldatei hochladen? Z.B. bei netupload.
Gruß
das kann ich leider so nicht nachvollziehen. Kannst du eventuell eine Beispieldatei hochladen? Z.B. bei netupload.
Gruß
Antwort 8 von Matthi
Hallo JöKe,
hier der entsprechende Link:
http://www.netupload.de/detail.php?img=d73c0a1daa54cc3a45140a9b1d755601.xls
ich habe deinen code mal in einer neuen tabelle probiert. läuft natürlich einwandfrei. mit meinem gefährlichen halbwissen kann ich nur spekulieren
Danke nochmal. Gruß
hier der entsprechende Link:
http://www.netupload.de/detail.php?img=d73c0a1daa54cc3a45140a9b1d755601.xls
ich habe deinen code mal in einer neuen tabelle probiert. läuft natürlich einwandfrei. mit meinem gefährlichen halbwissen kann ich nur spekulieren
Danke nochmal. Gruß
Antwort 9 von JoeKe
Moin Matti,
also in diener Beispieldatei kann ich, zumindest was meinen Code angeht, keinen Fehler finden.
Wenn ich das Makro "Rechteck158_BeiKlick" ausführe, wird mir in einer MassageBox angezeigt, dass die Schaltfläche Argon rot ist.
Gruß
JöKe
also in diener Beispieldatei kann ich, zumindest was meinen Code angeht, keinen Fehler finden.
Wenn ich das Makro "Rechteck158_BeiKlick" ausführe, wird mir in einer MassageBox angezeigt, dass die Schaltfläche Argon rot ist.
Gruß
JöKe
Antwort 10 von Matthi
Hallo Jöke
probiert und probiert...jetzt funzt es einwandfrei.
danke nochmal !
gruß
probiert und probiert...jetzt funzt es einwandfrei.
danke nochmal !
gruß

