Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
524to528
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
524to528
524to528
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Diagramm auf Karte

Diagramm auf Karte
30.11.2004 09:24:38
Werner
Guten Morgen,
vor einger Zeit hat mir galenzo bei der Lösung dieses Problems geholfen. Ich habe inzwischen einige Anpassungen vorgenommen, stehe aber nun vor zwei neuen Problemen. Zur Verdeutlichung habe ich eine ZIP-Datei ins Forum gestellt.
https://www.herber.de/bbs/user/14110.zip
1. Die Daten sollen nicht direkt eingegeben werden (Sheet "Kreis"), sondern auf dem Sheet "Gemeinde". Das Makro müsste dann - glaube ich - mit WorkSheet_Calculate beginnen, was mir aber nicht gelingt :-(
2. Die Farben sollten nicht aus dem Excel-Index stammen, sondern im RGB-Code frei bestimmbar sein.
Ich danke für jede Unterstützung.
Gruß an alle Experten
Werner

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Diagramm auf Karte
Ingolf
Hallo Werner,
Zu Punkt 1:
du mußt das Makro wie folgt umstellen. Das Change-Ereignis wird ausgelöst, wenn eine beliebige Zelle von Hand verändert wird. Die Adresse dieser Zelle wird dann in der Variablen Target an das Makro übergeben. Das Calculate-Ereignis wird dagegen ausgelöst, wenn das ganze Blatt neu berechnet wird, was z.B. der Fall ist, wenn sich über eine Formel in einer Zelle der Wert ändert. Es gibt daher beim Calculate-Ereignis keine bestimmte veränderte Zelle und daher auch keine Variable Target. Ich hab das Makro so umgestellt, dass alle Zellen im Bereich B11 bis B17 neu bearbeitet werden, d.h. die entsprechenden Kartenteile werden neu eingefärbt.

Sub Worksheet_Calculate()
' Vielen Dank Galenzo
' fand Veränderung m Datenbereich statt?
Dim iColor As Integer
Dim oShape As Shape
Dim rng As Range
For Each rng In ThisWorkbook.Worksheets("Kreis").Range("B11:B17")
' Farbe festlegen
Select Case rng
Case 1 To 100: iColor = 11
Case 101 To 200: iColor = 13
Case 201 To 300: iColor = 52
Case 301 To 400: iColor = 2
Case 401 To 10000: iColor = 0
Case Else: iColor = 22
End Select
' Form für das Gebiet festlegen
With ThisWorkbook.Worksheets("Kreis")
Select Case rng.Row
Case 11: ' St. Wendel (Zeile 11)
Set oShape = .Shapes("Kreis_StWendel")
Case 12: ' Neunkirchen (Zeile 12)
Set oShape = .Shapes("Kreis_Neunkirchen")
Case 13: ' Saarpfalz-Kreis (Zeile 13)
Set oShape = .Shapes("Kreis_Saarpfalz")
Case 14: ' Saarbrücken-Stadt (Zeile 14)
Set oShape = .Shapes("Saarbrücken_Stadt")
Case 15: ' Saarbrücken-Land (Zeile 15)
Set oShape = .Shapes("Saarbrücken_Land")
Case 16: ' Saarlouis (Zeile 16)
Set oShape = .Shapes("Kreis_Saarlouis")
Case 17: ' Merzi-Wadern (Zeile 17)
Set oShape = .Shapes("Kreis_Merzig")
End Select
End With
' Form einfärben
With oShape
.Fill.ForeColor.SchemeColor = iColor
.Fill.Visible = msoTrue
.Fill.Solid
.Fill.Transparency = 0#
.Line.Weight = 0.75
.Line.DashStyle = msoLineSolid
.Line.Style = msoLineSingle
.Line.Transparency = 0#
.Line.Visible = msoFalse
End With
Next rng
End Sub

Zu Punkt2: Einer Zelle kann ich eine Hintergrundfarbe nach RGB-Wert zuweisen mit:
Range("A1").Interior.Color = &H99AABB
Die 6 Ziffern (Hexadezimal) stehen für den RGB-Wert. Bei der Karte ist mir das allerdings nicht gelungen. Vielleicht gehen hier tatsächlich nur die Indexfarben oder jemand anderes hat noch einen Tipp.
Gruß Ingolf, Stala BW (Sind wir vielleicht Kollegen?)
Anzeige
AW: Diagramm auf Karte
30.11.2004 12:24:38
Werner
Hallo Ingolf,
zunächst einmal Danke für die Rückmeldung. Ich gehe gleich mal an die Umsetzung. Wenn StaLa für Statistisches Landesamt steht, sind wir keine Kollegen. Ich gehöre zur Zunft mit den grün-weißen Autos, FüSt mit dem Thema QM und Controlling.
Gruß nach BW
Werner

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige