Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1612to1616
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
Farbe von Form ändern und Zahl in Zelle
12.03.2018 14:58:50
Form
Hallo zusammen,
folgendes Problem:
Ich habe bereits folgendes Makro geschrieben, dass meine Formen in vier verschiedenen Farben _
durch Klick erscheinen lässt:

Sub Umfarben()
Dim Farbe(0 To 4)
Farbe(0) = RGB(242, 242, 242)
Farbe(1) = vbGreen
Farbe(2) = vbYellow
Farbe(3) = vbRed
Farbe(4) = RGB(166, 166, 166)
With ActiveSheet.Shapes(Application.Caller).Fill.ForeColor
Select Case .RGB
Case Farbe(0): .RGB = Farbe(1)
Case Farbe(1): .RGB = Farbe(2)
Case Farbe(2): .RGB = Farbe(3)
Case Farbe(3): .RGB = Farbe(4)
Case Farbe(4): .RGB = Farbe(0)
Case Else: .RGB = Farbe(0)
End Select
End With
End Sub

Ich möchte nun noch einfügen, dass wenn die Formen die Farbe(1) einnehmen in einer Zelle die Zahl 1 erscheint und bis Farbe (4) die Zahl 4, um weitere Verbindungen durch Formeln herzustellen.
Jemand eine Idee, wie das geht?
Vielen Dank im Voraus :)!

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Farbe von Form ändern und Zahl in Zelle
12.03.2018 15:21:21
Form
Hi
probier mal diesen Code.

Sub Umfarben()
Dim Farbe(0 To 4)
Dim x
Farbe(0) = RGB(242, 242, 242)
Farbe(1) = vbGreen
Farbe(2) = vbYellow
Farbe(3) = vbRed
Farbe(4) = RGB(166, 166, 166)
With ActiveSheet.Shapes(Application.Caller)
With .Fill.ForeColor
x = Application.Match(.RGB, Farbe, 0)
If VarType(x) = vbError Then x = 4
x = x Mod (UBound(Farbe) + 1)
.RGB = Farbe(x)
End With
.TopLeftCell.Value = x
End With
End Sub

da du nicht angegeben hast, wo die Farbnummer hingeschrieben wird, nehme ich die Zelle in der sich die linke obere Ecke des Shapes befindet.
falls du dich fragst, an welcher stelle der Index für die Farbnummer hochgezählt wird:
das geschieht hier etwas versteckt.
Das Array hat den Startindex 0, die Matchfunktion gibt aber die Position des gefundenen Wertes im Array zurück, unabhängig von der Indexnummer.
Dh wird der erste Farbwert mit Index 0 gefunden, ist das Ergebnis der Match-Funktion 1 und nicht 0.
Gruß Daniel
Anzeige
AW: Farbe von Form ändern und Zahl in Zelle
12.03.2018 16:02:41
Form
Habe ich gerade ausprobiert, der Vorschlag hat leider nicht geklappt.
Vielleicht habe ich mein Problem nicht ausreichend erklärt.
Ich habe 24 Formen, die durch Klick die Farben ändern.
Nun möchte ich, dass wenn Form 1 grün ist (Farbe 1) in Zelle S12 eine 1 eingefügt wird. Für gelb 2, rot 3 und grau 4.
Für Form 2 dann in Zelle S13.
Form 3 Zelle S14....
Ist es nun klarer geworden?
AW: Farbe von Form ändern und Zahl in Zelle
12.03.2018 16:15:51
Form
Hi
ja, deine Erklärungen sind nicht ausreichend.
hatte ich ja schon geschrieben, du hast vergessen zu erwähnen, in welche Zelle der Wert geschrieben werden soll.
auch jetzt bist du ein bisschen knapp mit deinen Erläuterungen:
du schreibst: "der Vorschlag hat leider nicht geklappt"
da wäre es jetzt interessant zu wissen
- was hat nicht geklappt: das Umfärben, das Schreiben des Wertes in die Zelle, beides?
- wie hat sich das "nicht klappen" geäußert: gabs ne Fehlermeldung? wenn ja welche und in welcher Zeile?
wenn nein, was ist passiert und was hätte deinen Wünschen nach passieren sollen?
auf Basis dieser Informationen kann man dann den Code verbessern, aber ein lapidares "hat nicht geklappt" liefert keine Anhaltspunkge dafür, wo man ansetzen muss.
wenn der Wert einfach nur in die falsche Zelle geschrieben wurde, dann musst du den Code dann so erweitern:
Select Case .Name
Case "Form 1": Range("S12").value = x
Case "Form 2": Range("S13").Value = x
usw
end select
wenn man jetzt wüsste, ob es einen berechenbaren Zusammenhang zwischen der Position der Form (.topleftcell) und der Zielzelle gibt, könnte man eventuell was berechnen, aber so musst du die Zielzelle für jede Form einzeln angeben.
Bei Case musst du natürlich den richtigen Namen der Form angeben.
Gruß Daniel
Anzeige
AW: Farbe von Form ändern und Zahl in Zelle
12.03.2018 17:06:01
Form
Hallo,
vielen Dank erstmal für deine Mühen. Verzeih, dass ich erst am Anfang von VBA stehe.
Es wird mir eine Fehlermeldung angezeigt, die ich mir nicht erklären kann:
Laufzeitfehler '-2147352571 (800200005)':
Das Element mit dem angegebenen Namen wurde nicht gefunden.
Und gelb markiert wird daraufhin die Zeile
With ActiveSheet.Shapes(Application.Caller)
Kann ich mir ehrlich gesagt nicht erklären, da dort ja an sich nichts geändert wurde.
Sorry für die lapidare Erklärung!
AW: Farbe von Form ändern und Zahl in Zelle
12.03.2018 17:19:42
Form
Dieser Laufzeitfehler deutet darauf hin, dass dein Excel einen Schuss hat.
Erste Maßnahme ist Excel schließen, Datei neu laden und schauen ob der Fehler reproduzierbar ist.
oder mit einer alten Version der Datei nochmal losstarten und die Änderungen erneut einbauen.
Ansonsten gilt bei der Fehlersuche das gleiche wie bei einer ärztlichen Diagnose:
die wird um so besser, je mehr Informationen über den Patienten vorliegen, am besten in Form des Patienten selber.
Gruß Daniel
Anzeige
AW: Farbe von Form ändern und Zahl in Zelle
12.03.2018 17:37:35
Form
Es hat jetzt geklappt :)!
Vielen Dank für deine Hilfe, hast mir sehr geholfen.
Ich weiß es grenzt fast an Frechheit, aber hättest du eine Idee für einen Code für folgende Idee:
Wenn in der Zelle T12 die Zahl 2 oder drei erscheint, soll ein Symbol (hier eine Art Infobuttom) gezeigt werden?
AW: Farbe von Form ändern und Zahl in Zelle
12.03.2018 17:55:51
Form
Hi
würde ich mit der Bedingten Formatierung machen.
Als Excelprofi solltest du die kennen.
Gruß Daniel
AW: Farbe von Form ändern und Zahl in Zelle
12.03.2018 18:10:30
Form
Nein, die ist leider nicht mit bedingter Formatierung möglich, da die Form eine Userform öffnen soll, sprich:
Wenn in T12 die Zahl 2 oder 3 steht (die Form ist gelb oder rot) dann soll ein Infobuttom in der Form erscheinen (eine Form), die wiederum bei Klick die Userform öffnet.
Den Infobuttom, der die Userform öffnet, habe ich bereits:
Sub Info1()
Entscheidungskriterien.Show
End Sub
Allerdings soll der Infobuttom nur dann gezeigt werden, wenn die Form gelb oder rot ist.
Anzeige
AW: Farbe von Form ändern und Zahl in Zelle
12.03.2018 18:18:52
Form
wie wäre es, wenn du bei deinen zukünftigen anfragen etwas informativer bist?
dieses ständige nachschieben von Anforderungen nimmt einen die Lust.
Wenn du mich jetzt für jede Frage die du stellt bezahlen müsstest, wäre es mir wahrscheinlich sogar recht, aber das ist ja nicht der Fall.
daher nur ein kleiner Tip: man kann Formen über die .Visible-Eigenschaften ein- und ausblenden.
Gruß Daniel
AW: Farbe von Form ändern und Zahl in Zelle
12.03.2018 17:39:35
Form
Es hat jetzt geklappt :)!
Vielen Dank für deine Hilfe, hast mir sehr geholfen.
Ich weiß es grenzt fast an Frechheit, aber hättest du eine Idee für einen Code für folgende Idee:
Wenn in der Zelle T12 die Zahl 2 oder drei erscheint, soll ein Symbol (hier eine Art Infobuttom) gezeigt werden?
Anzeige

314 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige