Option Explicit
Private WithEvents CkxCln As CkxCollect
Private Sub ToggleButton1_Click()
Dim iNextPage As Long
With Me.MultiPage1
iNextPage = .Value + 1
If iNextPage < .Pages.Count Then
.Pages(iNextPage).Visible = True
.Value = iNextPage
End If
End With
End Sub
Private Sub ToggleButton2_Click()
Unload Me
End Sub
Private Sub ToggleButton3_Click()
Dim iNextPage As Long
With Me.MultiPage1
iNextPage = .Value - 1
If iNextPage < .Pages.Count Then
.Pages(iNextPage).Visible = True
.Value = iNextPage
End If
End With
End Sub
Private Sub ToggleButton4_Click()
Dim iNextPage As Long
With Me.MultiPage1
iNextPage = .Value + 1
If iNextPage < .Pages.Count Then
.Pages(iNextPage).Visible = True
.Value = iNextPage
End If
End With
End Sub
Private Sub ToggleButton5_Click()
Unload Me
End Sub
Private Sub ToggleButton6_Click()
Dim iNextPage As Long
With Me.MultiPage1
iNextPage = .Value - 1
If iNextPage < .Pages.Count Then
.Pages(iNextPage).Visible = True
.Value = iNextPage
End If
End With
End Sub
Private Sub ToggleButton7_Click()
'' Nécessite la référence Autocad xxx Type Library (Menu Outils > Références)
' Dim AcadApp As AcadApplication, AcadPlan As AcadDocument
'' Création de l'objet AutoCAD dans Excel :
' Set AcadApp = AcadApplication
'' Si ACAD n'est pas ouvert, il faut créer une nouvelle application comme si dessous :
' Set AcadApp = New AcadApplication
'' Rend AutoCAD visible
' AcadApp.Visible = True
'' Utilise le document ouvert :
' Set AcadPlan = AcadApp.ActiveDocument
'' Définition des variables définissant la couleur et l'épaisseur du trait
' Dim Couleur As AcColor
' Dim Epaisseur As AcLineWeight
'' Définition de l'objet ligne
' Dim Ligne As AcadLine
'' Définition de l'objet cercle
' Dim Cercle As AcadCircle
'' Définition de la valeur de la couleur
' Couleur = -7
'' Définition de l'épaisseur du trait
' Epaisseur = 2
' Définition des variables des points composant les cercles :
Dim CC(0 To 2) As Double
Dim CD(0 To 2) As Double
' Définition des variables des points composant le contour :
Dim Pori(0 To 2) As Double ' Point origine
Dim P1(0 To 2) As Double
Dim P2(0 To 2) As Double
Dim P3(0 To 2) As Double
' Boucle sur les resultats pour test
Dim i As Integer
Dim Tresultat() As Variant
Tresultat = CkxCln.TAcadCircleRes
For i = LBound(Tresultat, 1) To UBound(Tresultat, 1)
If Tresultat(i, 6) <> Empty Then
Debug.Print "Centre x : " & Tresultat(i, 3) & " Centre x : " & Tresultat(i, 4) & " Code : " & Tresultat(i, 5)
' Correction :
CC(0) = Tresultat(i, 3): CC(1) = Tresultat(i, 4)
' Ci-dessous Ancien code :
' CC(0) = Range("C" & i): CC(1) = Range("D" & i)
' TEST CD(0) = CC(0): CD(1) = CC(1) - ("Valeur associer en colonne J suivant choix listbox1")
' Autocad Fin de la correction
' Cercle
' Set Cercle = AcadPlan.ModelSpace.AddCircle(CC, ComboBox1.Value)
' Cercle.Color = Couleur
' Cercle.LineWeight = Epaisseur
' Détécteur
' Set Cercle = AcadPlan.ModelSpace.AddCircle(CD, 9.5)
'
' Définition des coordonnées des points lues dans Excel
'
' PLori1(0) = PCori2(0) -220: PLori1(1) = Pcori2 (1) -307.8461 'ou -100 si pas de ligne 1 choisis
' P2(0) = Cells(12, 4): P2(1) = Cells(12, 5)
' P3(0) = Cells(13, 4): P3(1) = Cells(13, 5)
End If
' Adapter la boucle For en Fonction du Process "AUTOCAD"
Next i
'
'' Traçage du rectangle dans l'espace objet d'AutoCAD
' Set Ligne = AcadPlan.ModelSpace.AddLine(Pori, P1) 'Traçage de la 1ere ligne
' Ligne.Color = Couleur 'Donne la couleur choisie
' Ligne.LineWeight = Epaisseur 'Donne l'épaisseur choisie
'' 2e ligne
' Set Ligne = AcadPlan.ModelSpace.AddLine(P1, P2)
' Ligne.Color = Couleur
' Ligne.LineWeight = Epaisseur
'' 3e ligne
' Set Ligne = AcadPlan.ModelSpace.AddLine(P2, P3)
' Ligne.Color = Couleur
' Ligne.LineWeight = Epaisseur
'' 4e ligne
' Set Ligne = AcadPlan.ModelSpace.AddLine(P3, Pori)
' Ligne.Color = Couleur
' Ligne.LineWeight = Epaisseur
'
'' Libérer la mémoire des objets ouverts
' Set Ligne = Nothing
' Set AcadApp = Nothing
' Set AcadPlan = Nothing
'
'' AcadPlan.Save 'Sauvegarde le dessin
'' AcadPlan.Close 'Ferme le dessin
'' AcadApp.Quit 'Ferme l'application AutoCAD
End Sub
Private Sub ToggleButton8_Click()
Unload Me
End Sub
Private Sub UserForm_Initialize()
Set CkxCln = New CkxCollect
CkxCln.Init Me.MultiPage1.Pages("Page2")
CkxCln.Add "1A", 21.961525, 259.807625
CkxCln.Add "3A", 21.961525, 155.884575
CkxCln.Add "5A", 21.961525, 51.961525
CkxCln.Add "2B", 51.961525, 207.8461
CkxCln.Add "4B", 51.961525, 103.92305
CkxCln.Add "6B", 51.961525, 0
CkxCln.Add "1C", 81.961525, 259.807625
CkxCln.Add "3C", 81.961525, 155.884575
CkxCln.Add "5C", 81.961525, 51.961525
CkxCln.Add "2D", 111.961525, 207.8461
CkxCln.Add "4D", 111.961525, 103.92305
CkxCln.Add "6D", 111.961525, 0
CkxCln.Add "1E", 141.961525, 259.807625
CkxCln.Add "3E", 141.961525, 155.884575
CkxCln.Add "5E", 141.961525, 51.961525
CkxCln.Add "2F", 171.961525, 207.8461
CkxCln.Add "4F", 171.961525, 103.92305
CkxCln.Add "6F", 171.961525, 0
CkxCln.Add "1G", 201.961525, 259.807625
CkxCln.Add "3G", 201.961525, 155.884575
CkxCln.Add "5G", 201.961525, 51.961525
CkxCln.Add "2H", 231.961525, 207.8461
CkxCln.Add "4H", 231.961525, 103.92305
CkxCln.Add "6H", 231.961525, 0
CkxCln.Add "1I", 261.961525, 259.807625
CkxCln.Add "3I", 261.961525, 155.884575
CkxCln.Add "5I", 261.961525, 51.961525
CkxCln.Add "2J", 291.961525, 207.8461
CkxCln.Add "4J", 291.961525, 103.92305
CkxCln.Add "6J", 291.961525, 0
CkxCln.Add "1K", 321.961525, 259.807625
CkxCln.Add "3K", 321.961525, 155.884575
CkxCln.Add "5K", 321.961525, 51.961525
CkxCln.Add "2L", 351.961525, 207.8461
CkxCln.Add "4L", 351.961525, 103.92305
CkxCln.Add "6L", 351.961525, 0
CkxCln.Add "1M", 381.961525, 259.807625
CkxCln.Add "3M", 381.961525, 155.884575
CkxCln.Add "5M", 381.961525, 51.961525
CkxCln.Add "2N", 411.961525, 207.8461
CkxCln.Add "4N", 411.961525, 103.92305
CkxCln.Add "6N", 411.961525, 0
End Sub
Private Sub CkxCln_Change(ByVal Nom As String, ByVal Etat As Boolean, ByVal CkxCln As CkxCollect)
If CkxCln.NbrCochés = 0 Then ListBox1.Clear: Exit Sub
ListBox1.List = CkxCln.ListeDesCochés
ListBox2.List = CkxCln.ListeDesCochés
End Sub