You are on page 1of 2

Sub Projet_VBA()

Dim Excel As Object


Dim FeuilleExcel As Object
Dim FichierExcel As Object
Dim NumLigne As Integer
Dim element As AcadEntity
Dim x As Integer

Set Excel = CreateObject("Excel.Application")


Set FichierExcel = Excel.Workbooks.Add
Set FeuilleExcel = Excel.ActiveSheet

FeuilleExcel.Cells(1, 2) = "Numéro"
FeuilleExcel.Cells(1, 3) = "Désignation"
FeuilleExcel.Cells(1, 4) = "Unité"
FeuilleExcel.Cells(1, 5) = "Quantité"
FeuilleExcel.Cells(1, 6) = "Surface"
For x = 2 To 6
FeuilleExcel.Cells(1, x).Borders.Value = 1
FeuilleExcel.Cells(1, x).Interior.color = RGB(102, 178, 255)
Next x

For Each element In ThisDrawing.ModelSpace


If TypeOf element Is AcadBlockReference Then
For NumLigne = 2 To NumLigne + 1
If FeuilleExcel.Cells(NumLigne, 3) = "" Then
FeuilleExcel.Cells(NumLigne, 3) = element.Name
FeuilleExcel.Cells(NumLigne, 4) = "U"
FeuilleExcel.Cells(NumLigne, 5).Value = 1
NumLigne = NumLigne + 1
Exit For
ElseIf FeuilleExcel.Cells(NumLigne, 3) = element.Name Then
FeuilleExcel.Cells(NumLigne, 5).Value = FeuilleExcel.Cells(NumLigne,
5).Value + 1
Exit For
End If
Next NumLigne
Else
If TypeOf element Is AcadRegion Then
FeuilleExcel.Cells(NumLigne, 3) = element.Layer
FeuilleExcel.Cells(NumLigne, 4) = "m²"
FeuilleExcel.Cells(NumLigne, 6).Value = Format((element.Area /
10000), "##.00")
NumLigne = NumLigne + 1
End If
End If

Next element
FeuilleExcel.Cells(2, 3).ColumnWidth = 32
For NumLigne = 2 To NumLigne - 1
FeuilleExcel.Cells(NumLigne, 3).Interior.color = RGB(204, 229, 255)
FeuilleExcel.Cells(NumLigne, 3).Font.ColorIndex = 56
FeuilleExcel.Cells(NumLigne, 2).Interior.color = RGB(153, 204, 255)
FeuilleExcel.Cells(NumLigne, 2).ColumnWidth = 4
FeuilleExcel.Cells(NumLigne, 2) = NumLigne - 1
FeuilleExcel.Cells(NumLigne, 2).Borders.Value = 1
FeuilleExcel.Cells(NumLigne, 3).Borders.Value = 1
FeuilleExcel.Cells(NumLigne, 4).Borders.Value = 1
FeuilleExcel.Cells(NumLigne, 5).Borders.Value = 1
FeuilleExcel.Cells(NumLigne, 6).Borders.Value = 1
Next NumLigne

FichierExcel.SaveAs "Proje_VBA.xlsx"
Excel.Application.Quit
End Sub

You might also like