Netparty Posté(e) le 5 janvier 2022 Posté(e) le 5 janvier 2022 Bonjour à tous J'ai commencé un bout de code, mon premier listbox (LB_Onglet_Source) m'affiche tous les onglets de mon dessin quand je sélectionne un onglet je doit afficher dans mon deuxième listbox (LB_Bloc_Source) la liste des blocs de cet onglet, mais mon problème est que tous les blocs de chaque onglet se retrouve de le deuxième listbox. J'aimerais si je clique sur presentation1 je n'ai que les blocs de presentation1 et ainsi de suite. Ci-joint mon code Merci d'avance Dim AcadApp As Object Dim AcadDoc As Object ' ********************************************************************************************************** Private Sub UserForm_Initialize() Dim AcadApp As Object Dim AcadDoc As Object Set AcadApp = GetObject(, "AutoCAD.Application") Set AcadDoc = AcadApp.ActiveDocument Dim onglet As AcadLayout On Error Resume Next 'Check if AutoCAD application is open. If is not opened create a new instance and make it visible. Set AcadApp = GetObject(, "AutoCAD.Application") Set AcadDoc = AcadApp.ActiveDocument If AcadApp Is Nothing Then If MsgBox("AUTOCAD n'est pas ouvert" & vbLf & "Voulez-vous ouvrir AUTOCAD", 36, "Ouvrir AUTOCAD") = vbYes Then Set AcadApp = CreateObject("AutoCAD.Application") AcadApp.Visible = True End If End If LB_Onglet_Source.Clear For Each onglet In AcadDoc.Layouts 'If onglet.Name <> "Model" Then LB_Onglet_Source.AddItem onglet.Name 'End If Next onglet End Sub ' ********************************************************************************************************** ' ********************************************************************************************************** Private Sub LB_Onglet_Source_Change() Dim obj_onglets As AcadLayouts Dim obj_onglet As AcadLayout Dim index As Integer Dim position As Integer Dim totaux As Integer For index = 0 To LB_Onglet_Source.ListCount - 1 If LB_Onglet_Source.Selected(index) = True Then position = index totaux = totaux + 1 End If Tb_Onglet_Source = LB_Onglet_Source.List(position) Dim nbrblocs As Integer 'nombre de calques dans le dessin courant Dim numbloc As Integer 'nième calque dans la liste nbrblocs = ThisDrawing.Blocks.Count For numbloc = 1 To nbrblocs Me.LB_Bloc_Source.AddItem ThisDrawing.Blocks(numbloc - 1).Name Next numbloc Next index Set obj_onglets = ThisDrawing.Layouts End Sub
Curlygoth Posté(e) le 6 janvier 2022 Posté(e) le 6 janvier 2022 Salut, Alors sache pour pour compter les nombres de blocs dans les présentations il faut qu'elle soit active pour utilié le thisdrawing.paperspace.count-1 et boucler dessus ensuite fait des lists de nom ou ce que tu veux pour faire Me.LB_Bloc_Source.list = TA liste tu verras que tu vas gagner en temps ^^ Citation J'aimerais si je clique sur presentation1 je n'ai que les blocs de presentation1 et ainsi de suite. alors prneds juste les blocs du layouts actif 😉 via thisdrawing.activelayout car moi dans ton code tu parcours toutes tes présentations Mon site Web (en cours de construction) : Site DA-CODE de @didier
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant