Sub tegne()
Set mySheet = ActiveSheet
Dim sh As Shape
Dim pdlinie As Single, P1 As Single, P2 As Single, x1 As Single, x2 As Single, M1 As Single, M2 As Single
Dim totallast As Single, pdlinieHøjde As Single, P1Højde As Single, P2Højde As Single, x1Længde As Single
Dim x2Længde As Single, længde As Single, afstand As Single
Dim tæller As Byte
Dim P1tekstplacering As Integer, P2tekstplacering As Integer, flytbidragP1 As Integer, flytbidragP2 As Integer
Dim P1HøjdeTillæg As Integer, P2HøjdeTillæg As Integer
Const BJÆLKELÆNGDE As Integer = 275
Const RYKIND As Integer = 75
Const RYKNED As Integer = 200
Const MAXLASTHØJDE As Integer = 80
Const STEPS As Byte = 15 'må højst vælges til 20
afstand = BJÆLKELÆNGDE / STEPS
længde = Range("O46").Value
pdlinie = Range("O19").Value
P1 = Range("O25").Value
P2 = Range("O32").Value
x1 = Range("O26").Value
x2 = Range("O33").Value
M1 = Range("O35").Value
M2 = Range("O36").Value
If P1 >= P2 Then
totallast = pdlinie + P1
Else: totallast = pdlinie + P2
End If
pdlinieHøjde = pdlinie * MAXLASTHØJDE / totallast
P1Højde = P1 * MAXLASTHØJDE / totallast
If P1Højde < 0.2 * MAXLASTHØJDE Then
P1HøjdeTillæg = 0.2 * MAXLASTHØJDE
P1Højde = 0.1 * MAXLASTHØJDE
Else: P1HøjdeTillæg = P1Højde
End If
P2Højde = P2 * MAXLASTHØJDE / totallast
If P2Højde < 0.2 * MAXLASTHØJDE Then
P2HøjdeTillæg = 0.2 * MAXLASTHØJDE
P2Højde = 0.1 * MAXLASTHØJDE
Else: P2HøjdeTillæg = P2Højde
End If
x1Længde = x1 * BJÆLKELÆNGDE / længde
x2Længde = x2 * BJÆLKELÆNGDE / længde
With mySheet 'Her renses arket for gamle shapes
For Each sh In .Shapes
If sh.Name = "bjælke" Or sh.Name = "venstre" Or sh.Name = "højre" Or sh.Name = "mållinie" Or sh.Name = "pdlinie" Then
sh.Delete
ElseIf sh.Name = "P1" Or sh.Name = "P2" Or sh.Name = "x1" Or sh.Name = "x2" Or sh.Name = "M1" Or sh.Name = "M2" Then
sh.Delete
ElseIf sh.Name = "mållinietekst" Or sh.Name = "linielastpil0" Or sh.Name = "linielastpil1" Or sh.Name = "linielastpil2" Then
sh.Delete
ElseIf sh.Name = "linielastpil3" Or sh.Name = "linielastpil4" Or sh.Name = "linielastpil5" Or sh.Name = "linielastpil6" Then
sh.Delete
ElseIf sh.Name = "linielastpil7" Or sh.Name = "linielastpil8" Or sh.Name = "linielastpil9" Or sh.Name = "linielastpil10" Then
sh.Delete
ElseIf sh.Name = "linielastpil11" Or sh.Name = "linielastpil12" Or sh.Name = "linielastpil13" Or sh.Name = "linielastpil14" Then
sh.Delete
ElseIf sh.Name = "linielastpil15" Or sh.Name = "linielastpil16" Or sh.Name = "linielastpil17" Or sh.Name = "linielastpil18" Then
sh.Delete
ElseIf sh.Name = "linielastpil19" Or sh.Name = "linielastpil20" Or sh.Name = "toplinie" Or sh.Name = "P1Tick" Or sh.Name = "M2tekst" Then
sh.Delete
ElseIf sh.Name = "P2Tick" Or sh.Name = "mållinievTicker" Or sh.Name = "målliniehTicker" Or sh.Name = "x1tekst" Or sh.Name = "pdlinieconnect" Then
sh.Delete
ElseIf sh.Name = "x2tekst" Or sh.Name = "P1tekst" Or sh.Name = "P2tekst" Or sh.Name = "pdlinie" Or sh.Name = "M1tekst" Then
sh.Delete
End If
Next sh
End With
mySheet.Shapes.AddLine(RYKIND, RYKNED, RYKIND + BJÆLKELÆNGDE, RYKNED).Select 'her tegnes bjælke
Selection.ShapeRange.Line.Weight = 6#
Selection.ShapeRange.Line.Visible = msoTrue
Selection.ShapeRange.Line.Style = msoLineSingle
Selection.ShapeRange.Name = "bjælke"
mySheet.Shapes.AddShape(msoShapeIsoscelesTriangle, RYKIND - 7, RYKNED + 5, 16.5, 17.25).Select 'her tegnes venstre understøtning
Selection.ShapeRange.Line.Weight = 2#
Selection.ShapeRange.Line.Visible = msoTrue
Selection.ShapeRange.Line.Style = msoLineSingle
Selection.ShapeRange.Name = "venstre"
mySheet.Shapes.AddShape(msoShapeIsoscelesTriangle, RYKIND + BJÆLKELÆNGDE - 9, RYKNED + 5, 16.5, 17.25).Select 'her tegnes højre understøtning
Selection.ShapeRange.Line.Weight = 2#
Selection.ShapeRange.Line.Visible = msoTrue
Selection.ShapeRange.Line.Style = msoLineSingle
Selection.ShapeRange.Name = "højre"
mySheet.Shapes.AddLine(RYKIND, RYKNED + 50, RYKIND + BJÆLKELÆNGDE, RYKNED + 50).Select 'her tegnes mållinie
Selection.ShapeRange.Line.Weight = 1#
Selection.ShapeRange.Line.Visible = msoTrue
Selection.ShapeRange.Line.Style = msoLineSingle
Selection.ShapeRange.Name = "mållinie"
mySheet.Shapes.AddLine(RYKIND, RYKNED + 47, RYKIND, RYKNED + 53).Select 'her tegnes mållinies venstre ticker
Selection.ShapeRange.Line.Weight = 1#
Selection.ShapeRange.Line.Visible = msoTrue
Selection.ShapeRange.Line.Style = msoLineSingle
Selection.ShapeRange.Name = "mållinievTicker"
mySheet.Shapes.AddLine(RYKIND + BJÆLKELÆNGDE, RYKNED + 47, RYKIND + BJÆLKELÆNGDE, RYKNED + 53).Select 'her tegnes mållinies højre ticker
Selection.ShapeRange.Line.Weight = 1#
Selection.ShapeRange.Line.Visible = msoTrue
Selection.ShapeRange.Line.Style = msoLineSingle
Selection.ShapeRange.Name = "målliniehTicker"
mySheet.Shapes.AddTextbox(msoTextOrientationHorizontal, RYKIND + (0.5 * BJÆLKELÆNGDE) - 10, RYKNED + 33, 10, 14).Select 'hmållinietekst
Selection.Characters.Text = "L"
With Selection.Characters(Start:=1, Length:=1).Font
.Name = "Arial"
.FontStyle = "Normal"
.Size = 10
End With
With Selection.ShapeRange
.Fill.Visible = msoFalse
.Fill.Transparency = 0#
.Line.Weight = 0.75
.Line.DashStyle = msoLineSolid
.Line.Style = msoLineSingle
.Line.Transparency = 0#
.Line.Visible = msoFalse
End With
Selection.ShapeRange.Name = "mållinietekst"
If pdlinie > 0 Then
For tæller = 0 To STEPS
mySheet.Shapes.AddLine(RYKIND + tæller * afstand, RYKNED - pdlinieHøjde, RYKIND + tæller * afstand, RYKNED - 5).Select 'linielast
Selection.ShapeRange.Line.EndArrowheadStyle = msoArrowheadTriangle
Selection.ShapeRange.Line.EndArrowheadLength = msoArrowheadLengthMedium
Selection.ShapeRange.Line.EndArrowheadWidth = msoArrowheadWidthMedium
Selection.ShapeRange.Name = "linielastpil" & tæller
Next tæller
mySheet.Shapes.AddLine(RYKIND, RYKNED - pdlinieHøjde, RYKIND + BJÆLKELÆNGDE, RYKNED - pdlinieHøjde).Select 'toplinie
Selection.ShapeRange.Line.Weight = 0.75
Selection.ShapeRange.Line.Visible = msoTrue
Selection.ShapeRange.Line.Style = msoLineSingle
Selection.ShapeRange.Name = "toplinie"
mySheet.Shapes.AddTextbox(msoTextOrientationHorizontal, RYKIND - 68, RYKNED - 0.85 * MAXLASTHØJDE, 35, 15).Select 'pdlinie tekst
Selection.Characters.Text = "pd,linie"
With Selection.Characters(Start:=1, Length:=5).Font
.Name = "Arial"
.FontStyle = "Normal"
.Size = 10
End With
With Selection.ShapeRange
.Fill.Visible = msoFalse
.Fill.Transparency = 0#
.Line.Weight = 0.75
.Line.DashStyle = msoLineSolid
.Line.Style = msoLineSingle
.Line.Transparency = 0#
.Line.Visible = msoFalse
End With
Selection.ShapeRange.Name = "pdlinie"
mySheet.Shapes.AddLine(RYKIND - 33, RYKNED - 0.85 * MAXLASTHØJDE + 8, RYKIND, RYKNED - pdlinieHøjde).Select 'linie fra pdlinie tekst
Selection.ShapeRange.Line.Weight = 0.75
Selection.ShapeRange.Line.Visible = msoTrue
Selection.ShapeRange.Line.Style = msoLineSingle
Selection.ShapeRange.Name = "pdlinieconnect"
Bookmarks