DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Sub Test()
' Haluk - 19/07/2022
' sa4truss@gmail.com
spanLength = Range("B6")
lengthMesh = Range("B7")
Overlap = Range("B8")
For Each xShape In ActiveSheet.Shapes
If Not Application.Intersect(xShape.TopLeftCell, Range("A2:AA6")) Is Nothing Then
xShape.Delete
End If
Next
Range("E8:E11") = ""
N = spanLength \ lengthMesh
dimensionStart = 200
' Baslangic hasiri
startX = 200
endX = startX + 100
Set ReBar = ActiveSheet.Shapes.AddLine(startX, 40, endX, 40)
ReBar.Line.Weight = 2
LabelTop = 20
LabelLeft = startX + 40
Set firstMemberLabel = ActiveSheet.Shapes.AddLabel(msoTextOrientationHorizontal, LabelLeft, LabelTop, 50, 50)
' Orta hasirlar (tam boy)
For i = 1 To N
startX = startX + 80
endX = startX + 100
If i Mod 2 = 0 Then
startY = 40
endY = 40
Else
startY = 50
endY = 50
End If
Set ReBar = ActiveSheet.Shapes.AddLine(startX, startY, endX, endY)
ReBar.Line.Weight = 2
LabelTop = endY - 20
LabelLeft = startX + 40
Set memberLabel = ActiveSheet.Shapes.AddLabel(msoTextOrientationHorizontal, LabelLeft, LabelTop, 50, 50)
memberLabel.TextFrame.Characters.Text = lengthMesh
' Bindirme paylarinin belirtilmesi
If i Mod 2 <> 0 Then
Set memberLabel = ActiveSheet.Shapes.AddLabel(msoTextOrientationHorizontal, startX, LabelTop + 20, 50, 50)
memberLabel.TextFrame.Characters.Text = Overlap
memberLabel.TextFrame2.TextRange.Font.Fill.ForeColor.RGB = RGB(0, 176, 240)
Set memberLabel = ActiveSheet.Shapes.AddLabel(msoTextOrientationHorizontal, startX + 80, LabelTop + 20, 50, 50)
memberLabel.TextFrame.Characters.Text = Overlap
memberLabel.TextFrame2.TextRange.Font.Fill.ForeColor.RGB = RGB(0, 176, 240)
End If
Next
' Bitis hasiri
startX = startX + 80
endX = startX + 100
If (N + 1) Mod 2 = 0 Then
startY = 40
endY = 40
Else
startY = 50
endY = 50
End If
Set ReBar = ActiveSheet.Shapes.AddLine(startX, startY, endX, startY)
ReBar.Line.Weight = 2
LabelTop = startY - 20
LabelLeft = startX + 40
Set lastMemberLabel = ActiveSheet.Shapes.AddLabel(msoTextOrientationHorizontal, LabelLeft, LabelTop, 50, 50)
lastMemberLabel.TextFrame.Characters.Text = Round((spanLength - N * (lengthMesh - Overlap * 2) - (N - 1) * Overlap) / 2, 2)
If (N + 1) Mod 2 <> 0 Then
Set memberLabel = ActiveSheet.Shapes.AddLabel(msoTextOrientationHorizontal, startX, LabelTop + 20, 50, 50)
memberLabel.TextFrame.Characters.Text = Overlap
memberLabel.TextFrame2.TextRange.Font.Fill.ForeColor.RGB = RGB(0, 176, 240)
End If
firstMemberLabel.TextFrame.Characters.Text = lastMemberLabel.TextFrame.Characters.Text
' Olcu cizgisinin cizimi
dimensionEnd = endX
Set dimensionLine = ActiveSheet.Shapes.AddLine(dimensionStart, 80, dimensionEnd, 80)
dimensionLine.Line.Weight = 1
dimensionLine.Line.ForeColor.RGB = RGB(255, 0, 0)
dimensionLine.Line.DashStyle = msoLineLongDashDot
dimensionLine.Line.BeginArrowheadStyle = msoArrowheadTriangle
dimensionLine.Line.EndArrowheadStyle = msoArrowheadTriangle
Set dimensionLabel = ActiveSheet.Shapes.AddLabel(msoTextOrientationHorizontal, (dimensionStart + dimensionEnd) / 2, 60, 80, 80)
dimensionLabel.TextFrame.Characters.Text = spanLength
dimensionLabel.TextFrame2.TextRange.Font.Fill.ForeColor.RGB = RGB(255, 0, 0)
' Metraj
Range("E8") = "METRAJ :"
Range("E9") = N & " Adet L = " & lengthMesh
Range("E10") = "2 Adet L = " & lastMemberLabel.TextFrame.Characters.Text
Range("E11") = "Toplam çubuk boyu = " & 2 & " X " & lastMemberLabel.TextFrame.Characters.Text & " + " & N & " X " & lengthMesh & " = " & 2 * lastMemberLabel.TextFrame.Characters.Text + N * lengthMesh
End Sub

işlem tamam sayın hocam
