Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Farbabfrage beim starten
#1
Question 
Hallo zusammen,

brauche bißchen Hilfe von euch, und zwar:

Ich möchte beim starten Abfrage durchführen und eventuell ein Makro ausführen, wenn die Bedienung zustimmt.


Zitat:Sub workbook_open()

Dim Gruen As Long
Gruen = RGB(42, 237, 27)
Debug.Print Worksheets("System34").Cells(2, 23).Interior.Color
Debug.Print Worksheets("System34").Cells(2, 23).Interior.ColorIndex
If Worksheets("System34").Cells(2, 23).Interior.Color = Gruen Then
  MsgBox "Es ist grün"
Else
  MsgBox "andere Farbe"
End If
End Sub


Mit diesen Code frage ich immer beim start nach Zellefarbe und je nach dem wird ein oder der andere Nachricht gebracht. Soweit funktioniert alles! 

Ich möchte jetzt aber folgendes: Es soll die Farbe von einem Objekt/Form(statt die Zelle) abgefragt werden.. Habe schon verschiedene Ansätze statt die .Cell(2, 23). mit Form-Name usw.. aber leider ohne Erfolg.

Könnt ihr mir bitte ein Tipp geben wie ich die Code ersetzten soll?

LG Andre


Angehängte Dateien
.xlsm   Farbabfrage.xlsm (Größe: 14,81 KB / Downloads: 4)
Antwortento top
#2
Hallöchen,

aufgezeichnet habe ich das Einfärben:

Code:
Sub Makro1()
'
' Makro1 Makro
'

'
    ActiveSheet.Shapes.Range(Array("Rectangle 1")).Select
    With Selection.ShapeRange.Fill
      .Visible = msoTrue
      .ForeColor.RGB = RGB(255, 255, 0)
      .Transparency = 0
      .Solid
    End With
End Sub

und dann hab ich das draus gemacht:

Code:
Sub Makro1a()
MsgBox ActiveSheet.Shapes.Range(Array("Rectangle 1")).Fill.ForeColor
End Sub
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
Antwortento top
#3
Hallo Andre,

vielen dank für dein Einsatz, aber ich glaube wir haben uns bißchen falsch verstanden oder ich verstehen was falsch  Huh

Beim starten soll folgendes passieren: wenn die Farbe im Bild1 tatsächlich grün(RGB(42, 237, 27)) ist, dann soll Makro ausgeführt sein.

Ich kriege hin, dass ich Farbe von der Zelle abfragen kann und wenn der Wert übereinstimmt, dann wird mein Makro ausgeführt.. Aber ich möchte nicht von der Zelle, sondern von meinen Bild(in dem Fall Knopf der Name "Bild1" hat) und wenn der Bild1 die Farbe grün(RGB(42, 237, 27)) hat, dann wird Makro ausgeführt oder wenn nicht zustimmt, dann MsgBox oder nichts... 

Hoffentlich ist jetzt mein Anliegen bißchen verständlicher  Angel

LG Andre
Antwortento top
#4
Hi

Dein Grün ist (42, 237, 27)
Code:
Dim Gruen As Long
Gruen = RGB(42, 237, 27)
If Worksheets("System34").Shapes("Bild1").Fill.ForeColor = Gruen Then
  MsgBox "Es ist grün"
Else
  MsgBox "andere Farbe"
End If
Ich stelle fest, du hattest noch nicht die Zeit dir meinen Code anzusehen.
https://www.clever-excel-forum.de/Thread...ung?page=2

Gruß Elex
Antwortento top
#5
Hallo Andre,

Deine ursprüngliche Frage war nach einem Objekt/Form und mein Codebeispiel soll Dir zeigen, wie man so etwas anfangen kann. Man zeichnet einfach den Code zum Einfärben auf - nimmt natürlich die entsprechende Farbe - und hat damit eine Basis für die umgekehrte Aufgabe, das Auslesen selbiger. Das Aufzeichnen klapt zwar nicht immer, manchmal kommt gar kein code, manchmal läuft er nicht, und oft kann man ihn noch deutlich optimieren, aber wenn er läuft ist doch schon mal was.

Das mit dem optimieren kannst Du auch im Vergleich von meinem und Elex' Beispiel probieren, schaue mal auf die Teile der betreffenden Codezeile

Shapes.Range(Array("Rectangle 1"))
--> bei Dir dann Shapes.Range(Array("Bild1"))

und

Shapes("Bild1")

und probiere aus, ob beides läuft Smile
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
Antwortento top
#6
Andre, Elex

vielen Dank euch! Ich wusste, dass man vorher entsprechende Tabelle zuweisen/anwählen muss und dann das Bild. Habe auch probiert verschiedene Möglichkeit, aber leider doch noch irgendwo gescheitert. 


Zitat:Deine ursprüngliche Frage war nach einem Objekt/Form und mein Codebeispiel soll Dir zeigen


Hallo  Andre,
es tut mir leid, es klappt bei mir vielleicht nicht immer mein Problem genau zu schildern, aber in Zukunft versuche ich mich zu ändern! Ich habe eine quadratische Form erstellt und die dann als Bild1 genannt. Somit habe ich auch gemeint Objekte und Formen  Blush


Zitat:Ich stelle fest, du hattest noch nicht die Zeit dir meinen Code anzusehen
Hallo Exel,


ich schaue mir wirklich jede Code an(vor allem wenn verschiedene Einsätze zu gleichen Problem gezeigt werden, versuche immer Unterschiede und Einsatzweise zu verstehen. es klappt natürlich nicht immer gleich. 1) an meinen VBA-Kenntnissen und zum 2-ten als glücklicher Familien Vater mit 2 kleinen Kinder komme ich leider nicht so oft dazu mir genau alle Beispiele zu studieren(auf Aufbau). Aber ich Beschrifte und sammle mir die alle und immer wenn freie Fenster ist gehe ich die noch mal durch  Blush

Ich bin euch allen wirklich Dankbar für eure Unterstützung - das hilft mir wahnsinnig viel!  23

LG Andre
Antwortento top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste