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

Zeichnen von Linienverbindungen

Zeichnen von Linienverbindungen
18.03.2008 11:06:45
Linienverbindungen
Ich möchte sogenannte Krümmungsbänder automatisch zeichnen.
Das bedeutet, ich habe in der Spalte A einen Wert x stehen -den sogenannten Krümmungswert-. Je nach Größe des Wertes x soll in der Spalte B eine Linie gezeichnet werden, die die Werte der benachbarten Zeilen verbindet.
Ich habe es bisher lediglich über Sverweis u.ä. geschafft eine Abfrage zu erstellen, die je nach Krümmungswert ein bestimmtes Zeichen in die Spalte B schreibt.
Ich hoffe es ist einigermaßen zu verstehen, was ich meine?!
Patrick

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeichnen von Linienverbindungen
18.03.2008 12:54:29
Linienverbindungen
hallo patrick,
auch auf die gefahr hin, dass ich es nicht richtig verstandenhabe, was du ereichen möchtest (deshalb frage noch offen).
meinst du so?
https://www.herber.de/bbs/user/50810.xls
ansonsten geht das vielleicht nur über ein diagramm, denn grafische darstellungen in einer zelle sind in excel sehr eingeschränkt.
gruß selli

AW: Zeichnen von Linienverbindungen
18.03.2008 13:58:41
Linienverbindungen
Hallo selli,
nette Idee. Damit man auch andere Zahlenbereiche gut darstellen kann geht folgende Variante besser, die eine maximale Zahl von Strichen in der Spalte B darstellt.
Formel in B1:

=WIEDERHOLEN(" ";(A1-MIN(0;MIN($A$1:$A$17)))/(MAX($A$1:$A$17)-MIN(0;($A$1:$A$17)))*20) &"|"

20 ist hier die Zeichenzahl beim Max-Wert.
Gruß
Franz

Anzeige
AW: Zeichnen von Linienverbindungen
18.03.2008 13:45:36
Linienverbindungen
Hallo Patrick,
machen kan man ja viel. z.B. in jede Zelle in Spaltte B eine Linie zeichnen lassen. Aber per Formel ist da nichts zu machen, geht nur per Makro.
siehe Beispieldatei: https://www.herber.de/bbs/user/50812.xls
warum erstellst du nicht einfach ein Liniendiagramm?
Gruß
Franz

AW: Zeichnen von Linienverbindungen
18.03.2008 15:57:00
Linienverbindungen
Hallo Franz,
danke, das mitgelieferte Beispiel sieht ja schon sehr gut aus. Ein Linienzug ist schon der richtige Ansatz. Und wie kann ich nun deine Idee in meine Spaltendefinition drücken? Da muss ich vermutlich in den VBA-Modus wechseln und anpassen, oder?
@Selli: danke auch für deine Idee. Eine ähnliche hatte ich auch schon. Da mich immer nur die "letzte" Linie deiner Grafik interessiert habe ich in meiner Abfrage Leerzeichen eingefügt. War aber als "Gesamtbild" irgendwie nicht zufriedenstellend. Da muss man sagen, dass der Linienzug doch für's Auge mehr hermacht ;-)
Patrick

Anzeige
AW: Zeichnen von Linienverbindungen
18.03.2008 16:16:05
Linienverbindungen
Hallo patrick,
hier nochmal der Code in verbesserter Form
eigentlich muss du "nur" die Nummern für die Zeilen und Spalten am Anfang des Codes anpassen.
Gruß
Franz

Sub Linienzug()
Dim dbUnit As Double, dbMin As Double, dbMax As Double
Dim Punkt0 As Double, Punkt1 As Double, Punkt2 As Double
Dim Zeile As Long, element As Shape
Dim zStart As Long, zEnde As Long, SpWert As Long, SpLinie As Long
Dim ws As Worksheet
Set ws = ActiveSheet
With ws
SpWert = 1 'Spalte A
SpLinie = 2 'Spalte B
zStart = 2 'Startzeile für Linienzug
zEnde = .Cells(.Rows.Count, SpWert).End(xlUp).Row 'Letzte Zeile für Linienzug
'vorhandene Linien löschen
For Each element In .Shapes
If Not Intersect(.Range(element.TopLeftCell, element.BottomRightCell), _
.Columns(SpLinie)) Is Nothing Then
element.Delete
End If
Next
dbMin = Application.WorksheetFunction.Min(0, .Range(.Cells(zStart, SpWert), _
.Cells(zEnde, SpWert)))
dbMax = Application.WorksheetFunction.Max(.Range(.Cells(zStart, SpWert), _
.Cells(zEnde, SpWert)))
dbUnit = (.Cells(zStart, SpLinie + 1).Left - _
.Cells(zStart, SpLinie).Left) / (dbMax - dbMin)
Punkt0 = .Cells(zStart, SpLinie).Left
Punkt1 = Punkt0 + (.Cells(zStart, SpWert).Value - dbMin) * dbUnit
For Zeile = zStart To zEnde
Punkt2 = Punkt0 + (.Cells(Zeile, 1).Value - dbMin) * dbUnit
.Shapes.AddLine BeginX:=Punkt1, BeginY:=.Cells(Zeile, SpLinie).Top, EndX:=Punkt2, _
EndY:=.Cells(Zeile + 1, SpLinie).Top
Punkt1 = Punkt2
Next
End With
End Sub


Anzeige
AW: Zeichnen von Linienverbindungen
19.03.2008 12:36:38
Linienverbindungen
Franz, ich bin begeistert! Unglaublich was da alles möglich ist. Ich werde jetzt mal weiter tüfteln. Will mir ja nicht alles vordenken lassen ;-)
Herzlichen Dank erst einmal!
Patrick

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige