Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1320to1324
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
Inhaltsverzeichnis

Linienlänge zählen

Linienlänge zählen
04.07.2013 22:48:45
stef26
Hallo Zusammen,
habe ein ungewöhnliches Problem. Ich möchte Laufwege berechnen. Hierzu soll in einem Bereich (sagen wir mal von A1:K100) ein Bild eines Hallenlayoutes gelegt werden.
Nun soll mann Linien in diesen Bereich legen können.
Nun zu meiner Frage:
Gibt es die Möglichkeit in einem Bereich die Längen aller Linien zu summieren und
in einer Zelle (sagen wir mal A101) zurückgeben?
Hat jemand ne Idee wie man so etwas realisieren kann ?
Grüße
stef26

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Linienlänge zählen
04.07.2013 23:20:21
Uduuh
Hallo,
als Ansatz:
Function LaengeLinien(rng As Range)
Dim shp As Shape, l As Single
For Each shp In ActiveSheet.Shapes
With shp
If .Type = msoLine Then
If Not Intersect(rng, .TopLeftCell) Is Nothing _
And Not Intersect(rng, .BottomRightCell) Is Nothing Then
l = l + Sqr(.Height ^ 2 + .Width ^ 2)
End If
End If
End With
Next
LaengeLinien = l
End Function

Es dürfen aber nur einzelne (nicht gruppierte), gerade Linien sein. Sowohl der Anfang als auch das Ende müssen sich im Bereich befinden.
A101: =LaengeLinien(A1:K100)
Gruß aus’m Pott
Udo

Anzeige
AW: Linienlänge zählen
04.07.2013 23:30:36
stef26
Hallo zur später Stunde,
Danke Udo für deinen Ansatz.
Könntest du mir kurze Erklärungen zu dem code geben, damit ich diesen dann ggf. erweitern kann.
DA N K E
Echt super von dir Udo
:-)
stef26

AW: Linienlänge zählen
04.07.2013 23:49:38
Uduuh
Hallo,
was willst du daran erweitern?
Es werden alle Zeichnungsobjekte im Blatt durchgegangen
Handelt es sich um eine Linie (.Type=msoLine), wird geprüft, ob sich die obere linke Ecke (TopLeftCell) und die untere rechte Ecke (BottomRightCell) im Bereich befinden. Wenn ja, wird gem. Pythagoras (c=Wurzel(a^2+b^2) die Länge berechnet und gleich addiert (l = l + Sqr(.Height ^ 2 + .Width ^ 2)). Die Linie kann ja auch schräg sein.
Gruß aus’m Pott
Udo

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige