Anzeige
Archiv - Navigation
1416to1420
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
in Textboxen je Wert die Farbe ändern
31.03.2015 13:30:22
Monique
Hallo Zusammen,
ich habe eine Frage, bei der ich hoffe, dass ihr mir weiterhelfen könnt.
Ich habe Daten, die ich auf einer Deutschlandkarte angezeigt bekommen möchte.
Hier für habe ich folgende Vorlage verwendet:
http://www.michael-schwimmer.de/vba109.htm
nun würde ich gerne die Daten, die mir in den Textboxen angezeigt werden je nach größe der Zahl unterschiedlich farbig gestalten. Von z.B. Hellgrün (kleine Zahl) bis Dunkelrot (große Zahl)
Leider werden mir die Kästchen immer gleich farbig angezeigt.
Habe den Code wie folgt angepasst:
For i = 14 To 5000
If Me.Cells(i, 1) "" Then
' Darzustellende Koordinate hinzufügen
' Längengrad, Breitengrad, Beschriftung
.AddItem Me.Cells(i, 2), Me.Cells(i, 3), Me.Cells(i, 5)
' objGeo.BackColor.RGB = RGB(50 + i, 0 + i, 128 + i)
.BackColor = 34 + i * 100
End If
Es würde mir auch weiterhelfen, wenn ich die Zahlen als unterschiedlich lange Säulen gestalten könnte.
Bin gerade auf der Suche, wie ich die unterschiedlich großen Zahlen visuell auf einen schlag sichtbar machen kann. Hierfür hab ich mir die Farbskala einfallen lassen. Bin aber auch für andere Vorschläge offen.
Bei Fragen oder Unklarheiten bitte melden.
Vielen Dank im Voraus für eure Mühe
Liebe Grüße
Mo

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: neues Bild ansprechen
01.04.2015 14:30:35
Mo
Hallo Zusammen,
obiges Problem habe ich bereits hingebekommen.
Nun würde ich gerne die dort angezeigte Landkarte anpassen und eine neue Karte, in der Bundesländer angegeben sind hernehmen.
In der letzten Zeile des folgendes Codes bekomme ich eine Fehlermeldung:

Private Sub cmdAddItems_Click()
Dim i       As Long
Dim a       As Long
Dim objGeo  As New clsGeo
With objGeo
' Längengrad Karte links unten
.LonLeftBotton = Me.Range("B2")
' Breitengrad Karte links unten
.LatLeftBotton = Me.Range("B3")
' Längengrad Karte rechts unten
.LonRightBotton = Me.Range("C2")
' Breitengrad Karte rechts unten
.LatRightBotton = Me.Range("C3")
' Längengrad Karte links oben
.LonLeftTop = Me.Range("E2")
' Breitengrad Karte links oben
.LatLeftTop = Me.Range("E3")
' Längengrad Karte rechts oben
.LonRightTop = Me.Range("D2")
' Breitengrad Karte rechts oben
.LatRightTop = Me.Range("D3")
' Shapeobjekt übergeben (Tabellenblattname
' und  Name der Karte aus dem Blatt)
.Map = Worksheets(CStr(Me.Range("B4"))).Shapes( _
CStr(Me.Range("B5")))
Die Fehlermeldung lautet:
ungültiger Prozeduraufruf oder ungültiges Argument.
Könnte mir hier bitte jemand weiterhelfen wie ich das neue Bild einfügen kann?
vielen Dank und viele Grüße

Anzeige
AW: neues Bild ansprechen
01.04.2015 16:34:50
fcs
Hallo Mo,
das Makro fügt keine Bilder ein.
Ich kann allerdings die Fehlermeldung nicht nachvollziehen - eigentlich sollten da Index-Fehler oder Element nicht gefunden oder so erscheinen.
Andere Bilder musst du manuell einfügen. Den Namen des Bildes kannst du nach Selektion des Bildes in dem Feld ändern in dem normalerweise die Zelladresen/namen stehen.
Im Blatt "Infos" - oder wie auch imer das Blatt bei dir heisst - muss du dann die Basis-Infos zu dem Bild eintragen in den Zeilen 2 bis 5 eintragen.
Gruß
Franz

AW: in Textboxen je Wert die Farbe ändern
01.04.2015 16:09:11
fcs
Hallo Mo,
ich hab die Zeile ausfindig machen können, in der die Farbe der Fähnchen/Sterne für die Objekte in der Karte zugewiesen wird.
'Im Klassen-Modul clsGeo
Public Function InsertItems() As Boolean
' Füllung anpassen -
'Farbe aus Blatt "Infos" Zelle B7 - bisher
.DrawingObject.ShapeRange.Fill.ForeColor.RGB = mlngColor
'Zufallsfarbe - Neu zum Testen
.DrawingObject.ShapeRange.Fill.ForeColor.RGB = _
RGB(Int(Rnd() * 255), Int(Rnd() * 255), Int(Rnd() * 255))
.DrawingObject.ShapeRange.Fill.Transparency = mdblTransparency
Soweit ich beim Testen feststellen konnte zählt die Anwendung, wie oft eine PLZ in der Liste auf dem Blatt "Infos" vorkommt und passt danach die Höhe der Fahne bzw Größe des Sterns an.
Wo stehen denn bei dir die Informationen, nach denen die Farbe der Fahnen/Sterne sich ändern sollen?
Wahrscheinlich muss man diese Prozedur
Public Sub AddItem(Lon As Double, Lat As Double, Text As String)
' Neuer darzustellender Wert in Collection einfügen
On Error Resume Next
Dim avarDummy(1 To 3)   As Variant
avarDummy(1) = Lon
avarDummy(2) = Lat
avarDummy(3) = Text
mcolData.Add avarDummy
End Sub

im Klassenmodul um einen 4. Parameter "Farbe" erweiteren, dessen Wert dann in einer kleinen Function ausgewertet wird, um die Füllfarbe zu ermitteln. Dieser muss dann in obiger Prozedur der Variablen mlngColor zugewiesen werden.
Dieser Farbwert muss dann übergeben werden in
For i = 14 To 5000
If Me.Cells(i, 1)  "" Then
' Darzustellende Koordinate hinzufügen
' Längengrad, Breitengrad, Beschriftung, Farbe-RGB
.AddItem Me.Cells(i, 2), Me.Cells(i, 3), Me.Cells(i, 5), fncFarbe(dblWert:=Me.cells(i,6))
end if
Next
Function fncFarbe(dblWert as Double) as long
'Farbwert (Color) für Fahne ermitteln
'Beispiel, da muss natürlich noch was sinnvolles her
fncFarbe =  RGB(50 + dblWert , 0 + dblWert , 128 + dblWert)
End Function
Gruß
Franz

Anzeige
AW: in Textboxen je Wert die Farbe ändern
02.04.2015 09:04:39
Mo
Hallo Franz,
vielen Dank für deine Antwort!
Habe das ganze ausprobiert. Wenn ich nur den ersten Teil im Klassen-Modul clsGeo einfüge, werden die Fahnen bereits unterschiedlich farbig markiert! (Juhuuuu!)
Wenn ich den zweiten Teil einfüge, kommt bei der Zeile:

.AddItem Me.Cells(i, 2), Me.Cells(i, 3), Me.Cells(i, 5), fncFarbe(dblWert:=Me.cells(i,6))

die Fehlermeldung:
Falsche Anzahl an Argumenten oder ungültige Zuweisung zu einer Eigenschaft.
Ich versuche jetzt mal die Farbmarkierungen gerichteter zu gestalten. (Kleiner Wert = hellere Farbe; Großer Wert = dunkler Farbe oder so etwas in der Art)
vielen Lieben Dank für deine Mühe! Hast mir schonmal einen großen Schritt weitergeholfen!
Grüße
Mo

Anzeige
AW: in Textboxen je Wert die Farbe ändern
02.04.2015 13:01:43
fcs
Hallo Mo,
ich hab jetzt noch einmal ein wenig getüfftelt.
In den beiden Textdateien sind der Code des Klassenmodul und der Code unter Tabelle "Infos".
Angepasste Zeilen hab ich mit '#### 2015-04-02 gekennzeichet.
Die Zahlenwerte hab ich zum Testen in der Basisdatei in Spalte E unter "Beschriftung". D.h. die Zahl wird in den Fahnen eingetragen und die Färbung erfolgt entsprechend dem Zahlenwert.
Zum Testen ist jede PLZ in der Liste nur einmal vorhanden, die Fahnen sind also alle gleich groß.
Allerdings zeigt die Pfeilspitze der Legenden nicht auf die Orte, sondern immer ca. 1 cm rechts daneben und ein wenig unterhalb.
Gruß
Franz
Textdatei mit Code in clsGeo: https://www.herber.de/bbs/user/96829.txt
Textdatei mit Code für Tabelle "Infos": https://www.herber.de/bbs/user/96831.txt
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige